Localizing text, bug 211446.

git-svn-id: svn://10.0.0.236/trunk@144649 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mikep%oeone.com
2003-07-09 12:48:42 +00:00
parent 612043f756
commit fc9da21d98
15 changed files with 253 additions and 179 deletions

View File

@@ -20,6 +20,7 @@
*
* Contributor(s): Garth Smedley <garths@oeone.com>
* Mike Potter <mikep@oeone.com>
* Eric Belhaire <belhaire@ief.u-psud.fr>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -71,6 +72,8 @@ function buildEventBoxes()
{
//remove all the old event boxes.
var EventContainer = document.getElementById( "event-container-rows" );
var tooManyDescValue ;
if( EventContainer )
{
var NumberOfChildElements = EventContainer.childNodes.length;
@@ -79,9 +82,9 @@ function buildEventBoxes()
EventContainer.removeChild( EventContainer.lastChild );
}
//start at length - 10 or 0 if that is < 0
//start at length - 6 or 0 if that is < 0
var Start = gAllEvents.length - 10;
var Start = gAllEvents.length - 6;
if( Start < 0 )
Start = 0;
@@ -92,11 +95,12 @@ function buildEventBoxes()
}
//reset the text
if( gAllEvents.length > 10 )
if( gAllEvents.length > 6 )
{
var TooManyDesc = document.getElementById( "too-many-alarms-description" );
TooManyDesc.removeAttribute( "collapsed" );
TooManyDesc.setAttribute( "value", "You have "+ (gAllEvents.length )+" total alarms. We've shown you the last 10. Click Acknowledge All to clear them all." );
tooManyDescValue = gCalendarBundle.getFormattedString("TooManyAlarmsMessage", [gAllEvents.length]);
TooManyDesc.setAttribute( "value", tooManyDescValue );
}
else
{
@@ -148,9 +152,7 @@ function createAlarmBox( Event )
var prefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
var categoriesStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
OuterBox.getElementsByAttribute( "name", "alarm-length-field" )[0].value = getIntPref(prefService.getBranch("calendar."), "alarms.defaultsnoozelength", categoriesStringBundle.GetStringFromName("defaultSnoozeAlarmLength" ) );
OuterBox.getElementsByAttribute( "name", "alarm-length-field" )[0].value = getIntPref(prefService.getBranch("calendar."), "alarms.defaultsnoozelength", gCalendarBundle.getString("defaultSnoozeAlarmLength" ) );
kungFooDeathGripOnEventBoxes.push( OuterBox.getElementsByAttribute( "name", "SnoozeButton" )[0] );

View File

@@ -64,11 +64,18 @@
<!-- Javascript includes -->
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/dateUtils.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/alertDialog.js"/>
<script type="application/x-javascript" src="chrome://calendar/content/calendarEvent.js"/>
<!-- STRING BUNDLE for calendar properties -->
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_calendar" src="chrome://calendar/locale/calendar.properties"/>
</stringbundleset>
<script type="application/x-javascript">
var gCalendarBundle = document.getElementById("bundle_calendar");
</script>
<!-- Picker popups -->
<popup id="oe-date-picker-popup" position="after_start" oncommand="onDatePick( this )" label=""/>

View File

@@ -45,7 +45,6 @@
* Garth Smedley
*
* REQUIRED INCLUDES
* <script type="application/x-javascript" src="chrome://global/content/strres.js"/>
* <script type="application/x-javascript" src="chrome://calendar/content/calendarEvent.js"/>
*
* NOTES
@@ -670,9 +669,7 @@ function newEvent( startDate, endDate )
if( !endDate )
{
var categoriesStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
var MinutesToAddOn = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "event.defaultlength", categoriesStringBundle.GetStringFromName("defaultEventLength" ) );
var MinutesToAddOn = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "event.defaultlength", gCalendarBundle.getString("defaultEventLength" ) );
var endDateTime = startDate.getTime() + ( 1000 * 60 * MinutesToAddOn );
@@ -1026,11 +1023,10 @@ function launchWizard()
* Called when a user hovers over a todo element and the text for the mouse over is changed.
*/
function getPreviewTextForTask( calendarEventDisplay )
function getPreviewTextForTask( toDoItem )
{
var toDoItem = calendarEventDisplay ;
var HolderBox = document.createElement( "vbox" );
var textString ;
if( toDoItem )
{
@@ -1039,26 +1035,32 @@ function getPreviewTextForTask( calendarEventDisplay )
if (toDoItem.title)
{
var TitleHtml = document.createElement( "description" );
var TitleText = document.createTextNode( "Title: "+toDoItem.title );
textString = gCalendarBundle.getFormattedString("tooltipTitleElement", [toDoItem.title]);
var TitleText = document.createTextNode( textString );
TitleHtml.appendChild( TitleText );
HolderBox.appendChild( TitleHtml );
}
var DateHtml = document.createElement( "description" );
var startDate = new Date( toDoItem.start.getTime() );
var DateText = document.createTextNode( "Start Date: "+gCalendarWindow.dateFormater.getFormatedDate( startDate ) );
textString = gCalendarBundle.getFormattedString("tooltipTaskStart",
[gCalendarWindow.dateFormater.getFormatedDate( startDate )]);
var DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
var dueDate = new Date( toDoItem.due.getTime() );
DateText = document.createTextNode( "Due Date: "+gCalendarWindow.dateFormater.getFormatedDate( dueDate ) );
textString = gCalendarBundle.getFormattedString("tooltipTaskEnd",
[gCalendarWindow.dateFormater.getFormatedDate( dueDate )]);
DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
if (toDoItem.description)
{
var text = "Description: "+toDoItem.description ;
var text = gCalendarBundle.getFormattedString("tooltipTaskDescription", [toDoItem.description]);
var lines = text.split("\n");
var nbmaxlines = 5 ;
var nblines = lines.length ;
@@ -1073,10 +1075,6 @@ function getPreviewTextForTask( calendarEventDisplay )
DescriptionHtml.appendChild(DescriptionText);
HolderBox.appendChild(DescriptionHtml);
}
// var DescriptionHtml = document.createElement( "description" );
// var DescriptionText = document.createTextNode( "Description: "+toDoItem.description );
// DescriptionHtml.appendChild( DescriptionText );
// HolderBox.appendChild( DescriptionHtml );
}
return ( HolderBox );
@@ -1096,11 +1094,12 @@ function getPreviewTextForRepeatingEvent( calendarEventDisplay )
showTooltip = true;
var HolderBox = document.createElement( "vbox" );
var textString ;
if (calendarEventDisplay.event.title)
{
var TitleHtml = document.createElement( "description" );
var TitleText = "Title: "+calendarEventDisplay.event.title;
textString = gCalendarBundle.getFormattedString("tooltipTitleElement", [calendarEventDisplay.event.title]);
/*
if( calendarEventDisplay.event.recurUnits == "years" )
@@ -1109,28 +1108,47 @@ function getPreviewTextForRepeatingEvent( calendarEventDisplay )
TitleText = TitleText+" "+getNumberOfRepeatTimes( calendarEventDisplay.event, false );
}*/
var TitleTextNode = document.createTextNode( TitleText );
var TitleTextNode = document.createTextNode( textString );
TitleHtml.appendChild( TitleTextNode );
HolderBox.appendChild( TitleHtml );
}
var DateHtml = document.createElement( "description" );
var startDate = new Date( calendarEventDisplay.displayDate );
var DateText = document.createTextNode( "Start: "+gCalendarWindow.dateFormater.getFormatedDate( startDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( startDate ) );
var endDate = new Date( calendarEventDisplay.displayEndDate );
var DateHtml = document.createElement( "description" );
if (!calendarEventDisplay.event.allDay) {
textString = gCalendarBundle.getFormattedString("tooltipEventStart",
["",
gCalendarWindow.dateFormater.getFormatedTime( startDate )]);
var DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
startDate = new Date( calendarEventDisplay.displayEndDate );
DateText = document.createTextNode( "End: "+gCalendarWindow.dateFormater.getFormatedDate( startDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( startDate ) );
textString = gCalendarBundle.getFormattedString("tooltipEventEnd",
["",
gCalendarWindow.dateFormater.getFormatedTime( endDate )]);
DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
}
if (calendarEventDisplay.event.location)
{
var LocationHtml = document.createElement( "description" );
textString = gCalendarBundle.getFormattedString("tooltipEventLocation", [calendarEventDisplay.event.location]);
var LocationText = document.createTextNode( textString );
LocationHtml.appendChild( LocationText );
HolderBox.appendChild( LocationHtml );
}
if (calendarEventDisplay.event.description)
{
var Description = "Description: "+calendarEventDisplay.event.description;
var lines = Description.split("\n");
textString = gCalendarBundle.getFormattedString("tooltipEventDescription", [calendarEventDisplay.event.description]);
var lines = textString.split("\n");
var nbmaxlines = 5 ;
var nblines = lines.length ;
if( nblines > nbmaxlines ) {
@@ -1224,15 +1242,17 @@ function print()
args.selectedEvents = gCalendarWindow.EventSelection.selectedEvents ;
args.selectedDate=gNewDateVariable = gCalendarWindow.getSelectedDate();
var categoriesStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
var defaultWeekStart = categoriesStringBundle.GetStringFromName("defaultWeekStart" );
var Offset = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "week.start", defaultWeekStart );
var defaultWeeksInView = categoriesStringBundle.GetStringFromName("defaultWeeksInView" );
var WeeksInView = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "weeks.inview", defaultWeeksInView );
var Offset = getIntPref(gCalendarWindow.calendarPreferences.calendarPref,
"week.start",
gCalendarBundle.getString("defaultWeekStart" ) );
var WeeksInView = getIntPref(gCalendarWindow.calendarPreferences.calendarPref,
"weeks.inview",
gCalendarBundle.getString("defaultWeeksInView" ) );
WeeksInView = ( WeeksInView >= 6 ) ? 6 : WeeksInView ;
var defaultPreviousWeeksInView = categoriesStringBundle.GetStringFromName("defaultPreviousWeeksInView" );
var PreviousWeeksInView = getIntPref(gCalendarWindow.calendarPreferences.calendarPref, "previousweeks.inview", defaultPreviousWeeksInView );
var PreviousWeeksInView = getIntPref(gCalendarWindow.calendarPreferences.calendarPref,
"previousweeks.inview",
gCalendarBundle.getString("defaultPreviousWeeksInView" ) );
PreviousWeeksInView = ( PreviousWeeksInView >= WeeksInView - 1 ) ? WeeksInView - 1 : PreviousWeeksInView ;
args.startOfWeek=Offset;
@@ -1240,8 +1260,6 @@ function print()
args.prevWeeksInView=PreviousWeeksInView;
window.openDialog("chrome://calendar/content/printDialog.xul","printdialog","chrome",args);
//printEventArray( gCalendarWindow.EventSelection.selectedEvents, "chrome://calendar/content/converters/sortEvents.xsl" );
}

View File

@@ -164,16 +164,19 @@
var confirmDeleteEvent = "&calendar.confirm.deleteevent;";
var confirmDeleteUntitledEvent = "&calendar.confirm.deleteuntitledevent;";
var defaultCalendarFileName = "&calendar.file.default.name;";
var unifinderAlldayLabel = "&calendar.unifinder.allday.label;";
var unifinderTitleLabel = "&calendar.unifinder.title.label;";
var unifinderStartLabel = "&calendar.unifinder.start.label;";
var unifinderEndLabel = "&calendar.unifinder.end.label;";
var unifinderDescriptionLabel = "&calendar.unifinder.description.label;";
</script>
<!-- Javascript includes -->
<!-- STRING BUNDLE for calendar properties -->
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_calendar" src="chrome://calendar/locale/calendar.properties"/>
<stringbundle id="bundle_calendar_email" src="chrome://calendar/locale/email.properties"/>
</stringbundleset>
<script type="application/x-javascript">
var gCalendarBundle = document.getElementById("bundle_calendar");
var gCalendarEmailBundle = document.getElementById("bundle_calendar_email");
</script>
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<!-- Javascript includes -->
<script type="application/x-javascript" src="chrome://calendar/content/jslib/jslib.js"/>

View File

@@ -425,7 +425,7 @@ CalendarEventDataSource.prototype.getAllEvents = function calEvent_getAllEvents(
CalendarEventDataSource.prototype.getEventsForRange = function calEvent_getEventsForRange( StartDate, EndDate )
{
dump( "\n->get events from "+StartDate+"\n"+EndDate );
//dump( "\n->get events from "+StartDate+"\n"+EndDate );
var eventList = this.gICalLib.getFirstEventsForRange( StartDate, EndDate );
this.currentEvents = new Array();
@@ -699,9 +699,10 @@ CalendarAlarmObserver.prototype.fireAlarm = function calAlarm_fireAlarm( calenda
return;
}
var categoriesStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
if( getBoolPref(gCalendarWindow.calendarPreferences.calendarPref, "alarms.playsound", categoriesStringBundle.GetStringFromName("playAlarmSound" ) ) )
if( getBoolPref(gCalendarWindow.calendarPreferences.calendarPref,
"alarms.playsound",
gCalendarBundle.getString("playAlarmSound") )
)
{
playSound();
}
@@ -710,11 +711,10 @@ CalendarAlarmObserver.prototype.fireAlarm = function calAlarm_fireAlarm( calenda
if ( calendarEvent.alarmEmailAddress )
{
var EmailBody = "Calendar Event Alarm Went Off!\n----------------------------\n";
EmailBody += "Title: "+calendarEvent.title + " at " + calendarEvent.start.toString() + "\n";
EmailBody += "This message sent to you from the Mozilla Calendar.\nhttp://www.mozilla.org/projects/calendar/";
var EmailBody = gCalendarEmailBundle.getFormattedString("AlarmEmailBody", [calendarEvent.title, calendarEvent.start.toString()]);
var EmailSubject = gCalendarEmailBundle.getFormattedString("AlarmEmailSubject", [calendarEvent.title]);
//send an email for the event
sendEmail( "Mozilla Calendar Alarm: "+calendarEvent.title, EmailBody, calendarEvent.alarmEmailAddress, null, null, null, null );
sendEmail( EmailSubject, EmailBody, calendarEvent.alarmEmailAddress, null, null, null, null );
}
}

View File

@@ -19,6 +19,7 @@
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Mike Potter <mikep@oeone.com>
* Eric Belhaire <belhaire@ief.u-psud.fr>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -117,9 +118,7 @@ function calendarManager( CalendarWindow )
/* Refresh remote calendars */
var categoriesStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
var RefreshServers = getBoolPref(this.CalendarWindow.calendarPreferences.calendarPref, "servers.reloadonlaunch", categoriesStringBundle.GetStringFromName("reloadServersOnLaunch" ) );
var RefreshServers = getBoolPref(this.CalendarWindow.calendarPreferences.calendarPref, "servers.reloadonlaunch", gCalendarBundle.getString("reloadServersOnLaunch" ) );
if( RefreshServers == true )
this.refreshAllRemoteCalendars( );
@@ -890,15 +889,13 @@ function deleteCalendar( )
promptService = promptService.QueryInterface(Components.interfaces.nsIPromptService);
var result = {value:0};
var calendarStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
var buttonPressed =
promptService.confirmEx(window,
calendarStringBundle.GetStringFromName( "deleteCalendarTitle" ), calendarStringBundle.GetStringFromName( "deleteCalendarMessage" ),
gCalendarBundle.getString( "deleteCalendarTitle" ), gCalendarBundle.getString( "deleteCalendarMessage" ),
(promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0) +
(promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_1) +
(promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_2),
calendarStringBundle.GetStringFromName( "deleteCalendarOnly" ),null,calendarStringBundle.GetStringFromName( "deleteCalendarAndFile" ),null, result);
gCalendarBundle.getString( "deleteCalendarOnly" ),null,gCalendarBundle.getString( "deleteCalendarAndFile" ),null, result);
var IdToDelete = gCalendarWindow.calendarManager.getSelectedCalendarId()

View File

@@ -77,6 +77,14 @@ DateUtils.getLastDayOfMonth = function( year, month )
return lastDayOfMonth;
}
// Number of full days corrected by the TimezoneOffset in order to adapt to
// Daylight Saving Time changes.
DateUtils.getDifferenceInDays = function(StartDate, EndDate)
{
var msOffset = ( StartDate.getTimezoneOffset() - EndDate.getTimezoneOffset() ) * kDate_MillisecondsInMinute ;
return( (EndDate.getTime() + msOffset - StartDate.getTime() ) / kDate_MillisecondsInDay) ;
}
DateUtils.getWeekNumber = function(date)
{
//ISO Week Number(01-53) for any date

View File

@@ -20,6 +20,7 @@
*
* Contributor(s): ArentJan Banck <ajbanck@planet.nl>
* Steve Hampton <mvgrad78@yahoo.com>
* Eric Belhaire <belhaire@ief.u-psud.fr>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -53,26 +54,24 @@ const MODE_TRUNCATE = 0x20;
const MODE_SYNC = 0x40;
const MODE_EXCL = 0x80;
const filterCalendar = "Calendar Files";
const filterCalendar = gCalendarBundle.getString( "filterCalendar" );
const extensionCalendar = ".ics";
const filtervCalendar = "vCalendar Files";
const filtervCalendar = gCalendarBundle.getString( "filtervCalendar" );
const extensionvCalendar = ".vcs";
const filterXcs = "iCalendar XML Document";
const filterXcs = gCalendarBundle.getString("filterXcs");
const extensionXcs = ".xcs";
const filterXml = "XML Document";
const filterXml = gCalendarBundle.getString("filterXml");
const extensionXml = ".xml";
const filterRtf = "Rich Text Format (RTF)";
const filterRtf = gCalendarBundle.getString("filterRtf");
const extensionRtf = ".rtf";
const filterHtml = "HTML Files";
const filterHtml = gCalendarBundle.getString("filterHtml");
const extensionHtml = ".html";
const filterCsv = "Comma Separated";
const filterOutlookCsv = "Outlook Comma Separated";
const filterCsv = gCalendarBundle.getString("filterCsv");
const filterOutlookCsv = gCalendarBundle.getString("filterOutlookCsv");
const extensionCsv = ".csv";
const filterRdf = "iCalendar RDF";
const filterRdf = gCalendarBundle.getString("filterRdf");
const extensionRdf = ".rdf";
calendarStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
if( opener && opener.gICalLib )
gICalLib = opener.gICalLib;
@@ -115,7 +114,7 @@ function loadEventsFromFile()
const nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, "Open", nsIFilePicker.modeOpenMultiple);
fp.init(window, gCalendarBundle.getString("Open"), nsIFilePicker.modeOpenMultiple);
fp.defaultExtension = "ics";
fp.appendFilter( filterCalendar, "*" + extensionCalendar );
@@ -164,7 +163,7 @@ function loadEventsFromFile()
// If there are no events to import, let the user know
//
if (calendarEventArray.length == 0 && (duplicateEventArray.length == 0 || dupResult.discard == true) ) {
alert( calendarStringBundle.GetStringFromName( "noEventsToImport" ) );
alert( gCalendarBundle.getString( "noEventsToImport" ) );
return false;
}
@@ -177,7 +176,7 @@ function loadEventsFromFile()
var buttonPressed =
promptService.confirmEx(window,
"Import", calendarStringBundle.GetStringFromName( "aboutToImport" ) + " "+ calendarEventArray.length + " " + calendarStringBundle.GetStringFromName( "aboutToImportEnd" ),
"Import", gCalendarBundle.getFormattedString( "aboutToImport", [calendarEventArray.length]),
(promptService.BUTTON_TITLE_YES * promptService.BUTTON_POS_0) +
(promptService.BUTTON_TITLE_NO * promptService.BUTTON_POS_1) +
(promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_2),
@@ -208,7 +207,7 @@ function loadEventsFromFile()
if (dupResult.discard == false) {
if (dupResult.prompt)
alert(calendarStringBundle.GetStringFromName( "duplicateImport" ));
alert(gCalendarBundle.getString( "duplicateImport" ));
addEventsToCalendar( duplicateEventArray, !dupResult.prompt );
}
@@ -413,10 +412,10 @@ function entryExists( date, subject) {
function promptToKeepEntry(title, startTime, endTime)
{
return confirm(
calendarStringBundle.GetStringFromName( "addDuplicate" )+"\n\n" +
calendarStringBundle.GetStringFromName( "eventTitle" )+ title + "\n" +
calendarStringBundle.GetStringFromName( "eventStartTime" )+ startTime.toString() + "\n" +
calendarStringBundle.GetStringFromName( "eventEndTime" )+ endTime.toString() + "\n"
gCalendarBundle.getString( "addDuplicate" )+"\n\n" +
gCalendarBundle.getString( "eventTitle" )+ title + "\n" +
gCalendarBundle.getString( "eventStartTime" )+ startTime.toString() + "\n" +
gCalendarBundle.getString( "eventEndTime" )+ endTime.toString() + "\n"
);
}
@@ -561,7 +560,7 @@ function readDataFromFile( aFilePath, charset )
}
catch(ex)
{
alert( calendarStringBundle.GetStringFromName( "unableToRead" ) + aFilePath + "\n"+ex );
alert( gCalendarBundle.getString( "unableToRead" ) + aFilePath + "\n"+ex );
}
return aDataStream;
@@ -581,7 +580,7 @@ function saveEventsToFile( calendarEventArray )
if (calendarEventArray.length == 0)
{
alert( calendarStringBundle.GetStringFromName( "noEventsToSave" ) );
alert( gCalendarBundle.getString( "noEventsToSave" ) );
return;
}
@@ -592,12 +591,12 @@ function saveEventsToFile( calendarEventArray )
// caller can force disable of sand box, even if ON globally
fp.init(window, "Save As", nsIFilePicker.modeSave);
fp.init(window, gCalendarBundle.getString("SaveAs"), nsIFilePicker.modeSave);
if(calendarEventArray.length == 1 && calendarEventArray[0].title)
fp.defaultString = calendarEventArray[0].title;
else
fp.defaultString = calendarStringBundle.GetStringFromName( "defaultFileName" );
fp.defaultString = gCalendarBundle.getString( "defaultFileName" );
fp.defaultExtension = "ics";
@@ -731,7 +730,7 @@ function patchICalStringForExport( sTextiCalendar )
function eventArrayToHTML( calendarEventArray )
{
sHTMLHeader =
"<html>\n" + "<head>\n" + "<title>"+calendarStringBundle.GetStringFromName( "HTMLTitle" )+"</title>\n" +
"<html>\n" + "<head>\n" + "<title>"+gCalendarBundle.getString( "HTMLTitle" )+"</title>\n" +
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
"</head>\n"+ "<body bgcolor=\"#FFFFFF\" text=\"#000000\">\n";
sHTMLFooter =
@@ -743,10 +742,10 @@ function eventArrayToHTML( calendarEventArray )
{
var calendarEvent = calendarEventArray[ eventArrayIndex ];
sHTMLText += "<p>";
sHTMLText += "<B>"+calendarStringBundle.GetStringFromName( "eventTitle" )+"</B>\t" + calendarEvent.title + "<BR>\n";
sHTMLText += "<B>"+calendarStringBundle.GetStringFromName( "eventDescription" )+"</B>\t" + calendarEvent.description + "<BR>\n";
sHTMLText += "<B>"+calendarStringBundle.GetStringFromName( "eventWhen" )+"</B>" + formatDateTimeInterval(calendarEvent.start, calendarEvent.end) + "<BR>\n";
sHTMLText += "<B>"+calendarStringBundle.GetStringFromName( "eventWhere" )+"</B>" + calendarEvent.location + "<BR>\n";
sHTMLText += "<B>"+gCalendarBundle.getString( "eventTitle" )+"</B>\t" + calendarEvent.title + "<BR>\n";
sHTMLText += "<B>"+gCalendarBundle.getString( "eventDescription" )+"</B>\t" + calendarEvent.description + "<BR>\n";
sHTMLText += "<B>"+gCalendarBundle.getString( "eventWhen" )+"</B>" + formatDateTimeInterval(calendarEvent.start, calendarEvent.end) + "<BR>\n";
sHTMLText += "<B>"+gCalendarBundle.getString( "eventWhere" )+"</B>" + calendarEvent.location + "<BR>\n";
// sHTMLText += "<B>Organiser: </B>\t" + Event.???
sHTMLText += "</p>";
}
@@ -773,8 +772,8 @@ function eventArrayToRTF( calendarEventArray )
for( var eventArrayIndex = 0; eventArrayIndex < calendarEventArray.length; ++eventArrayIndex )
{
var calendarEvent = calendarEventArray[ eventArrayIndex ];
sRTFText += "\\b\\f0\\fs20 " + calendarStringBundle.GetStringFromName( "eventTitle" ) + "\\b0\\tab " + calendarEvent.title + "\\par\n";
sRTFText += "\\b\\f0\\fs20 " + calendarStringBundle.GetStringFromName( "eventDescription" ) + "\\b0\\tab " + calendarEvent.description + "\\par\n";
sRTFText += "\\b\\f0\\fs20 " + gCalendarBundle.getString( "eventTitle" ) + "\\b0\\tab " + calendarEvent.title + "\\par\n";
sRTFText += "\\b\\f0\\fs20 " + gCalendarBundle.getString( "eventDescription" ) + "\\b0\\tab " + calendarEvent.description + "\\par\n";
sRTFText += "\\b When:\\b0\\tab " + formatDateTimeInterval(calendarEvent.start, calendarEvent.end) + "\\par\n";
@@ -885,7 +884,7 @@ function saveDataToFile(aFilePath, aDataStream, charset)
}
catch(ex)
{
alert(calendarStringBundle.GetStringFromName( "unableToWrite" ) + aFilePath );
alert(gCalendarBundle.getString( "unableToWrite" ) + aFilePath );
}
}
@@ -1298,7 +1297,7 @@ function startImport() {
onAlarm : function( calendarEvent ) {},
onError : function( severity, errorid, errorstring )
{
this.errorreport=this.errorreport+calendarStringBundle.GetStringFromName( errorid )+"\n";
this.errorreport=this.errorreport+gCalendarBundle.getString( errorid )+"\n";
},
showErrors : function () {
if( this.errorreport != "" )

View File

@@ -175,22 +175,24 @@ function launchFilePicker()
// No show the 'Save As' dialog and ask for a filename to save to
const nsIFilePicker = Components.interfaces.nsIFilePicker;
var gCalendarBundle = document.getElementById("bundle_calendar");
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
// caller can force disable of sand box, even if ON globally
fp.init(window, "Save", nsIFilePicker.modeSave);
fp.init(window, gCalendarBundle.getString( "Save" ), nsIFilePicker.modeSave);
var ServerName = document.getElementById( "server-name-textbox" ).value;
if( ServerName == "" )
fp.defaultString = "MozillaCalendarFile.ics";
fp.defaultString = gCalendarBundle.getString( "filepickerDefString" );
else
fp.defaultString = "MozillaCalendar"+ServerName+".ics";
fp.defaultString = gCalendarBundle.getFormattedString( "filepickerDefServerString", [ServerName] );
fp.defaultExtension = "ics";
const filterCalendar = "Calendar Files";
const filterCalendar = gCalendarBundle.getString( "filterCalendar" );
const extensionCalendar = ".ics";
fp.appendFilter( filterCalendar, "*" + extensionCalendar );

View File

@@ -23,6 +23,7 @@
* Chris Charabaruk <coldacid@meldstar.com>
* Colin Phillips <colinp@oeone.com>
* ArentJan Banck <ajbanck@planet.nl>
* Eric Belhaire <eric.belhaire@ief.u-psud.fr>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -524,7 +525,6 @@ var treeView =
getCellText : function(row,column)
{
calendarEvent = gEventArray[row];
var calendarStringBundle = srGetStrBundle("chrome://calendar/locale/calendar.properties");
switch( column )
{
case "unifinder-search-results-tree-col-title":
@@ -536,13 +536,12 @@ var treeView =
var startDate = formatUnifinderEventDate( eventStartDate );
if( calendarEvent.allDay )
{
startText = unifinderAlldayLabel + " " + startDate;
return(gCalendarBundle.getFormattedString("unifinderAlldayEventDate", [startDate]));
}
else
{
startText = startDate + " " + startTime;
return(gCalendarBundle.getFormattedString("unifinderNormalEventDate", [startDate, startTime]));
}
return( startText );
case "unifinder-search-results-tree-col-enddate":
var eventEndDate = getNextOrPreviousRecurrence( calendarEvent );
@@ -553,13 +552,12 @@ var treeView =
var endDate = formatUnifinderEventDate( eventEndDate );
if( calendarEvent.allDay )
{
endText = unifinderAlldayLabel + " " + endDate;
return(gCalendarBundle.getFormattedString("unifinderAlldayEventDate", [endDate]));
}
else
{
endText = endDate + " " + endTime;
return(gCalendarBundle.getFormattedString("unifinderNormalEventDate", [endDate, endTime]));
}
return( endText );
case "unifinder-search-results-tree-col-categories":
return( calendarEvent.categories );
@@ -571,11 +569,11 @@ var treeView =
switch( calendarEvent.status )
{
case calendarEvent.ICAL_STATUS_TENTATIVE:
return( calendarStringBundle.GetStringFromName( "Tentative" ) );
return( gCalendarBundle.getString( "Tentative" ) );
case calendarEvent.ICAL_STATUS_CONFIRMED:
return( calendarStringBundle.GetStringFromName( "Confirmed" ) );
return( gCalendarBundle.getString( "Confirmed" ) );
case calendarEvent.ICAL_STATUS_CANCELLED:
return( calendarStringBundle.GetStringFromName( "Cancelled" ) );
return( gCalendarBundle.getString( "Cancelled" ) );
default:
return false;
}
@@ -761,33 +759,84 @@ function changeToolTipTextForEvent( event )
function getPreviewText( calendarEvent )
{
var HolderBox = document.createElement( "vbox" );
var textString ;
if (calendarEvent.title)
{
var TitleHtml = document.createElement( "description" );
var TitleText = document.createTextNode( unifinderTitleLabel+calendarEvent.title );
textString = gCalendarBundle.getFormattedString("tooltipTitleElement", [calendarEvent.title]);
var TitleText = document.createTextNode( textString );
TitleHtml.appendChild( TitleText );
HolderBox.appendChild( TitleHtml );
}
var DateHtml = document.createElement( "description" );
var startDate = new Date( calendarEvent.start.getTime() );
var DateText = document.createTextNode( unifinderStartLabel+gCalendarWindow.dateFormater.getFormatedDate( startDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( startDate ) );
var endDate = new Date( calendarEvent.end.getTime() );
var diff = DateUtils.getDifferenceInDays(startDate, endDate) ;
var DateHtml = document.createElement( "description" );
if (calendarEvent.allDay) {
if ( diff > 1 ) {
textString = gCalendarBundle.getFormattedString("tooltipEventStart",
[gCalendarWindow.dateFormater.getFormatedDate( startDate ),
""]);
var DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
textString = gCalendarBundle.getFormattedString("tooltipEventEnd",
[gCalendarWindow.dateFormater.getFormatedDate( endDate ),
""]);
}
else {
textString = gCalendarBundle.getFormattedString("tooltipAlldayEventDate",
[gCalendarWindow.dateFormater.getFormatedDate( startDate ),
""]);
}
}
else {
textString = gCalendarBundle.getFormattedString("tooltipEventStart",
[gCalendarWindow.dateFormater.getFormatedDate( startDate ),
gCalendarWindow.dateFormater.getFormatedTime( startDate )]);
var DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
textString = gCalendarBundle.getFormattedString("tooltipEventEnd",
[gCalendarWindow.dateFormater.getFormatedDate( endDate ),
gCalendarWindow.dateFormater.getFormatedTime( endDate )]);
}
DateText = document.createTextNode( textString );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
var endDate = new Date( calendarEvent.end.getTime() );
DateText = document.createTextNode( unifinderEndLabel+gCalendarWindow.dateFormater.getFormatedDate( endDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( endDate ) );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
if (calendarEvent.location)
{
var LocationHtml = document.createElement( "description" );
textString = gCalendarBundle.getFormattedString("tooltipEventLocation", [calendarEvent.location]);
var LocationText = document.createTextNode( textString );
LocationHtml.appendChild( LocationText );
HolderBox.appendChild( LocationHtml );
}
if (calendarEvent.description)
{
textString = gCalendarBundle.getFormattedString("tooltipEventDescription", [calendarEvent.description]);
var lines = textString.split("\n");
var nbmaxlines = 5 ;
var nblines = lines.length ;
if( nblines > nbmaxlines ) {
var nblines = nbmaxlines ;
lines[ nblines - 1 ] = "..." ;
}
for (var i = 0; i < nblines; i++) {
var DescriptionHtml = document.createElement( "description" );
var DescriptionText = document.createTextNode( unifinderDescriptionLabel+calendarEvent.description );
DescriptionHtml.appendChild( DescriptionText );
HolderBox.appendChild( DescriptionHtml );
var DescriptionText = document.createTextNode(lines[i]);
DescriptionHtml.appendChild(DescriptionText);
HolderBox.appendChild(DescriptionHtml);
}
}
return ( HolderBox );

View File

@@ -588,57 +588,8 @@ function changeToolTipTextForToDo( event )
{
Html.removeChild( Html.firstChild );
}
var HolderBox = document.createElement( "vbox" );
if( toDoItem )
{
showTooltip = true; //needed to show the tooltip.
if (toDoItem.title)
{
var TitleHtml = document.createElement( "description" );
var TitleText = document.createTextNode( "Title: "+toDoItem.title );
TitleHtml.appendChild( TitleText );
HolderBox.appendChild( TitleHtml );
}
var DateHtml = document.createElement( "description" );
var startDate = new Date( toDoItem.start.getTime() );
var DateText = document.createTextNode( "Start Date: "+gCalendarWindow.dateFormater.getFormatedDate( startDate ) );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
DateHtml = document.createElement( "description" );
var dueDate = new Date( toDoItem.due.getTime() );
DateText = document.createTextNode( "Due Date: "+gCalendarWindow.dateFormater.getFormatedDate( dueDate ) );
DateHtml.appendChild( DateText );
HolderBox.appendChild( DateHtml );
if (toDoItem.description)
{
var text = "Description: "+toDoItem.description ;
var lines = text.split("\n");
var nbmaxlines = 5 ;
var nblines = lines.length ;
if( nblines > nbmaxlines ) {
var nblines = nbmaxlines ;
lines[ nblines - 1 ] = "..." ;
}
for (var i = 0; i < nblines; i++) {
var DescriptionHtml = document.createElement("description");
var DescriptionText = document.createTextNode(lines[i]);
DescriptionHtml.appendChild(DescriptionText);
HolderBox.appendChild(DescriptionHtml);
}
}
Html.appendChild( HolderBox );
}
else
{
showTooltip = false; //Don't show the tooltip
}
var HolderBox = getPreviewTextForTask( toDoItem ) ;
if( HolderBox ) Html.appendChild( HolderBox ) ;
}
function changeContextMenuForToDo( event )

View File

@@ -190,11 +190,6 @@
<!ENTITY calendar.unifinder.todayandfuture.label "Hide Past Events" >
<!ENTITY calendar.unifinder.todoitems.label "Tasks" >
<!ENTITY calendar.unifinder.hidecompletedtodos.label "Hide Completed Tasks">
<!ENTITY calendar.unifinder.allday.label "All day" >
<!ENTITY calendar.unifinder.title.label "Title: " >
<!ENTITY calendar.unifinder.start.label "Start: " >
<!ENTITY calendar.unifinder.end.label "End: " >
<!ENTITY calendar.unifinder.description.label "Description: " >
<!ENTITY calendar.calendartab.label "Calendar">
<!ENTITY calendar.listofcalendarstab.label "Calendars">

View File

@@ -19,6 +19,7 @@
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): ArentJan Banck <ajbanck@planet.nl>
# Eric Belhaire <belhaire@ief.u-psud.fr>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -43,8 +44,7 @@ Cancelled=Cancelled
noEventsToImport=No events to import...
noEventsToSave=No events selected to save.
aboutToImport=About to import
aboutToImportEnd=event(s).\nDo you want to open all new events to import before importing?
aboutToImport=About to import %1$S event(s).\nDo you want to open all new events to import before importing?
duplicateImport=Some duplicate entries were imported. Each one will display in the New Event dialog,\n where you can skip it using Cancel, or edit and accept it using OK.
addDuplicate=Add duplicate entry:
@@ -91,7 +91,48 @@ Week=Week
defaultzone=Default Timezone:
# Alarm
TooManyAlarmsMessage=You have %1$S total alarms. We've shown you the last 6. Click Acknowledge All to clear them all.
# Error strings
## @name UID_NOT_FOUND
## @loc none
1001=Warning UID not found! Assigning new one.
# List of events or todos (unifinder)
## %1$S is the date
unifinderAlldayEventDate=All day %1$S
## %1$S is the date, %2$S is the time
unifinderNormalEventDate=%1$S %2$S
# Tooltips of events or todos
tooltipTitleElement=Title: %1$S
## %1$S is the date, %2$S is the time
tooltipEventStart=Start:\t%1$S %2$S
tooltipEventEnd=End:\t %1$S %2$S
tooltipTaskStart=Start Date: %1$S
tooltipTaskEnd=Due Date: %1$S
tooltipAlldayEventDate=All Day %1$S
##
tooltipEventLocation=Location: %1$S
tooltipEventDescription=Note: %1$S
tooltipTaskDescription=Note: %1$S
#File commands and dialogs
Open=Open
Save=Save
SaveAs=Save As
filepickerDefString=MozillaCalendarFile.ics
### %1$S in the server name
filepickerDefServerString=MozillaCalendar%1$S.ics
#filter
filterCalendar=Calendar Files
filtervCalendar=vCalendar Files
filterXcs=iCalendar XML Document
filterXml=XML Document
filterRtf=Rich Text Format (RTF)
filterHtml=HTML Files
filterCsv=Comma Separated
filterOutlookCsv=Outlook Comma Separated
filterRdf=iCalendar RDF

View File

@@ -36,4 +36,4 @@
# default categories
categories=Birthday,Business,Calls,Clients,Competition,Customer,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation
categories=Anniversary,Birthday,Business,Calls,Clients,Competition,Customer,Favorites,Follow up,Gifts,Holidays,Ideas,Issues,Miscellaneous,Personal,Projects,Public Holiday,Status,Suppliers,Travel,Vacation

View File

@@ -41,3 +41,5 @@ Where=Where:
Organizer=Organizer:
Summary=Summary:
EmailSubject=Calendar Events
AlarmEmailBody=Calendar Event Alarm Went Off!\n----------------------------\nTitle: %1$S at %2$S\nThis message sent to you from the Mozilla Calendar.\nhttp://www.mozilla.org/projects/calendar/
AlarmEmailSubject=Mozilla Calendar Alarm: %1$S