diff --git a/apps.json b/apps.json index 718224cdd..da00f124c 100644 --- a/apps.json +++ b/apps.json @@ -37,6 +37,18 @@ {"name":"about.img","url":"app-icon.js","evaluate":true} ] }, + { "id": "locale", + "name": "Languages", + "icon": "locale.png", + "version":"0.01", + "description": "Translations for different countries", + "tags": "tool,system", + "custom":"locale.html", + "storage": [ + {"name":"locale"} + ], + "sortorder" : -10 + }, { "id": "welcome", "name": "Welcome", "icon": "app.png", diff --git a/apps/locale/ChangeLog b/apps/locale/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/locale/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/locale/locale.html b/apps/locale/locale.html new file mode 100644 index 000000000..a6abce4f8 --- /dev/null +++ b/apps/locale/locale.html @@ -0,0 +1,89 @@ + + + + + + +

Please choose a language from the following list:

+
+ +
+

Then click

+ + + + + + + diff --git a/apps/locale/locale.png b/apps/locale/locale.png new file mode 100644 index 000000000..1719f6181 Binary files /dev/null and b/apps/locale/locale.png differ diff --git a/apps/locale/locales.js b/apps/locale/locales.js new file mode 100644 index 000000000..006c435e7 --- /dev/null +++ b/apps/locale/locales.js @@ -0,0 +1,323 @@ +/* + %Y year four digits + %y last two digits of year (00..99) + %m month (01..12) + %d day of month (e.g, 01) + + %a locale's abbreviated weekday name (e.g., Sun) + %A locale's full weekday name (e.g., Sunday) + %b locale's abbreviated month name (e.g., Jan) + %B locale's full month name (e.g., January) + + %H hour (00..23) + %M minute (00..59) + %S second (00..60) + %p locale's equivalent of either AM or PM; blank if not known + %P like %p, but lower case +*/ + +var locales = { + "en_GB": { // this is default + lang: "en_GB", + decimal_point: ".", + thousands_sep: ",", + currency_symbol: "£", + int_curr_symbol: "GBP", + speed: 'mph', + distance: { "0": "mi", "1": "kmi" }, + temperatur: '°C', + ampm: {0:"am",1:"pm"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%b %d %Y", 1: "%d/%m/%Y" }, // Feb 28 2020" // "01/03/2020"(short) + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { /*yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off"*/ }}, + "de_DE": { + lang: "de_DE", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"",1:""}, + timePattern: { 0: "%HH:%MM:%SS", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %d. %B %Y", "1": "%d.%m.%Y" }, // Sonntag, 1. März 2020 // 01.01.20 + abmonth: "Jan,Feb,Mär,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez", + month: "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember", + abday: "So,Mo,Di,Mi,Do,Fr,Sa", + day: "Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag", + trans: { yes: "ja", Yes: "Ja", no: "nein", No: "Nein", ok: "ok", on: "an", off: "aus" }}, + "en_US": { + lang: "en_US", + decimal_point: ".", + thousands_sep: ",", + currency_symbol: "$", + int_curr_symbol: "USD", + speed: "mph", + distance: { 0: "mi", 1: "kmi" }, + temperature: "°F", + ampm: {0:"am",1:"pm"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "", 1: "%m/%d/%y" }, + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "en_JP": { // we do not have the font, so it is not ja_JP + lang: "en_JP", + decimal_point: ".", + thousands_sep: ",", + currency_symbol: "¥", + int_curr_symbol: "JPY", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°F", + ampm: {0:"",1:""}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%y/%M/%d", 1: "%y/%m;/%d" }, + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "nl_NL": { + lang: "nl_NL", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"",1:""}, + timePattern: { 0: "%HH:%MM:%SS", 1: "%HH:%MM" }, + datePattern: { 0: "%A %B %d %Y", 1: "%d.%m.%y" }, // zondag 1 maart 2020 // 01.01.20 + abday: "zo,ma,di,wo,do,vr,za", + day: "zondag,maandag,dinsdag,woensdag,donderdag,vrijdag,zaterdag", + abmonth: "jan,feb,mrt,apr,mei,jun,jul,aug,sep,okt,nov,dec", + month: "januari,februari,maart,april,mei,juni,juli,augustus,september,oktober,november,december", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "en_CA": { + lang: "en_CA", + decimal_point: ".", + thousands_sep: ",", + currency_symbol: "$", + int_curr_symbol: "CAD", + speed: "mph", + distance: { 0: "mi", 1: "kmi" }, + temperature: "°F", + ampm: {0:"am",1:"pm"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %B %d, %Y", "1": "%Y-%m-%d" }, // Sunday, March 1, 2020 // 2012-12-20 + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "fr_FR": { + lang: "fr_FR", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"",1:""}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A %B %d %Y", "1": "%d/%m/%Y" }, // dimanche 1 mars 2020 // 01/03/2020 + abmonth: "anv,févr,mars,avril,mai,juin,juil,août,sept,oct,nov,déc", + month: "janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre", + abday: "dim,lun,mar,mer,jeu,ven,sam", + day: "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi", + trans : { yes : "oui", Yes: "Oui", no: "no", No: "No", ok : "ok", on: "on", off: "off" }}, + "sv_SE": { + lang: "sv_SE", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "kr", + int_curr_symbol: "SKR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"fm",1:"em"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A %B %d %Y", "1": "%Y-%m-%d" }, // söndag 1 mars 2020 // 2020-03-01 + abmonth: "jan,feb,mars,apr,maj,juni,juli,aug,sep,okt,nov,dec", + month: "januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december", + abday: "sön,mån,tis,ons,tors,fre,lör", + day: "söndag,måndag,tisdag,onsdag,torsdag,fredag,lördag", + trans : { yes : "ja", Yes: "Ja", no: "nej", No: "Nej", ok : "ok", on: "on", off: "off" }}, + "en_AU": { + lang: "en_AU", + decimal_point: ".", + thousands_sep: ",", + currency_symbol: "$", + int_curr_symbol: "AUD", + speed: "mph", + distance: { 0: "mi", 1: "kmi" }, + temperature: "°F", + ampm: {0:"am",1:"pm"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %B %d, %Y", "1": "%m/%d/%y" }, // Sunday, 1 March 2020 // 1/3/20 + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "de_AT": { + lang: "de_AT", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %d. %B %Y", "1": "%d.%m.%y" }, // Sonntag, 1. März 2020 // 01.03.20 + abmonth: "Jän,Feb,März,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez", + month: "Jänner,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember", + abday: "So,Mo,Di,Mi,Do,Fr,Sa", + day: "Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag", + trans: { yes: "ja", Yes: "Ja", no: "nein", No: "Nein", ok: "ok", on: "an", off: "aus" }}, + "en_IL": { + lang: "en_IL", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "₪", + int_curr_symbol: "ILS", + speed: "kmh", + distance: { 0: "km", 1: "m" }, + temperature: "°F", + ampm: {0:"am",1:"pm"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %B %d, %Y", "1": "%d/%m/%Y" }, // Sunday, 1 March 2020 // 01/03/2020 + abmonth: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", + month: "January,February,March,April,May,June,July,August,September,October,November,December", + abday: "Sun,Mon,Tue,Wed,Thu,Fri,Sat", + day: "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", + trans: { yes: "yes", Yes: "Yes", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "es_ES": { + lang: "es_ES", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"",1:""}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %d de %B de %Y", "1": "%d/%m/%y" }, // domingo, 1 de marzo de 2020 // 01/03/20 + abmonth: "ene,feb,mar,abr,may,jun,jul,ago,sept,oct,nov,dic", + month: "enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre", + abday: "dom,lun,mar,mié,jue,vie,sáb.", + day: "domingo,lunes,martes,miércoles,jueves,viernes,sábado", + trans: { yes : "sí", Yes: "Sí",no: "no", No: "No", ok : "ok", on: "on", off: "off" }}, + "fr_BE": { + lang: "fr_BE", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0: "",1: ""}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, + datePattern: { 0: "%A %B %d %Y", "1": "%d/%m/%y" }, // dimanche 1 mars 2020 // 01/03/20 + abmonth: "anv.,févr.,mars,avril,mai,juin,juil.,août,sept.,oct.,nov.,déc.", + month: "janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre", + abday: "dim,lun,mar,mer,jeu,ven,sam", + day: "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi", + trans : { yes : "oui", Yes: "Oui", no: "no", No: "No", ok : "ok", on: "on", off: "off" }}, + "fi_FI": { + lang: "fi_FI", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "\x80", + int_curr_symbol: "EUR", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0: "ap",1: "ip"}, + timePattern: { 0: "%HH:%MM:%SS ", 1: "%HH:%MM" }, // 17.00.00 // 17.00 + datePattern: { 0: "%A %d. %B %Y", "1": "%-d/%-m/%Y" }, // sunnuntai 1. maaliskuuta 2020 // 1.3.2020 + abmonth: "tammik,helmik,maalisk,huhtik,toukok,kesäk,heinäk,elok,syysk,lokak,marrask,jouluk", + month: "tammikuuta,helmikuuta,maaliskuuta,huhtikuuta,toukokuuta,kesäkuuta,heinäkuuta,elokuuta,syyskuuta,lokakuuta,marraskuuta,joulukuuta", + abday: "su,ma,ti,ke,to,pe,la", + day: "sunnuntaina,maanantaina,tiistaina,keskiviikkona,torstaina,perjantaina,lauantaina", + trans : { yes : "oui", Yes: "Oui", no: "no", No: "No", ok : "ok", on: "on", off: "off" }}, + "de_CH": { + lang: "de_CH", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "CHF", + int_curr_symbol: "CHF", + speed: "kmh", + distance: { 0: "m", 1: "km" }, + temperature: "°C", + ampm: {0:"vorm",1:" nachm"}, + timePattern: { 0: "%HH:%MM:%SS", 1: "%HH:%MM" }, + datePattern: { 0: "%A, %d. %B %Y", "1": "%d.%m.%Y" }, // Sonntag, 1. März 2020 // 1.3.2020 + abmonth: "Jan,Feb,März,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez", + month: "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember", + abday: "So,Mo,Di,Mi,Do,Fr,Sa", + day: "Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag", + trans: { yes: "ja", Yes: "Ja", no: "nein", No: "Nein", ok: "ok", on: "an", off: "aus" }}, + "fr_CH": { + lang: "fr_CH", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "CHF", + int_curr_symbol: "CHF", + speed: "kmh", + distance: { 0: "km", 1: "m" }, + temperature: "°C", + ampm: {0:"AM",1:"PM"}, + timePattern: { 0: "%HH:%MM:%SS", 1: "%HH:%MM" }, + datePattern: { 0: "%A %d %B %Y", "1": "%d/%m/%y" }, // dimanche 1 mars 2020 // 01/03/20 + abmonth: "anv.,févr.,mars,avril,mai,juin,juil.,août,sept.,oct.,nov.,déc.", + month: "janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre", + abday: "dim,lun,mar,mer,jeu,ven,sam", + day: "dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi", + trans : { yes : "oui", Yes: "Oui", no: "no", No: "No", ok : "ok", on: "on", off: "off" }}, + "it_CH": { + lang: "it_CH", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "CHF", + int_curr_symbol: "CHF", + speed: 'kmh', + distance: { "0": "km", "1": "m" }, + temperatur: '°C', + timePattern: { 0: "%HH.%MM.%SS ", 1: "%HH.%MM" }, // 17.00.00 // 17.00 + datePattern: { 0: "%A %B %d %Y", "1": "%d/%m/%Y" }, // sunnuntai 1. maaliskuuta 2020 // 1.3.2020 + abmonth: "gen,feb,mar,apr,mag,giu,lug,ago,set,ott,nov,dic", + month: "gennaio,febbraio,marzo,aprile,maggio,giugno,luglio,agosto,settembre,ottobre,novembre,dicembre", + abday : "dom,lun,mar,mer,gio,ven,sab", + day: "domenica,lunedì,martedì,mercoledì,giovedì,venerdì, sabato", + trans : { yes: "sì", Yes: "Sì", no: "no", No: "No", ok: "ok", on: "on", off: "off" }}, + "wae_CH" : { + lang: "wae_CH", + decimal_point: ",", + thousands_sep: ".", + currency_symbol: "CHF", + int_curr_symbol: "CHF", + speed: 'kmh', + distance: { "0": "km", "1": "m" }, + temperatur: '°C', + timePattern: { 0: "%HH.%MM.%SS ", 1: "%HH.%MM" }, // 17.00.00 // 17.00 + datePattern: { 0: "%A, %d. %B %Y", "1": "%Y-%m-%d" }, // Sunntag, 1. Märze 2020 // 2020-03-01 + abmonth: "Jen,Hor,Mär,Abr,Mei,Brá,Hei,Öig,Her,Wím,Win,Chr", + month: "Jenner,Hornig,Märze,Abrille,Meije,Bráčet,Heiwet,Öigšte,Herbštmánet,Wímánet,Wintermánet,Chrištmánet", + abday: "Sun,Män,Ziš,Mit,Fró,Fri,Sam", + day: "Sunntag,Mäntag,Zištag,Mittwuč,Fróntag,Fritag,Samštag", + trans : { yes: "sì", Yes: "Sì", no: "no", No: "No", ok: "ok", on: "on", off: "off" }} +};