Personal tools


From MozillaWiki

Jump to: navigation, search



  • Grant user control over language selection within Fennec.
    • Language selection currently controled by Android system preferences, whose availability are determined by OEMs and carriers.
  • Locale breadth: ensure we can support any potential distribution deals without locales being any kind of hurdle or barrier
  • Notes from what the competition supports:
    • Opera Mobile supports 40 languages
    • Chrome Mobile supports 31 (as of Apr 2012) and seemingly 38 (trying to find an official source of truth)
    • Google Play store supports 45 localizations
    • Google's default Android localization is into 52 languages.
    • OEMs add languages to Android's 52 delivered languages (e.g., Samsung devices have up to 83).


  • Multi-locale build to include all new locales
  • (RTL languages requires support from the Android UI for the likes of Arabic)
  • Fx 22 supports a total of 19 locales [en-US, cs, da, de, es-ES, fi, fr, ja, ko, it, nb-NO, nl, pl, pt-BR, pt-PT, ru, sk, zh-CN, zh-TW]
  • Fx 23 to add Turkish (tr) and Hungarian (hu) to the multi-locale build, for a total of 21 supported locales
  • Fx 24 to add British English (en-GB), Swedish (sv-SE) and Catalan (ca-ES) to the multi-locale build, for a total of 24 supported locales
  • Fx 25 to add Ukrainian (ua-UK), Romanian (ro-RO) and Irish (ga-IE) to the multi-locale build, for a total of 27 supported locales
  • Fx 27 to add South African English(en-ZA), Thai (th), Lithuanian (lt), and Slovenian (sl) to the multi-locale build, for a total of 31 supported locales
  • Fx 28 to add Estonian (et) and Belarusian (be) to the multi-locale build, for a total of 33 supported locales
  • Fx 29 to add Indonesian (id) and Hindi (hi) to the multi-locale build, for a total of 35 supported locales
  • Fx 30 to add Vietnamese (vi), Afrikaans (af) to the multi-locale build, for a total of 37 supported locales
  • Fx 31 to add Greek (el), and Canadian English (en-CA) to the multi-locale build for a total of 39 supported locales.
  • Fx 32 to add Swahili (sw) and zulu (zu) to the multi-locale build for a total of 41 supported locales.
  • Fx xx to add Hebrew (he), Arabic (ar), Tagalog (tl), Amaric (am), Bulgarian (bg), Latvian (lv), Malay (ms), Romansh (rm), Serbian (sr), and Persian (fa) once RTL is implemented and teams decide to take on l10n work for Fennec.


Note that Java uses several deprecated two-letter codes. The Hebrew ("he") language code is rewritten as "iw", Indonesian ("id") as "in", and Yiddish ("yi") as "ji". This rewriting happens even if you construct your own Locale object, not just for instances returned by the various lookup methods.

This gives us some potential headaches when persisting and matching locale selections between Gecko and Java.


ID Summary Priority Status
521979 [tracking] Choose search plug-ins for localized versions of Fennec -- NEW
639847 [gd] Firefox Mobile 4.0 release tracker Scottish Gaelic -- NEW
882315 Add en-CA locale to the Fennec multi-locale build -- NEW
934962 Thai font doesn't display on Galaxy S4 on Android 4.2.2 -- NEW
946204 [et] Firefox Mobile release tracker Estonian -- NEW
958020 [lv] Firefox Mobile release tracker for Latvian -- NEW
960058 [hi-IN] Firefox Mobile release tracker Hindi -- NEW
960059 [hi-IN] Search engine setup for Firefox Mobile for Hindi. -- NEW
960060 [id] Firefox Mobile release tracker Indonesian -- NEW
551156 [en-CA] New localization: English, Canada -- NEW
700289 map he->iw and id->in for values-ab-CD/strings.xml P2 NEW
933315 Firefox for Android doesn't fall back to es-ES when device language set as any other Spanish locale code -- ASSIGNED
881510 Accept-Language header customization UI for Android -- ASSIGNED
917480 Create language selection UI for unsupported Android locales -- ASSIGNED
945122 Translate locale codes between Java and Gecko -- ASSIGNED
891616 [en-ZA] Firefox Mobile release tracker for South African English -- RESOLVED
891618 [en-ZA] Search engine setup for Firefox Mobile for South African English -- RESOLVED
521981 [be] Search engine setup for Firefox Mobile for Belarusian -- RESOLVED
521995 [id] Choose search plug-ins for Fennec in Indonesian -- RESOLVED
958021 [lv] Search engine setup for Firefox Mobile for Latvian. -- RESOLVED
639845 [th] Firefox Mobile release tracker Thai -- RESOLVED
639846 [th] Search engine setup for Firefox Mobile for Thai. -- RESOLVED
936756 Switch locales via pref, not via system locale setting -- RESOLVED
955805 Normalize locale codes appropriately for each subsystem -- RESOLVED
521999 [lt] Choose search plug-ins for Fennec in Lithuanian -- RESOLVED
958019 [lv] Add Latvian (lv) to Fennec single-locale builds and l10n dashboard -- VERIFIED
946207 [et] Search engine setup for Firefox Mobile for Estonian -- VERIFIED
850984 Request for set Baidu search engine as default for zh-CN Version of Firefox for Android -- VERIFIED

