Mobile/Projects/Localization

Goals

  • Grant user control over language selection within Fennec.
    • [Accomplished in Fx32] Language selection currently controled by Android system preferences, whose availability are determined by OEMs and carriers.
    • Accept-language header for customizing default language selection for delivery of web content.
  • 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 68 languages (added support for Basque, Bengali, Burmese, Chinese (Hong Kong), Galician, Icelandic, Kannada, Kyrgyz, Macedonian, Malayalam, Marathi, Nepali, Sinhala, Tamil and Telugu in 5.0 Lollipop).
    • OEMs add languages to Android's 52 delivered languages (e.g., Samsung devices have up to 83).

Specifications

  • Multi-locale build to include all new locales
  • (RTL languages requires support from the Android UI for the likes of Arabic)

Bug Tracking

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

29 Total; 0 Open (0%); 25 Resolved (86.21%); 4 Verified (13.79%);


Android supported

Locales w/repos

Locale Language Scheduled
vi Vietnamese
af Afrikaans
el Greek
sw Swahili
zu Zulu
gl Galician 36

Locales sans repos

Locale Language Scheduled
bg Bulgarian
sr Serbian
tl Tagalog
rm Romansh
my Burmese
ky Kyrgyz
mk Macedonian
ne-NP Nepalese
si Sinhala

Blocked locales

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

Sans Android support

Locales w/translations

Language Location Speakers ADU's Scheduled
Ligurian Italy 505,100 115,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
Albanian Albania 7,436,990 1,200
Acholi Uganda 1,197,000 1,000
Songhay Mali ~1,100,000 500

Locales w/out Fennec translations

Language Location Speakers ADU's Scheduled
Occitan France 2,048,310 150,000
Breton France 1,200,000 150,000 35
Asturian Spain 550,000 116,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
Urdu Pakistan 63,431,800 14,500
Tsonga South Africa 3,669,000 13,500
Bengali (Bangladesh) Bangladesh 110,000,000 11,000
Bosnian Bosnia 2,216,000 3,200
Georgian Georgia/Russia 4,237,710 2,300
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 35

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)

As of Fx 29

As of Fx 30

  • Indonesian (id)
  • Spanish (es-MX)
  • Spanish (es-AR)
  • Malay (ms)
  • Belarusian (be)
  • Latvian (lv)

As of Fx 31

  • Assamese (as)
  • Bengali (bn-IN)
  • Hindi (hi-IN)
  • Gujarati (gu-IN)
  • Kannada (kn)
  • Maithli (mai)
  • Marathi (mr)
  • Malayalam (ml)
  • Punjabi (pa-IN)
  • Oriya (or)
  • Tamil (ta)
  • Telugu (te)

As of 32

  • Icelandic (is)
  • Fulah (ff)
  • Basque (eu)
  • Scottish Gaelic (gd)
  • Welsh (cy)
  • Armenian (hy-AM)

As of 33

  • Kazakh (kk)
  • Aragonese (an)
  • Frisian (fy-NL)

As of 34

  • Khmer (km)

As of 35

As of 36

As of 37

As of 38

As of 39

As of 40

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)