- added fullscreen mode (can list 30 events)\r
- added settings menu. Need to modify the widget manually anymore. \r
- fixed table cell alignment in cases where the event summary was very long\r
- - fixed display of "tomorrow" text if CombinedDateTime is enabled
\ No newline at end of file
+ - fixed display of "tomorrow" text if CombinedDateTime is enabled\r
+1.24 () by Michael Prager\r
+ - localization support added by Christophe Milsent\r
+ - added french translation by Christophe Milsent\r
+ - new option "hide Widget On Calendar Open". When enabled, this will close \r
+ the fullscreen widget when opening the calendar app\r
+ - code cleanup and size reduction\r
+ - update interval to detect screen rotation increased from 3 to 1 secs\r
+ - open calendar app when clicking anywhere in fullscreen view
\ No newline at end of file
@echo off\r
\r
-set VERSION=1.23\r
+set VERSION=1.24\r
\r
del *.wgz\r
del *.zip\r
<!DOCTYPE plist PUBLIC "-//Nokia//DTD PLIST 1.0//EN" "http://www.nokia.com/NOKIA_COM_1/DTDs/plist-1.0.dtd">\r
<plist version="1.0">\r
<dict>\r
- <key>DisplayName</key> <string>Coming Next 1.23</string>\r
+ <key>DisplayName</key> <string>Coming Next 1.24</string>\r
<key>Identifier</key> <string>ar.com.cochambre.symbian.wrt.comingnext</string>\r
- <key>Version</key> <string>1.23</string>\r
+ <key>Version</key> <string>1.24</string>\r
<key>MainHTML</key> <string>index.html</string>\r
<key>AllowNetworkAccess</key> <false />\r
<key>MiniViewEnabled</key> <true/> \r
--- /dev/null
+var localizedText = new Array();\r
+\r
+localizedText['menu.settings'] = "Parametres";\r
+localizedText['menu.openCalendarApp'] = "Ouvrir Calendrier";\r
+localizedText['menu.about'] = "A propos";\r
+\r
+localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
+localizedText['settings.help'] = 'Aide';\r
+localizedText['settings.save'] = 'Sauver';\r
+localizedText['settings.cancel'] = 'Annuler';\r
+\r
+localizedText['settings.name.monthRange'] = 'Nombre de mois';\r
+localizedText['settings.info.monthRange'] = 'Nombre de mois à inclure dans la liste d\'événements';\r
+localizedText['settings.name.includeTodos'] = 'Ajouter ToDos';\r
+localizedText['settings.info.includeTodos'] = 'Décocher pour ne pas afficher ToDos dans la liste d\'événements';\r
+localizedText['settings.name.useBackgroundImage'] = 'Utiliser Background Image';\r
+localizedText['settings.info.useBackgroundImage'] = 'Utiliser background_portrait.png et background_landscape.png pour simuler la transparence. Décocher pour utiliser une couleur de fond';\r
+localizedText['settings.name.showCombinedDateTime'] = 'Afficher date & heure';\r
+localizedText['settings.info.showCombinedDateTime'] = 'Afficher seulement l\'heure pour les événements de la journée, sinon seulement date';\r
+localizedText['settings.name.showLocation'] = 'Afficher le lieu';\r
+localizedText['settings.info.showLocation'] = 'Afficher les lieux pour les réunions';\r
+localizedText['settings.name.showTodayAsText'] = 'Afficher "Aujourd\'hui"';\r
+localizedText['settings.info.showTodayAsText'] = 'Si coché, la date du jour sera remplacé par "Aujourd\'hui" au lieu de "31.12"';\r
+localizedText['settings.name.todayText'] = 'Texte pour "Aujourd\'hui"';\r
+localizedText['settings.info.todayText'] = 'Texte à afficher pour "Aujourd\'hui"';\r
+localizedText['settings.default.todayText'] = 'Aujour.';\r
+localizedText['settings.name.tomorrowText'] = 'Texte pour "Demain"';\r
+localizedText['settings.info.tomorrowText'] = 'Texte à afficher pour "Demain"';\r
+localizedText['settings.default.tomorrowText'] = 'Demain';\r
+localizedText['settings.name.showNowAsText'] = 'Afficher "Maintenant"';\r
+localizedText['settings.info.showNowAsText'] = 'Si coché, l\'heure de rendez-vous affichera "Maintenant" au lieu de "12:00"';\r
+localizedText['settings.name.nowText'] = 'Texte pour "Maint."';\r
+localizedText['settings.info.nowText'] = 'Texte à afficher pour "Maintenant"';\r
+localizedText['settings.default.nowText'] = 'Maint.';\r
+localizedText['settings.name.dateSeparator'] = 'Séparateur pour les dates';\r
+localizedText['settings.info.dateSeparator'] = 'Séparateur pour les dates. cad "31.12" ou "31/12"';\r
+localizedText['settings.default.dateSeparator'] = '/';\r
+localizedText['settings.name.dateFormat'] = 'Format des dates';\r
+localizedText['settings.info.dateFormat'] = 'Comment les dates doivent être affichées. \'auto\' format de votre téléphone. \'MMDD\' mois en premier, \'DDMM\' jour en premier';\r
+localizedText['settings.name.weekDayLength'] = 'Nombre de caractère pour le jour';\r
+localizedText['settings.info.weekDayLength'] = 'Définit le nombre de caractères pour afficher le jour de la semaine : 2 coupera "Lundi" à "Lu"';\r
+localizedText['settings.name.updateDataInterval'] = 'Interval de mise à jour';\r
+localizedText['settings.info.updateDataInterval'] = 'Combien de minute avant de mettre à jour les informations. Plus le nombre est grand, moins la batterie sera utilisée';\r
+localizedText['settings.name.calendarApp'] = 'Calendar Application To Run';\r
+localizedText['settings.info.calendarApp'] = 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar';\r
+localizedText['settings.name.eventsPerWidget'] = 'Evénément par Widget';\r
+localizedText['settings.info.eventsPerWidget'] = 'Nombre d\'événement à afficher par widget. Par défaut 4';\r
+localizedText['settings.name.showNothingText'] = 'Afficher un text si vide';\r
+localizedText['settings.info.showNothingText'] = 'Si coché, affiche un texte si aucun événement n\'est présent dans la liste';\r
+localizedText['settings.name.nothingText'] = 'Texte pour "Aucun événement"';\r
+localizedText['settings.info.nothingText'] = 'Texte à afficher quand il n\'y a aucun événement à afficher';\r
+localizedText['settings.default.nothingText'] = 'Pas d\'événements durant les prochains mois';\r
+localizedText['settings.name.enableDaylightSaving'] = 'Activé Daylight Saving';\r
+localizedText['settings.info.enableDaylightSaving'] = 'Permet d\'activer Daylight saving si vous êtes dans une fuseau horaire où il y a daylight saving time (+1h)';\r
+localizedText['settings.name.hideWidgetOnCalendarOpen'] = 'Hide Widget When Opening Calendar';\r
+localizedText['settings.info.hideWidgetOnCalendarOpen'] = 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app';\r
+localizedText['settings.name.cssStyle_background'] = '.background';\r
+localizedText['settings.info.cssStyle_background'] = 'Definit le style CSS du fond du widget. Si vous voulez mettre une image de fond, cocher "Utiliser Background Image". Pour le thème par défaut, noir, gris, and bleu, les codes sont #292029, #e7dfe7, #009aef';\r
+localizedText['settings.name.cssStyle_backgroundFullscreen'] = '.backgroundFullscreen';\r
+localizedText['settings.info.cssStyle_backgroundFullscreen'] = 'Identique à background mais pour l\'affichage plein écran du widget';\r
+localizedText['settings.name.cssStyle_weekDay'] = '.weekDay';\r
+localizedText['settings.info.cssStyle_weekDay'] = 'Définit l\'apparence de l\'affichage des jours de la semaine';\r
+localizedText['settings.name.cssStyle_date'] = '.date';\r
+localizedText['settings.info.cssStyle_date'] = 'Définit l\'apparence de l\'affichage des dates';\r
+localizedText['settings.name.cssStyle_today'] = '.today';\r
+localizedText['settings.info.cssStyle_today'] = 'Définit l\'apparence de l\'affichage du texte "Aujourd\'hui"';\r
+localizedText['settings.name.cssStyle_tomorrow'] = '.tomorrow';\r
+localizedText['settings.info.cssStyle_tomorrow'] = 'Définit l\'apparence de l\'affichage du texte "Demain"';\r
+localizedText['settings.name.cssStyle_time'] = '.time';\r
+localizedText['settings.info.cssStyle_time'] = 'Définit l\'apparence de l\'affichage des heures';\r
+localizedText['settings.name.cssStyle_now'] = '.now';\r
+localizedText['settings.info.cssStyle_now'] = 'Définit l\'apparence de l\'affichage du texte "Maintenant"';\r
+localizedText['settings.name.cssStyle_description'] = '.description';\r
+localizedText['settings.info.cssStyle_description'] = 'Définit l\'apparence de l\'affichage du texte de description des événements';\r
+localizedText['settings.name.cssStyle_icon'] = '.icon';\r
+localizedText['settings.info.cssStyle_icon'] = 'Définit la taille des icones';\r
+\r
.icon { }\r
</style>\r
\r
+<script type="text/javascript" src="localizedTextStrings.js" />\r
+\r
<script>\r
// valid types for the config object are 'Int', 'Bool', 'String', 'Enum', 'UID'\r
var config = {\r
-monthRange: {\r
- Type: 'Int',\r
- Default: 2,\r
- Value: 2,\r
- Name: 'Month Range',\r
- Info: 'number of months to include in the event list',},\r
-includeTodos: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Include ToDos',\r
- Info: 'disable to remove ToDos from event list',},\r
-useBackgroundImage: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Use Background Image',\r
- Info: 'use background_portrait.png and background_landscape.png to fake transparency. Disable to use a solid background color',},\r
-showCombinedDateTime: {\r
- Type: 'Bool',\r
- Default: false,\r
- Value: false,\r
- Name: 'Show Combined Date/Time',\r
- Info: 'only show the time for events happening today, otherwise just show the date',},\r
-showLocation: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Location',\r
- Info: 'show the location for meeting events',},\r
-showTodayAsText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Today as Text',\r
- Info: 'if enabled, the current date will be shown as "Today" instead of "31.12"',},\r
-todayText: {\r
- Type: 'String',\r
- Default: 'Today',\r
- Value: 'Today',\r
- Name: '"Today" Text',\r
- Info: 'text to display for "Today"',},\r
-tomorrowText: {\r
- Type: 'String',\r
- Default: 'Tomorrow',\r
- Value: 'Tomorrow',\r
- Name: '"Tomorrow" Text',\r
- Info: 'text to display for "Tomorrow"',},\r
-showNowAsText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Now as Text',\r
- Info: 'if enabled, the appointment time will be shown as "Now" instead of "12:00"',},\r
-nowText: {\r
- Type: 'String',\r
- Default: 'Now',\r
- Value: 'Now',\r
- Name: '"Now" Text',\r
- Info: 'text to display for "Now"',},\r
-dateSeparator: {\r
- Type: 'String',\r
- Default: '.',\r
- Value: '.',\r
- Name: 'Date Separator',\r
- Info: 'separator for dates. e.g. "31.12" or "31/12"',},\r
-dateFormat: {\r
- Type: 'Enum',\r
- Default: 'auto',\r
- Value: 'auto',\r
- ValidValues: ['auto', 'DDMM', 'MMDD'],\r
- Name: 'Date Format',\r
- Info: 'how dates will be displayed. \'auto\' will autodetect your phone\'s date format setting. \'MMDD\' will write month first, \'DDMM\' will write day first',},\r
-weekDayLength: {\r
- Type: 'Int',\r
- Default: 2,\r
- Value: 2,\r
- Name: 'Weekday Length',\r
- Info: 'defines how many characters of the weekday will be shown. E.g. 2 will cut "Friday" to "Fr"',},\r
-updateDataInterval: {\r
- Type: 'Int',\r
- Default: 5,\r
- Value: 5,\r
- Name: 'Update Data Interval',\r
- Info: 'how many minutes to wait before updating the displayed data. The higher the number, the less battery is used',},\r
-calendarApp: {\r
- Type: 'UID',\r
- Default: 0x10005901,\r
- Value: 0x10005901,\r
- Name: 'Calendar Application To Run',\r
- Info: 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar',},\r
-eventsPerWidget: {\r
- Type: 'Int',\r
- Default: 4,\r
- Value: 4,\r
- Name: 'Events Per Widget',\r
- Info: 'number of events to show per widget. Default is 4',},\r
-showNothingText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show "Nothing" Text',\r
- Info: 'if enabled, show a text if no events are in the list',},\r
-nothingText: {\r
- Type: 'String',\r
- Default: 'No further events within 2 months',\r
- Value: 'No further events within 2 months',\r
- Name: '"No further events..." Text',\r
- Info: 'text to show when no events are in the list',},\r
-enableDaylightSaving: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Enable Daylight Saving (+1h)',\r
- Info: 'enable this if you are in a timezone that has daylight saving time (+1h)',},\r
-hideWidgetOnCalendarOpen: {\r
- Type: 'Bool',\r
- Default: false,\r
- Value: false,\r
- Name: 'Hide Widget When Opening Calendar',\r
- Info: 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app',},\r
-cssStyle_background: {\r
- Type: 'String',\r
- Default: 'color:#ffffff; background-color:#000000',\r
- Value: 'color:#ffffff; background-color:#000000',\r
- Name: '.background',\r
- Info: 'Defines the background of the widget. If you want to use a background image, set useBackgroundImage = true below. For the default themes, black, gray, and light blue, codes are #292029, #e7dfe7, #009aef',},\r
-cssStyle_backgroundFullscreen: {\r
- Type: 'String',\r
- Default: 'color:#ffffff; background-color:#000000',\r
- Value: 'color:#ffffff; background-color:#000000',\r
- Name: '.backgroundFullscreen',\r
- Info: 'Same as background but for the fullscreen version of the widget',},\r
-cssStyle_weekDay: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.weekDay',\r
- Info: 'Defines the appearance of all week day texts',},\r
-cssStyle_date: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.date',\r
- Info: 'Defines the appearance of all date texts',},\r
-cssStyle_today: {\r
- Type: 'String',\r
- Default: 'color:#ff0000',\r
- Value: 'color:#ff0000',\r
- Name: '.today',\r
- Info: 'Defines the appearance of "Today" text',},\r
-cssStyle_tomorrow: {\r
- Type: 'String',\r
- Default: 'color:#0000ff',\r
- Value: 'color:#0000ff',\r
- Name: '.tomorrow',\r
- Info: 'Defines the appearance of "Tomorrow" text',},\r
-cssStyle_time: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.time',\r
- Info: 'Defines the appearance of all time texts',},\r
-cssStyle_now: {\r
- Type: 'String',\r
- Default: 'color:#ff00ff',\r
- Value: 'color:#ff00ff',\r
- Name: '.now',\r
- Info: 'Defines the appearance of "Now" text',},\r
-cssStyle_description: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.description',\r
- Info: 'Defines the appearance of all event descriptions',},\r
-cssStyle_icon: {\r
- Type: 'String',\r
- Default: 'width:15px; height:15px',\r
- Value: 'width:15px; height:15px',\r
- Name: '.icon',\r
- Info: 'Defines size and appearance of icons',},\r
+ monthRange: { Type: 'Int', Default: 2, Value: 2,},\r
+ includeTodos: { Type: 'Bool', Default: true, Value: true,},\r
+ useBackgroundImage: { Type: 'Bool', Default: true, Value: true,},\r
+ showCombinedDateTime: { Type: 'Bool', Default: false, Value: false,},\r
+ showLocation: { Type: 'Bool', Default: true, Value: true,},\r
+ showTodayAsText: { Type: 'Bool', Default: true, Value: true,},\r
+ todayText: { Type: 'String', Default: getLocalizedText('settings.default.todayText'), Value: getLocalizedText('settings.default.todayText'),},\r
+ tomorrowText: { Type: 'String', Default: getLocalizedText('settings.default.tomorrowText'), Value: getLocalizedText('settings.default.tomorrowText'),},\r
+ showNowAsText: { Type: 'Bool', Default: true, Value: true,},\r
+ nowText: { Type: 'String', Default: getLocalizedText('settings.default.nowText'), Value: getLocalizedText('settings.default.nowText'),},\r
+ dateSeparator: { Type: 'String', Default: getLocalizedText('settings.default.dateSeparator'), Value: getLocalizedText('settings.default.dateSeparator'),},\r
+ dateFormat: { Type: 'Enum', Default: 'auto', Value: 'auto', ValidValues: ['auto', 'DDMM', 'MMDD'],},\r
+ weekDayLength: { Type: 'Int', Default: 2, Value: 2,},\r
+ updateDataInterval: { Type: 'Int', Default: 5, Value: 5,},\r
+ calendarApp: { Type: 'UID', Default: 0x10005901, Value: 0x10005901,},\r
+ eventsPerWidget: { Type: 'Int', Default: 4, Value: 4,},\r
+ showNothingText: { Type: 'Bool', Default: true, Value: true,},\r
+ nothingText: { Type: 'String', Default: getLocalizedText('settings.default.nothingText'), Value: getLocalizedText('settings.default.nothingText'),},\r
+ enableDaylightSaving: { Type: 'Bool', Default: true, Value: true,},\r
+ hideWidgetOnCalendarOpen: { Type: 'Bool', Default: false, Value: false,},\r
+ cssStyle_background: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},\r
+ cssStyle_backgroundFullscreen: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},\r
+ cssStyle_weekDay: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_date: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_today: { Type: 'String', Default: 'color:#ff0000', Value: 'color:#ff0000',},\r
+ cssStyle_tomorrow: { Type: 'String', Default: 'color:#0000ff', Value: 'color:#0000ff',},\r
+ cssStyle_time: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_now: { Type: 'String', Default: 'color:#ff00ff', Value: 'color:#ff00ff',},\r
+ cssStyle_description: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_icon: { Type: 'String', Default: 'width:15px; height:15px', Value: 'width:15px; height:15px',},\r
}\r
\r
+\r
//-------------------------------------------------------\r
// Nothing of interest from here on...\r
//-------------------------------------------------------\r
var panelNum = 0; // use 1 for second panel\r
-var version = "1.23";\r
+var version = "1.24";\r
var calendarService = null;\r
var cacheEntriesHtml = [];\r
var months_translated = [];\r
}\r
}\r
entriesHtml += '</table>';\r
- if (config['showNothingText'].Value && entriesHtml == '<table></table>')\r
- entriesHtml = '<div style="width:295px; height:75px; text-align:center; line-height:75px; overflow:visible;">' + config['nothingText'].Value + '</div>';\r
+ if (config['showNothingText'].Value && entriesHtml == '<table></table>') {\r
+ var text = config['nothingText'].Value.replace(/%d/, config['monthRange'].Value);\r
+ entriesHtml = '<div style="width:295px; height:75px; text-align:center; line-height:75px; overflow:visible;">' + text + '</div>';\r
+ }\r
if (cacheEntriesHtml != entriesHtml) {\r
if (mode == 0)\r
document.getElementById('calendarList').innerHTML = entriesHtml;\r
window.menu.setLeftSoftkeyLabel("",null);\r
window.menu.setRightSoftkeyLabel("",null);\r
var id = 0;\r
- var menuSettings = new MenuItem("Settings", id++);\r
- var menuCallApp = new MenuItem("Open Calendar App", id++);\r
- var menuAbout = new MenuItem("About", id++);\r
+ var menuSettings = new MenuItem(getLocalizedText('menu.settings'), id++);\r
+ var menuCallApp = new MenuItem(getLocalizedText('menu.openCalendarApp'), id++);\r
+ var menuAbout = new MenuItem(getLocalizedText('menu.about'), id++);\r
menuSettings.onSelect = showSettings;\r
menuAbout.onSelect = showAbout;\r
menuCallApp.onSelect = launchCalendar;\r
document.getElementById("settingsView").style.display = "block";\r
document.onclick = null;\r
\r
- window.menu.setLeftSoftkeyLabel("Save", function()\r
+ window.menu.setLeftSoftkeyLabel(getLocalizedText('settings.save'), function()\r
{\r
for (var key in config) {\r
if (config[key].Type == 'String')\r
mode = 1;\r
showFullscreen();\r
});\r
- window.menu.setRightSoftkeyLabel("Cancel", function()\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('settings.cancel'), function()\r
{\r
mode = 1;\r
showFullscreen();\r
var settingsHtml = '<form>';\r
for (var key in config) {\r
if (config[key].Type == 'String')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Int')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Bool')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input name="settings.' + key + '" type="checkbox" value="true" ' + (config[key].Value ? 'checked="checked"' : '') + '/></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input name="settings.' + key + '" type="checkbox" value="true" ' + (config[key].Value ? 'checked="checked"' : '') + '/></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'UID')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="0x' + config[key].Value.toString(16) + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="0x' + config[key].Value.toString(16) + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Enum') {\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><select name="settings.' + key + '" size="1">';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><select name="settings.' + key + '" size="1">';\r
for(var i = 0; i < config[key].ValidValues.length; i++)\r
settingsHtml += '<option label="' + config[key].ValidValues[i] + '"' + (config[key].Value == config[key].ValidValues[i] ? ' selected="selected"' : '') + '>' + config[key].ValidValues[i] + '</option>';\r
- settingsHtml += '</select></div></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '</select></div></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
}\r
}\r
- settingsHtml += '<input name="reset" type="button" value="Restore Defaults" onclick="javascript:restoreDefaultSettings();showSettings();" />';\r
+ settingsHtml += '<input name="reset" type="button" value="' + getLocalizedText('settings.restoreDefaults') + '" onclick="javascript:restoreDefaultSettings();showSettings();" />';\r
settingsHtml += '</form>';\r
document.getElementById("settingsList").innerHTML = settingsHtml;\r
}\r
function updateCssClasses()\r
{\r
for(var key in config) {\r
- changeCssClass(config[key].Name, config[key].Value);\r
+ changeCssClass(getLocalizedText('settings.name.' + key), config[key].Value);\r
}\r
}\r
\r
function printHintBox(text)\r
{\r
uniqueId++;\r
- return '<td width="1%" align="right" onclick="javascript:toggleVisibility(\'info' + uniqueId + '\')">Help</td></tr></table>'+\r
+ return '<td width="1%" align="right" onclick="javascript:toggleVisibility(\'info' + uniqueId + '\')">' + getLocalizedText('settings.help') + '</td></tr></table>'+\r
'<div class="settingsInfo" id="info' + uniqueId + '">' + text + '</div>';\r
}\r
\r
document.onclick = null;\r
updateData();\r
}\r
+\r
+function getLocalizedText(p_Txt)\r
+{\r
+ if (localizedText[p_Txt])\r
+ return localizedText[p_Txt];\r
+ else \r
+ return 'ERROR: missing translation for ' + p_Txt;\r
+}\r
</script>\r
\r
<style type="text/css">\r
.settingsInfo { display:none; font-style:italic; }\r
.title { font-weight:bold; font-size:14pt; }\r
.textInput { width:90%; }\r
+.credits { margin-left:40px; text-indent: -20px; margin-bottom:0px; }\r
#homescreenView { width: 315px; height:91px; overflow:hidden; }\r
#calendarList { position:absolute; left:10px; top:4px; width:295px; height:75px; overflow:hidden; }\r
#name { text-align:center; }\r
-#appicon { display: block; margin-left: auto; margin-right: auto; margin-top: 50px; }\r
+#appicon { display: block; margin-left: auto; margin-right: auto; margin-top: 10px; }\r
#smallappicon { width:22px; height:22px; margin-right:10px; float:left; }\r
</style>\r
\r
<h1 id="name">Coming Next</h1>\r
<hr />\r
<p>Created by Dr. Cochambre and Michael Prager.</p>\r
+ <p>Contributions:</p>\r
+ <p class="credits">Paul Moore (bug fixes, new features and code cleanup)</p>\r
+ <p class="credits">Manfred Hanselmann (DST support)</p>\r
+ <p class="credits">Christophe Milsent (translation support & french translation</p>\r
<p>This software is open source and licensed under the GPLv3.</p>\r
- <p>Visit https://sourceforge.net/projects/comingnext/ for free updates.</p>\r
+ <p>Visit sourceforge.net/projects/comingnext for free updates.</p>\r
<hr />\r
</div>\r
</body>\r
--- /dev/null
+var localizedText = new Array();\r
+\r
+localizedText['menu.settings'] = "Settings";\r
+localizedText['menu.openCalendarApp'] = "Open Calendar App";\r
+localizedText['menu.about'] = "About";\r
+\r
+localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
+localizedText['settings.help'] = 'Help';\r
+localizedText['settings.save'] = 'Save';\r
+localizedText['settings.cancel'] = 'Cancel';\r
+\r
+localizedText['settings.name.monthRange'] = 'Month Range';\r
+localizedText['settings.info.monthRange'] = 'number of months to include in the event list';\r
+localizedText['settings.name.includeTodos'] = 'Include ToDos';\r
+localizedText['settings.info.includeTodos'] = 'disable to remove ToDos from event list';\r
+localizedText['settings.name.useBackgroundImage'] = 'Use Background Image';\r
+localizedText['settings.info.useBackgroundImage'] = 'use background_portrait.png and background_landscape.png to fake transparency. Disable to use a solid background color';\r
+localizedText['settings.name.showCombinedDateTime'] = 'Show Combined Date/Time';\r
+localizedText['settings.info.showCombinedDateTime'] = 'only show the time for events happening today, otherwise just show the date';\r
+localizedText['settings.name.showLocation'] = 'Show Location';\r
+localizedText['settings.info.showLocation'] = 'show the location for meeting events';\r
+localizedText['settings.name.showTodayAsText'] = 'Show Today as Text';\r
+localizedText['settings.info.showTodayAsText'] = 'if enabled, the current date will be shown as "Today" instead of "31.12"';\r
+localizedText['settings.name.todayText'] = '"Today" Text';\r
+localizedText['settings.info.todayText'] = 'text to display for "Today"';\r
+localizedText['settings.default.todayText'] = 'Today';\r
+localizedText['settings.name.tomorrowText'] = '"Tomorrow" Text';\r
+localizedText['settings.info.tomorrowText'] = 'text to display for "Tomorrow"';\r
+localizedText['settings.default.tomorrowText'] = 'Tomorrow';\r
+localizedText['settings.name.showNowAsText'] = 'Show Now as Text';\r
+localizedText['settings.info.showNowAsText'] = 'if enabled, the appointment time will be shown as "Now" instead of "12:00"';\r
+localizedText['settings.name.nowText'] = '"Now" Text';\r
+localizedText['settings.info.nowText'] = 'text to display for "Now"';\r
+localizedText['settings.default.nowText'] = 'Now';\r
+localizedText['settings.name.dateSeparator'] = 'Date Separator';\r
+localizedText['settings.info.dateSeparator'] = 'separator for dates. e.g. "31.12" or "31/12"';\r
+localizedText['settings.default.dateSeparator'] = '.';\r
+localizedText['settings.name.dateFormat'] = 'Date Format';\r
+localizedText['settings.info.dateFormat'] = 'how dates will be displayed. \'auto\' will autodetect your phone\'s date format setting. \'MMDD\' will write month first, \'DDMM\' will write day first';\r
+localizedText['settings.name.weekDayLength'] = 'Weekday Length';\r
+localizedText['settings.info.weekDayLength'] = 'defines how many characters of the weekday will be shown. E.g. 2 will cut "Friday" to "Fr"';\r
+localizedText['settings.name.updateDataInterval'] = 'Update Data Interval';\r
+localizedText['settings.info.updateDataInterval'] = 'how many minutes to wait before updating the displayed data. The higher the number, the less battery is used';\r
+localizedText['settings.name.calendarApp'] = 'Calendar Application To Run';\r
+localizedText['settings.info.calendarApp'] = 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar';\r
+localizedText['settings.name.eventsPerWidget'] = 'Events Per Widget';\r
+localizedText['settings.info.eventsPerWidget'] = 'number of events to show per widget. Default is 4';\r
+localizedText['settings.name.showNothingText'] = 'Show "Nothing" Text';\r
+localizedText['settings.info.showNothingText'] = 'if enabled, show a text if no events are in the list';\r
+localizedText['settings.name.nothingText'] = '"No further events..." Text';\r
+localizedText['settings.info.nothingText'] = 'text to show when no events are in the list';\r
+localizedText['settings.default.nothingText'] = 'No further events within %d months';\r
+localizedText['settings.name.enableDaylightSaving'] = 'Enable Daylight Saving (+1h)';\r
+localizedText['settings.info.enableDaylightSaving'] = 'enable this if you are in a timezone that has daylight saving time (+1h)';\r
+localizedText['settings.name.hideWidgetOnCalendarOpen'] = 'Hide Widget When Opening Calendar';\r
+localizedText['settings.info.hideWidgetOnCalendarOpen'] = 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app';\r
+localizedText['settings.name.cssStyle_background'] = '.background';\r
+localizedText['settings.info.cssStyle_background'] = 'Defines the background of the widget. If you want to use a background image, set useBackgroundImage = true below. For the default themes, black, gray, and light blue, codes are #292029, #e7dfe7, #009aef';\r
+localizedText['settings.name.cssStyle_backgroundFullscreen'] = '.backgroundFullscreen';\r
+localizedText['settings.info.cssStyle_backgroundFullscreen'] = 'Same as background but for the fullscreen version of the widget';\r
+localizedText['settings.name.cssStyle_weekDay'] = '.weekDay';\r
+localizedText['settings.info.cssStyle_weekDay'] = 'Defines the appearance of all week day texts';\r
+localizedText['settings.name.cssStyle_date'] = '.date';\r
+localizedText['settings.info.cssStyle_date'] = 'Defines the appearance of all date texts';\r
+localizedText['settings.name.cssStyle_today'] = '.today';\r
+localizedText['settings.info.cssStyle_today'] = 'Defines the appearance of "Today" text';\r
+localizedText['settings.name.cssStyle_tomorrow'] = '.tomorrow';\r
+localizedText['settings.info.cssStyle_tomorrow'] = 'Defines the appearance of "Tomorrow" text';\r
+localizedText['settings.name.cssStyle_time'] = '.time';\r
+localizedText['settings.info.cssStyle_time'] = 'Defines the appearance of all time texts';\r
+localizedText['settings.name.cssStyle_now'] = '.now';\r
+localizedText['settings.info.cssStyle_now'] = 'Defines the appearance of "Now" text';\r
+localizedText['settings.name.cssStyle_description'] = '.description';\r
+localizedText['settings.info.cssStyle_description'] = 'Defines the appearance of all event descriptions';\r
+localizedText['settings.name.cssStyle_icon'] = '.icon';\r
+localizedText['settings.info.cssStyle_icon'] = 'Defines size and appearance of icons';\r
+\r
<!DOCTYPE plist PUBLIC "-//Nokia//DTD PLIST 1.0//EN" "http://www.nokia.com/NOKIA_COM_1/DTDs/plist-1.0.dtd">\r
<plist version="1.0">\r
<dict>\r
- <key>DisplayName</key> <string>Coming Next B 1.23</string>\r
+ <key>DisplayName</key> <string>Coming Next B 1.24</string>\r
<key>Identifier</key> <string>ar.com.cochambre.symbian.wrt.comingnextb</string>\r
- <key>Version</key> <string>1.23</string>\r
+ <key>Version</key> <string>1.24</string>\r
<key>MainHTML</key> <string>index.html</string>\r
<key>AllowNetworkAccess</key> <false />\r
<key>MiniViewEnabled</key> <true/> \r
--- /dev/null
+var localizedText = new Array();\r
+\r
+localizedText['menu.settings'] = "Parametres";\r
+localizedText['menu.openCalendarApp'] = "Ouvrir Calendrier";\r
+localizedText['menu.about'] = "A propos";\r
+\r
+localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
+localizedText['settings.help'] = 'Aide';\r
+localizedText['settings.save'] = 'Sauver';\r
+localizedText['settings.cancel'] = 'Annuler';\r
+\r
+localizedText['settings.name.monthRange'] = 'Nombre de mois';\r
+localizedText['settings.info.monthRange'] = 'Nombre de mois à inclure dans la liste d\'événements';\r
+localizedText['settings.name.includeTodos'] = 'Ajouter ToDos';\r
+localizedText['settings.info.includeTodos'] = 'Décocher pour ne pas afficher ToDos dans la liste d\'événements';\r
+localizedText['settings.name.useBackgroundImage'] = 'Utiliser Background Image';\r
+localizedText['settings.info.useBackgroundImage'] = 'Utiliser background_portrait.png et background_landscape.png pour simuler la transparence. Décocher pour utiliser une couleur de fond';\r
+localizedText['settings.name.showCombinedDateTime'] = 'Afficher date & heure';\r
+localizedText['settings.info.showCombinedDateTime'] = 'Afficher seulement l\'heure pour les événements de la journée, sinon seulement date';\r
+localizedText['settings.name.showLocation'] = 'Afficher le lieu';\r
+localizedText['settings.info.showLocation'] = 'Afficher les lieux pour les réunions';\r
+localizedText['settings.name.showTodayAsText'] = 'Afficher "Aujourd\'hui"';\r
+localizedText['settings.info.showTodayAsText'] = 'Si coché, la date du jour sera remplacé par "Aujourd\'hui" au lieu de "31.12"';\r
+localizedText['settings.name.todayText'] = 'Texte pour "Aujourd\'hui"';\r
+localizedText['settings.info.todayText'] = 'Texte à afficher pour "Aujourd\'hui"';\r
+localizedText['settings.default.todayText'] = 'Aujour.';\r
+localizedText['settings.name.tomorrowText'] = 'Texte pour "Demain"';\r
+localizedText['settings.info.tomorrowText'] = 'Texte à afficher pour "Demain"';\r
+localizedText['settings.default.tomorrowText'] = 'Demain';\r
+localizedText['settings.name.showNowAsText'] = 'Afficher "Maintenant"';\r
+localizedText['settings.info.showNowAsText'] = 'Si coché, l\'heure de rendez-vous affichera "Maintenant" au lieu de "12:00"';\r
+localizedText['settings.name.nowText'] = 'Texte pour "Maint."';\r
+localizedText['settings.info.nowText'] = 'Texte à afficher pour "Maintenant"';\r
+localizedText['settings.default.nowText'] = 'Maint.';\r
+localizedText['settings.name.dateSeparator'] = 'Séparateur pour les dates';\r
+localizedText['settings.info.dateSeparator'] = 'Séparateur pour les dates. cad "31.12" ou "31/12"';\r
+localizedText['settings.default.dateSeparator'] = '/';\r
+localizedText['settings.name.dateFormat'] = 'Format des dates';\r
+localizedText['settings.info.dateFormat'] = 'Comment les dates doivent être affichées. \'auto\' format de votre téléphone. \'MMDD\' mois en premier, \'DDMM\' jour en premier';\r
+localizedText['settings.name.weekDayLength'] = 'Nombre de caractère pour le jour';\r
+localizedText['settings.info.weekDayLength'] = 'Définit le nombre de caractères pour afficher le jour de la semaine : 2 coupera "Lundi" à "Lu"';\r
+localizedText['settings.name.updateDataInterval'] = 'Interval de mise à jour';\r
+localizedText['settings.info.updateDataInterval'] = 'Combien de minute avant de mettre à jour les informations. Plus le nombre est grand, moins la batterie sera utilisée';\r
+localizedText['settings.name.calendarApp'] = 'Calendar Application To Run';\r
+localizedText['settings.info.calendarApp'] = 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar';\r
+localizedText['settings.name.eventsPerWidget'] = 'Evénément par Widget';\r
+localizedText['settings.info.eventsPerWidget'] = 'Nombre d\'événement à afficher par widget. Par défaut 4';\r
+localizedText['settings.name.showNothingText'] = 'Afficher un text si vide';\r
+localizedText['settings.info.showNothingText'] = 'Si coché, affiche un texte si aucun événement n\'est présent dans la liste';\r
+localizedText['settings.name.nothingText'] = 'Texte pour "Aucun événement"';\r
+localizedText['settings.info.nothingText'] = 'Texte à afficher quand il n\'y a aucun événement à afficher';\r
+localizedText['settings.default.nothingText'] = 'Pas d\'événements durant les prochains mois';\r
+localizedText['settings.name.enableDaylightSaving'] = 'Activé Daylight Saving';\r
+localizedText['settings.info.enableDaylightSaving'] = 'Permet d\'activer Daylight saving si vous êtes dans une fuseau horaire où il y a daylight saving time (+1h)';\r
+localizedText['settings.name.hideWidgetOnCalendarOpen'] = 'Hide Widget When Opening Calendar';\r
+localizedText['settings.info.hideWidgetOnCalendarOpen'] = 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app';\r
+localizedText['settings.name.cssStyle_background'] = '.background';\r
+localizedText['settings.info.cssStyle_background'] = 'Definit le style CSS du fond du widget. Si vous voulez mettre une image de fond, cocher "Utiliser Background Image". Pour le thème par défaut, noir, gris, and bleu, les codes sont #292029, #e7dfe7, #009aef';\r
+localizedText['settings.name.cssStyle_backgroundFullscreen'] = '.backgroundFullscreen';\r
+localizedText['settings.info.cssStyle_backgroundFullscreen'] = 'Identique à background mais pour l\'affichage plein écran du widget';\r
+localizedText['settings.name.cssStyle_weekDay'] = '.weekDay';\r
+localizedText['settings.info.cssStyle_weekDay'] = 'Définit l\'apparence de l\'affichage des jours de la semaine';\r
+localizedText['settings.name.cssStyle_date'] = '.date';\r
+localizedText['settings.info.cssStyle_date'] = 'Définit l\'apparence de l\'affichage des dates';\r
+localizedText['settings.name.cssStyle_today'] = '.today';\r
+localizedText['settings.info.cssStyle_today'] = 'Définit l\'apparence de l\'affichage du texte "Aujourd\'hui"';\r
+localizedText['settings.name.cssStyle_tomorrow'] = '.tomorrow';\r
+localizedText['settings.info.cssStyle_tomorrow'] = 'Définit l\'apparence de l\'affichage du texte "Demain"';\r
+localizedText['settings.name.cssStyle_time'] = '.time';\r
+localizedText['settings.info.cssStyle_time'] = 'Définit l\'apparence de l\'affichage des heures';\r
+localizedText['settings.name.cssStyle_now'] = '.now';\r
+localizedText['settings.info.cssStyle_now'] = 'Définit l\'apparence de l\'affichage du texte "Maintenant"';\r
+localizedText['settings.name.cssStyle_description'] = '.description';\r
+localizedText['settings.info.cssStyle_description'] = 'Définit l\'apparence de l\'affichage du texte de description des événements';\r
+localizedText['settings.name.cssStyle_icon'] = '.icon';\r
+localizedText['settings.info.cssStyle_icon'] = 'Définit la taille des icones';\r
+\r
.icon { }\r
</style>\r
\r
+<script type="text/javascript" src="localizedTextStrings.js" />\r
+\r
<script>\r
// valid types for the config object are 'Int', 'Bool', 'String', 'Enum', 'UID'\r
var config = {\r
-monthRange: {\r
- Type: 'Int',\r
- Default: 2,\r
- Value: 2,\r
- Name: 'Month Range',\r
- Info: 'number of months to include in the event list',},\r
-includeTodos: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Include ToDos',\r
- Info: 'disable to remove ToDos from event list',},\r
-useBackgroundImage: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Use Background Image',\r
- Info: 'use background_portrait.png and background_landscape.png to fake transparency. Disable to use a solid background color',},\r
-showCombinedDateTime: {\r
- Type: 'Bool',\r
- Default: false,\r
- Value: false,\r
- Name: 'Show Combined Date/Time',\r
- Info: 'only show the time for events happening today, otherwise just show the date',},\r
-showLocation: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Location',\r
- Info: 'show the location for meeting events',},\r
-showTodayAsText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Today as Text',\r
- Info: 'if enabled, the current date will be shown as "Today" instead of "31.12"',},\r
-todayText: {\r
- Type: 'String',\r
- Default: 'Today',\r
- Value: 'Today',\r
- Name: '"Today" Text',\r
- Info: 'text to display for "Today"',},\r
-tomorrowText: {\r
- Type: 'String',\r
- Default: 'Tomorrow',\r
- Value: 'Tomorrow',\r
- Name: '"Tomorrow" Text',\r
- Info: 'text to display for "Tomorrow"',},\r
-showNowAsText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show Now as Text',\r
- Info: 'if enabled, the appointment time will be shown as "Now" instead of "12:00"',},\r
-nowText: {\r
- Type: 'String',\r
- Default: 'Now',\r
- Value: 'Now',\r
- Name: '"Now" Text',\r
- Info: 'text to display for "Now"',},\r
-dateSeparator: {\r
- Type: 'String',\r
- Default: '.',\r
- Value: '.',\r
- Name: 'Date Separator',\r
- Info: 'separator for dates. e.g. "31.12" or "31/12"',},\r
-dateFormat: {\r
- Type: 'Enum',\r
- Default: 'auto',\r
- Value: 'auto',\r
- ValidValues: ['auto', 'DDMM', 'MMDD'],\r
- Name: 'Date Format',\r
- Info: 'how dates will be displayed. \'auto\' will autodetect your phone\'s date format setting. \'MMDD\' will write month first, \'DDMM\' will write day first',},\r
-weekDayLength: {\r
- Type: 'Int',\r
- Default: 2,\r
- Value: 2,\r
- Name: 'Weekday Length',\r
- Info: 'defines how many characters of the weekday will be shown. E.g. 2 will cut "Friday" to "Fr"',},\r
-updateDataInterval: {\r
- Type: 'Int',\r
- Default: 5,\r
- Value: 5,\r
- Name: 'Update Data Interval',\r
- Info: 'how many minutes to wait before updating the displayed data. The higher the number, the less battery is used',},\r
-calendarApp: {\r
- Type: 'UID',\r
- Default: 0x10005901,\r
- Value: 0x10005901,\r
- Name: 'Calendar Application To Run',\r
- Info: 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar',},\r
-eventsPerWidget: {\r
- Type: 'Int',\r
- Default: 4,\r
- Value: 4,\r
- Name: 'Events Per Widget',\r
- Info: 'number of events to show per widget. Default is 4',},\r
-showNothingText: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Show "Nothing" Text',\r
- Info: 'if enabled, show a text if no events are in the list',},\r
-nothingText: {\r
- Type: 'String',\r
- Default: 'No further events within 2 months',\r
- Value: 'No further events within 2 months',\r
- Name: '"No further events..." Text',\r
- Info: 'text to show when no events are in the list',},\r
-enableDaylightSaving: {\r
- Type: 'Bool',\r
- Default: true,\r
- Value: true,\r
- Name: 'Enable Daylight Saving (+1h)',\r
- Info: 'enable this if you are in a timezone that has daylight saving time (+1h)',},\r
-hideWidgetOnCalendarOpen: {\r
- Type: 'Bool',\r
- Default: false,\r
- Value: false,\r
- Name: 'Hide Widget When Opening Calendar',\r
- Info: 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app',},\r
-cssStyle_background: {\r
- Type: 'String',\r
- Default: 'color:#ffffff; background-color:#000000',\r
- Value: 'color:#ffffff; background-color:#000000',\r
- Name: '.background',\r
- Info: 'Defines the background of the widget. If you want to use a background image, set useBackgroundImage = true below. For the default themes, black, gray, and light blue, codes are #292029, #e7dfe7, #009aef',},\r
-cssStyle_backgroundFullscreen: {\r
- Type: 'String',\r
- Default: 'color:#ffffff; background-color:#000000',\r
- Value: 'color:#ffffff; background-color:#000000',\r
- Name: '.backgroundFullscreen',\r
- Info: 'Same as background but for the fullscreen version of the widget',},\r
-cssStyle_weekDay: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.weekDay',\r
- Info: 'Defines the appearance of all week day texts',},\r
-cssStyle_date: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.date',\r
- Info: 'Defines the appearance of all date texts',},\r
-cssStyle_today: {\r
- Type: 'String',\r
- Default: 'color:#ff0000',\r
- Value: 'color:#ff0000',\r
- Name: '.today',\r
- Info: 'Defines the appearance of "Today" text',},\r
-cssStyle_tomorrow: {\r
- Type: 'String',\r
- Default: 'color:#0000ff',\r
- Value: 'color:#0000ff',\r
- Name: '.tomorrow',\r
- Info: 'Defines the appearance of "Tomorrow" text',},\r
-cssStyle_time: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.time',\r
- Info: 'Defines the appearance of all time texts',},\r
-cssStyle_now: {\r
- Type: 'String',\r
- Default: 'color:#ff00ff',\r
- Value: 'color:#ff00ff',\r
- Name: '.now',\r
- Info: 'Defines the appearance of "Now" text',},\r
-cssStyle_description: {\r
- Type: 'String',\r
- Default: '',\r
- Value: '',\r
- Name: '.description',\r
- Info: 'Defines the appearance of all event descriptions',},\r
-cssStyle_icon: {\r
- Type: 'String',\r
- Default: 'width:15px; height:15px',\r
- Value: 'width:15px; height:15px',\r
- Name: '.icon',\r
- Info: 'Defines size and appearance of icons',},\r
+ monthRange: { Type: 'Int', Default: 2, Value: 2,},\r
+ includeTodos: { Type: 'Bool', Default: true, Value: true,},\r
+ useBackgroundImage: { Type: 'Bool', Default: true, Value: true,},\r
+ showCombinedDateTime: { Type: 'Bool', Default: false, Value: false,},\r
+ showLocation: { Type: 'Bool', Default: true, Value: true,},\r
+ showTodayAsText: { Type: 'Bool', Default: true, Value: true,},\r
+ todayText: { Type: 'String', Default: getLocalizedText('settings.default.todayText'), Value: getLocalizedText('settings.default.todayText'),},\r
+ tomorrowText: { Type: 'String', Default: getLocalizedText('settings.default.tomorrowText'), Value: getLocalizedText('settings.default.tomorrowText'),},\r
+ showNowAsText: { Type: 'Bool', Default: true, Value: true,},\r
+ nowText: { Type: 'String', Default: getLocalizedText('settings.default.nowText'), Value: getLocalizedText('settings.default.nowText'),},\r
+ dateSeparator: { Type: 'String', Default: getLocalizedText('settings.default.dateSeparator'), Value: getLocalizedText('settings.default.dateSeparator'),},\r
+ dateFormat: { Type: 'Enum', Default: 'auto', Value: 'auto', ValidValues: ['auto', 'DDMM', 'MMDD'],},\r
+ weekDayLength: { Type: 'Int', Default: 2, Value: 2,},\r
+ updateDataInterval: { Type: 'Int', Default: 5, Value: 5,},\r
+ calendarApp: { Type: 'UID', Default: 0x10005901, Value: 0x10005901,},\r
+ eventsPerWidget: { Type: 'Int', Default: 4, Value: 4,},\r
+ showNothingText: { Type: 'Bool', Default: true, Value: true,},\r
+ nothingText: { Type: 'String', Default: getLocalizedText('settings.default.nothingText'), Value: getLocalizedText('settings.default.nothingText'),},\r
+ enableDaylightSaving: { Type: 'Bool', Default: true, Value: true,},\r
+ hideWidgetOnCalendarOpen: { Type: 'Bool', Default: false, Value: false,},\r
+ cssStyle_background: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},\r
+ cssStyle_backgroundFullscreen: { Type: 'String', Default: 'color:#ffffff; background-color:#000000', Value: 'color:#ffffff; background-color:#000000',},\r
+ cssStyle_weekDay: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_date: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_today: { Type: 'String', Default: 'color:#ff0000', Value: 'color:#ff0000',},\r
+ cssStyle_tomorrow: { Type: 'String', Default: 'color:#0000ff', Value: 'color:#0000ff',},\r
+ cssStyle_time: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_now: { Type: 'String', Default: 'color:#ff00ff', Value: 'color:#ff00ff',},\r
+ cssStyle_description: { Type: 'String', Default: '', Value: '',},\r
+ cssStyle_icon: { Type: 'String', Default: 'width:15px; height:15px', Value: 'width:15px; height:15px',},\r
}\r
\r
+\r
//-------------------------------------------------------\r
// Nothing of interest from here on...\r
//-------------------------------------------------------\r
var panelNum = 1; // use 1 for second panel\r
-var version = "1.23";\r
+var version = "1.24";\r
var calendarService = null;\r
var cacheEntriesHtml = [];\r
var months_translated = [];\r
}\r
}\r
entriesHtml += '</table>';\r
- if (config['showNothingText'].Value && entriesHtml == '<table></table>')\r
- entriesHtml = '<div style="width:295px; height:75px; text-align:center; line-height:75px; overflow:visible;">' + config['nothingText'].Value + '</div>';\r
+ if (config['showNothingText'].Value && entriesHtml == '<table></table>') {\r
+ var text = config['nothingText'].Value.replace(/%d/, config['monthRange'].Value);\r
+ entriesHtml = '<div style="width:295px; height:75px; text-align:center; line-height:75px; overflow:visible;">' + text + '</div>';\r
+ }\r
if (cacheEntriesHtml != entriesHtml) {\r
if (mode == 0)\r
document.getElementById('calendarList').innerHTML = entriesHtml;\r
window.menu.setLeftSoftkeyLabel("",null);\r
window.menu.setRightSoftkeyLabel("",null);\r
var id = 0;\r
- var menuSettings = new MenuItem("Settings", id++);\r
- var menuCallApp = new MenuItem("Open Calendar App", id++);\r
- var menuAbout = new MenuItem("About", id++);\r
+ var menuSettings = new MenuItem(getLocalizedText('menu.settings'), id++);\r
+ var menuCallApp = new MenuItem(getLocalizedText('menu.openCalendarApp'), id++);\r
+ var menuAbout = new MenuItem(getLocalizedText('menu.about'), id++);\r
menuSettings.onSelect = showSettings;\r
menuAbout.onSelect = showAbout;\r
menuCallApp.onSelect = launchCalendar;\r
document.getElementById("settingsView").style.display = "block";\r
document.onclick = null;\r
\r
- window.menu.setLeftSoftkeyLabel("Save", function()\r
+ window.menu.setLeftSoftkeyLabel(getLocalizedText('settings.save'), function()\r
{\r
for (var key in config) {\r
if (config[key].Type == 'String')\r
mode = 1;\r
showFullscreen();\r
});\r
- window.menu.setRightSoftkeyLabel("Cancel", function()\r
+ window.menu.setRightSoftkeyLabel(getLocalizedText('settings.cancel'), function()\r
{\r
mode = 1;\r
showFullscreen();\r
var settingsHtml = '<form>';\r
for (var key in config) {\r
if (config[key].Type == 'String')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Int')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="' + config[key].Value + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Bool')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input name="settings.' + key + '" type="checkbox" value="true" ' + (config[key].Value ? 'checked="checked"' : '') + '/></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input name="settings.' + key + '" type="checkbox" value="true" ' + (config[key].Value ? 'checked="checked"' : '') + '/></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'UID')\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="0x' + config[key].Value.toString(16) + '" /></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><input class="textInput" name="settings.' + key + '" type="text" value="0x' + config[key].Value.toString(16) + '" /></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
else if (config[key].Type == 'Enum') {\r
- settingsHtml += '<table><tr><td>' + config[key].Name + '<br /><select name="settings.' + key + '" size="1">';\r
+ settingsHtml += '<table><tr><td>' + getLocalizedText('settings.name.' + key) + '<br /><select name="settings.' + key + '" size="1">';\r
for(var i = 0; i < config[key].ValidValues.length; i++)\r
settingsHtml += '<option label="' + config[key].ValidValues[i] + '"' + (config[key].Value == config[key].ValidValues[i] ? ' selected="selected"' : '') + '>' + config[key].ValidValues[i] + '</option>';\r
- settingsHtml += '</select></div></td>' + printHintBox(config[key].Info) + '<hr />';\r
+ settingsHtml += '</select></div></td>' + printHintBox(getLocalizedText('settings.info.' + key)) + '<hr />';\r
}\r
}\r
- settingsHtml += '<input name="reset" type="button" value="Restore Defaults" onclick="javascript:restoreDefaultSettings();showSettings();" />';\r
+ settingsHtml += '<input name="reset" type="button" value="' + getLocalizedText('settings.restoreDefaults') + '" onclick="javascript:restoreDefaultSettings();showSettings();" />';\r
settingsHtml += '</form>';\r
document.getElementById("settingsList").innerHTML = settingsHtml;\r
}\r
function updateCssClasses()\r
{\r
for(var key in config) {\r
- changeCssClass(config[key].Name, config[key].Value);\r
+ changeCssClass(getLocalizedText('settings.name.' + key), config[key].Value);\r
}\r
}\r
\r
function printHintBox(text)\r
{\r
uniqueId++;\r
- return '<td width="1%" align="right" onclick="javascript:toggleVisibility(\'info' + uniqueId + '\')">Help</td></tr></table>'+\r
+ return '<td width="1%" align="right" onclick="javascript:toggleVisibility(\'info' + uniqueId + '\')">' + getLocalizedText('settings.help') + '</td></tr></table>'+\r
'<div class="settingsInfo" id="info' + uniqueId + '">' + text + '</div>';\r
}\r
\r
document.onclick = null;\r
updateData();\r
}\r
+\r
+function getLocalizedText(p_Txt)\r
+{\r
+ if (localizedText[p_Txt])\r
+ return localizedText[p_Txt];\r
+ else \r
+ return 'ERROR: missing translation for ' + p_Txt;\r
+}\r
</script>\r
\r
<style type="text/css">\r
.settingsInfo { display:none; font-style:italic; }\r
.title { font-weight:bold; font-size:14pt; }\r
.textInput { width:90%; }\r
+.credits { margin-left:40px; text-indent: -20px; margin-bottom:0px; }\r
#homescreenView { width: 315px; height:91px; overflow:hidden; }\r
#calendarList { position:absolute; left:10px; top:4px; width:295px; height:75px; overflow:hidden; }\r
#name { text-align:center; }\r
-#appicon { display: block; margin-left: auto; margin-right: auto; margin-top: 50px; }\r
+#appicon { display: block; margin-left: auto; margin-right: auto; margin-top: 10px; }\r
#smallappicon { width:22px; height:22px; margin-right:10px; float:left; }\r
</style>\r
\r
<h1 id="name">Coming Next</h1>\r
<hr />\r
<p>Created by Dr. Cochambre and Michael Prager.</p>\r
+ <p>Contributions:</p>\r
+ <p class="credits">Paul Moore (bug fixes, new features and code cleanup)</p>\r
+ <p class="credits">Manfred Hanselmann (DST support)</p>\r
+ <p class="credits">Christophe Milsent (translation support & french translation</p>\r
<p>This software is open source and licensed under the GPLv3.</p>\r
- <p>Visit https://sourceforge.net/projects/comingnext/ for free updates.</p>\r
+ <p>Visit sourceforge.net/projects/comingnext for free updates.</p>\r
<hr />\r
</div>\r
</body>\r
--- /dev/null
+var localizedText = new Array();\r
+\r
+localizedText['menu.settings'] = "Settings";\r
+localizedText['menu.openCalendarApp'] = "Open Calendar App";\r
+localizedText['menu.about'] = "About";\r
+\r
+localizedText['settings.restoreDefaults'] = 'Restore Defaults';\r
+localizedText['settings.help'] = 'Help';\r
+localizedText['settings.save'] = 'Save';\r
+localizedText['settings.cancel'] = 'Cancel';\r
+\r
+localizedText['settings.name.monthRange'] = 'Month Range';\r
+localizedText['settings.info.monthRange'] = 'number of months to include in the event list';\r
+localizedText['settings.name.includeTodos'] = 'Include ToDos';\r
+localizedText['settings.info.includeTodos'] = 'disable to remove ToDos from event list';\r
+localizedText['settings.name.useBackgroundImage'] = 'Use Background Image';\r
+localizedText['settings.info.useBackgroundImage'] = 'use background_portrait.png and background_landscape.png to fake transparency. Disable to use a solid background color';\r
+localizedText['settings.name.showCombinedDateTime'] = 'Show Combined Date/Time';\r
+localizedText['settings.info.showCombinedDateTime'] = 'only show the time for events happening today, otherwise just show the date';\r
+localizedText['settings.name.showLocation'] = 'Show Location';\r
+localizedText['settings.info.showLocation'] = 'show the location for meeting events';\r
+localizedText['settings.name.showTodayAsText'] = 'Show Today as Text';\r
+localizedText['settings.info.showTodayAsText'] = 'if enabled, the current date will be shown as "Today" instead of "31.12"';\r
+localizedText['settings.name.todayText'] = '"Today" Text';\r
+localizedText['settings.info.todayText'] = 'text to display for "Today"';\r
+localizedText['settings.default.todayText'] = 'Today';\r
+localizedText['settings.name.tomorrowText'] = '"Tomorrow" Text';\r
+localizedText['settings.info.tomorrowText'] = 'text to display for "Tomorrow"';\r
+localizedText['settings.default.tomorrowText'] = 'Tomorrow';\r
+localizedText['settings.name.showNowAsText'] = 'Show Now as Text';\r
+localizedText['settings.info.showNowAsText'] = 'if enabled, the appointment time will be shown as "Now" instead of "12:00"';\r
+localizedText['settings.name.nowText'] = '"Now" Text';\r
+localizedText['settings.info.nowText'] = 'text to display for "Now"';\r
+localizedText['settings.default.nowText'] = 'Now';\r
+localizedText['settings.name.dateSeparator'] = 'Date Separator';\r
+localizedText['settings.info.dateSeparator'] = 'separator for dates. e.g. "31.12" or "31/12"';\r
+localizedText['settings.default.dateSeparator'] = '.';\r
+localizedText['settings.name.dateFormat'] = 'Date Format';\r
+localizedText['settings.info.dateFormat'] = 'how dates will be displayed. \'auto\' will autodetect your phone\'s date format setting. \'MMDD\' will write month first, \'DDMM\' will write day first';\r
+localizedText['settings.name.weekDayLength'] = 'Weekday Length';\r
+localizedText['settings.info.weekDayLength'] = 'defines how many characters of the weekday will be shown. E.g. 2 will cut "Friday" to "Fr"';\r
+localizedText['settings.name.updateDataInterval'] = 'Update Data Interval';\r
+localizedText['settings.info.updateDataInterval'] = 'how many minutes to wait before updating the displayed data. The higher the number, the less battery is used';\r
+localizedText['settings.name.calendarApp'] = 'Calendar Application To Run';\r
+localizedText['settings.info.calendarApp'] = 'UID of the calendar app to run when clicking the widget. 0x10005901 = buildin calendar, 0x20004ec1 = Epocware Handy Calendar';\r
+localizedText['settings.name.eventsPerWidget'] = 'Events Per Widget';\r
+localizedText['settings.info.eventsPerWidget'] = 'number of events to show per widget. Default is 4';\r
+localizedText['settings.name.showNothingText'] = 'Show "Nothing" Text';\r
+localizedText['settings.info.showNothingText'] = 'if enabled, show a text if no events are in the list';\r
+localizedText['settings.name.nothingText'] = '"No further events..." Text';\r
+localizedText['settings.info.nothingText'] = 'text to show when no events are in the list';\r
+localizedText['settings.default.nothingText'] = 'No further events within %d months';\r
+localizedText['settings.name.enableDaylightSaving'] = 'Enable Daylight Saving (+1h)';\r
+localizedText['settings.info.enableDaylightSaving'] = 'enable this if you are in a timezone that has daylight saving time (+1h)';\r
+localizedText['settings.name.hideWidgetOnCalendarOpen'] = 'Hide Widget When Opening Calendar';\r
+localizedText['settings.info.hideWidgetOnCalendarOpen'] = 'enable this if the fullscreen widget should be hidden when clicking on the widget to open the calendar app';\r
+localizedText['settings.name.cssStyle_background'] = '.background';\r
+localizedText['settings.info.cssStyle_background'] = 'Defines the background of the widget. If you want to use a background image, set useBackgroundImage = true below. For the default themes, black, gray, and light blue, codes are #292029, #e7dfe7, #009aef';\r
+localizedText['settings.name.cssStyle_backgroundFullscreen'] = '.backgroundFullscreen';\r
+localizedText['settings.info.cssStyle_backgroundFullscreen'] = 'Same as background but for the fullscreen version of the widget';\r
+localizedText['settings.name.cssStyle_weekDay'] = '.weekDay';\r
+localizedText['settings.info.cssStyle_weekDay'] = 'Defines the appearance of all week day texts';\r
+localizedText['settings.name.cssStyle_date'] = '.date';\r
+localizedText['settings.info.cssStyle_date'] = 'Defines the appearance of all date texts';\r
+localizedText['settings.name.cssStyle_today'] = '.today';\r
+localizedText['settings.info.cssStyle_today'] = 'Defines the appearance of "Today" text';\r
+localizedText['settings.name.cssStyle_tomorrow'] = '.tomorrow';\r
+localizedText['settings.info.cssStyle_tomorrow'] = 'Defines the appearance of "Tomorrow" text';\r
+localizedText['settings.name.cssStyle_time'] = '.time';\r
+localizedText['settings.info.cssStyle_time'] = 'Defines the appearance of all time texts';\r
+localizedText['settings.name.cssStyle_now'] = '.now';\r
+localizedText['settings.info.cssStyle_now'] = 'Defines the appearance of "Now" text';\r
+localizedText['settings.name.cssStyle_description'] = '.description';\r
+localizedText['settings.info.cssStyle_description'] = 'Defines the appearance of all event descriptions';\r
+localizedText['settings.name.cssStyle_icon'] = '.icon';\r
+localizedText['settings.info.cssStyle_icon'] = 'Defines size and appearance of icons';\r
+\r