Open; Resolved; Total (35.71% complete)

Locales w/repos

Locale Language Target
et Estonian 28 [done]
be Belarusian TBD
id Indonesian 29
hi Hindi 29
vi Vietnamese TBD
af Afrikaans TBD
el Greek TBD
sw Swahili TBD
zu Zulu TBD

Locales sans repos

Locale Language Target
bg Bulgarian TBD
lv Latvian 29
ms Malay TBD
sr Serbian TBD
tl Tagalog TBD
rm Romansh TBD

Blocked locales

Locale Language Target Repo Blocks
he Hebrew TBD Yes RTL, Gecko/Java locale code, resources
ar Arabic TBD Yes RTL, resources
am Amharic TBD No RTL, resources
fa Persian 30 Yes RTL

Locales w/translations but unsupported on Android

Language Location Speakers ADU's
Welsh UK 536,890 145,000
Scottish Gaelic UK 63,130 145,000
Basque Spain 657,872 116,000
Galician Spain 3,185,000 116,000
Punjabi India, Pakistan 88,800,000 107,000
Kannada India 37,739,040 107,000
Ligurian Italy 505,100 115,000
Frisian Netherlands 467,000 41,000
Norwegian (Nynorsk) Norway 4,640,000 (East Scandinavian writing system) 14,500
Venda South Africa 1,064,000 13,500
Xhosa South Africa 7,817,300 13,500
Serbian Serbia 9,262,890 8,200
Albanian Albania 7,436,990 1,200
Fulah Senegal 22,246,400 1,200
Armenian Armenia 5,924,320 1,100
Acholi Uganda 1,197,000 1,000
Songhay Mali ~1,100,000 500

Mozilla locales unsupported on Android & w/out Fennec translations

Language Location Speakers ADU's
Occitan France 2,048,310 150,000
Breton France 1,200,000 150,000
Aragonese Spain 2,000,000 116,000
Asturian Spain 550,000 116,000
Tamil India/Sri Lanka 68,763,360 107,000 + 4,000
Oriya India 32,137,290 107,000
Maithili India 32,800,000 107,000
Malayalam India 33,534,600 107,000
Marathi India 71,780,660 107,000
Telugu India 74,049,000 107,000
Assamese India 12,828,220 107,000
Gujarati India 46,633,190 107,000
Khmer Cambodia/Thailand 16,124,500 45,000 + 6,500
Ilocano Philippines 7,016,400 30,000
Kurdish Iraq 29,960,872 26,000
Burmese Burma/Myanmar 32,035,300 18,500
Urdu Pakistan 63,431,800 14,500
Tsonga South Africa 3,669,000 13,500
Kasakh Kazakhstan 8,077,770 12,000
Bengali (Bangladesh) Bangladesh 110,000,000 11,000
Sinhala Sri Lanka 15,577,690 4,000
Bosnian Bosnia 2,216,000 3,200
Georgian Georgia/Russia 4,237,710 2,300
Macedonian Macedonia 1,710,670 1,800
Nepali Nepal 14,160,100 1,700
Icelandic Iceland 243,840 1,000
Nbedele Zimbabwe 1,572,800 600
Tswana Botswana 4,521,700 250
Siswati Swaziland 2,034,200 <100
Southern Sotho Lesotho 6,024,000 <50
Esperanto non-specific 2,000,000 N/A

Locales Included in our multi-locale APK

As of Fx22

  • Brazilian Portuguese (pt-BR)
  • Chinese (zh-CN)
  • Chinese (zh-TW)
  • Czech (cs)
  • Danish (da)
  • Dutch (nl)
  • English (en-US)
  • Finnish (fi)
  • French (fr)
  • German (de)
  • Italian (it)
  • Japanese (ja)
  • Korean (ko)
  • Norwegian bokmal (nb-NO)
  • Polish (pl)
  • Portuguese (pt-PT)
  • Russian(ru)
  • Slovak (sk_SK)
  • Spanish (es-ES)

As of Fx23

  • Hungarian (hu_HU)
  • Turkish(tr)

As of Fx24

  • British English (en_BR)
  • Catalan (ca_ES)
  • Swedish (sv_SE)

As of Fx 25

  • Ukranian (uk)
  • Irish (ga)
  • Romanian (ro)

As of Fx 26

As of Fx 27

  • South African English(en-ZA)
  • Thai (th)
  • Lithuanian (lt)
  • Slovenian (sl)

As of Fx 28

  • Estonian (et)

Quality Criteria

  1. User stories must be satisfied
  2. Specifications must be met
  3. Multi-locale APK size must not exceed the previous release APK size by x% (important for ARMv6 users with less memory than high-end devices)