Jump to: navigation, search

Difference between revisions of "Language Plurals"

(Created page with "= Language Plurals = {| class="wikitable" |- ! Language Code !! Language Name !! Plurals |- | ar || Arabic || nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 &&...")
 
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Language Plurals =
 
  
{| class="wikitable"
+
To maintain consistency during the migration/integration process, we strictly adhere to the Zanata language code format.
|-
+
 
! Language Code !! Language Name !! Plurals
+
In all cases, Zanata's plural forms are prioritized.
 +
* Langauge code format: Zanata Language Codes.
 +
* Plurals: If Weblate’s plural rules differ from Zanata’s, the Zanata rule must be applied to ensure compatibility with existing localized resources. Specifically, plurals should be enclosed in () as per the Zanata format.
 +
 
 +
: '''Note:''' The presence or absence of parentheses () is not considered when determining plural identity.
 +
 
 +
{| class="wikitable sortable"
 +
! Language Code (Zanata) !! Language Name !! Plurals (Zanata) !! Language Code (Weblate) !! Plurals (Weblate) !! Different? !! Note
 
|-
 
|-
| ar || Arabic || nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;
+
| sq || Albanian || nplurals=2; plural=(n != 1) || sq || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| as || Assamese || nplurals=2; plural=n > 1;
+
| ar || Arabic || nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5; || ar || nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5; || No ||
 
|-
 
|-
| bg_BG || Bulgarian (Bulgaria) || nplurals=2; plural=n != 1;
+
| as || Assamese || nplurals=2; plural=(n != 1) || as || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| bn_IN || Bengali (India) || nplurals=2; plural=n > 1;
+
| bn-IN || Bengali (India) || nplurals=2; plural=(n != 1) || bn_IN || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| brx || Bodo || nplurals=2; plural=n != 1;
+
| brx || Bodo || nplurals=2; plural=(n != 1) || brx || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| ca || Catalan || nplurals=2; plural=n != 1;
+
| bg-BG || Bulgarian (Bulgaria) || nplurals=2; plural=(n != 1) || bg || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| cs || Czech || nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;
+
| ca || Catalan || nplurals=2; plural=(n != 1) || ca || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| de || German || nplurals=2; plural=n != 1;
+
| zh-CN || Chinese (China) || nplurals=1; plural=0 || zh_Hans || nplurals=1; plural=0; || No ||
 
|-
 
|-
| el || Greek || nplurals=2; plural=n != 1;
+
| zh-TW || Chinese (Taiwan) || nplurals=1; plural=0 || zh_Hant || nplurals=1; plural=0; || No ||
 
|-
 
|-
| en_GB || English (United Kingdom) || nplurals=2; plural=n != 1;
+
| cs || Czech || nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2 || cs || nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; || No ||
 
|-
 
|-
| en_US || English (United States) || nplurals=2; plural=n != 1;
+
| nl-NL || Dutch (Netherlands) || nplurals=2; plural=(n != 1) || nl || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| en_AU || English (Australia) || nplurals=2; plural=n != 1;
+
| en-AU || English (Australia) || nplurals=2; plural=(n != 1) || en_AU || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| eo || Esperanto || nplurals=2; plural=n != 1;
+
| en-GB || English (United Kingdom) || nplurals=2; plural=(n != 1) || en_GB || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| es || Spanish || nplurals=2; plural=n != 1;
+
| en-US || English (United States) || nplurals=2; plural=(n != 1) || en_US || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| es_MX || Spanish (Mexico) || nplurals=2; plural=n != 1;
+
| eo || Esperanto || nplurals=2; plural=(n != 1) || eo || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| fa || Persian || nplurals=2; plural=n > 1;
+
| fil || Filipino || nplurals=2; plural=n > 1 || fil || nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 &#124;&#124; n % 10 == 6 &#124;&#124; n % 10 == 9); || Yes ||
 
|-
 
|-
| fi_FI || Finnish (Finland) || nplurals=2; plural=n != 1;
+
| fi-FI || Finnish (Finland) || nplurals=2; plural=(n != 1) || fi || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| fil || Filipino || nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 <nowiki>||</nowiki> n % 10 == 6 <nowiki>||</nowiki> n % 10 == 9);
+
| fr || French || nplurals=2; plural=(n > 1) || fr || nplurals=2; plural=n > 1; || No ||  
 
|-
 
|-
| fr || French || nplurals=2; plural=n > 1;
+
| ka-GE || Georgian (Georgia) || nplurals=1; plural=0 || ka || nplurals=2; plural=n != 1; || Yes ||
 
|-
 
|-
| gu || Gujarati || nplurals=2; plural=n > 1;
+
| de || German || nplurals=2; plural=(n != 1) || de || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| he || Hebrew || nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3));
+
| el || Greek || nplurals=2; plural=(n != 1) || el || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| hi || Hindi || nplurals=2; plural=n > 1;
+
| gu || Gujarati || nplurals=2; plural=(n != 1) || gu || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| hu || Hungarian || nplurals=2; plural=n != 1;
+
| he || Hebrew || nplurals=2; plural=(n != 1) || he || nplurals=4; plural= (n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3)); || Yes ||
 
|-
 
|-
| id || Indonesian || nplurals=1; plural=0;
+
| hi || Hindi || nplurals=2; plural=(n != 1) || hi || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| it || Italian || nplurals=2; plural=n != 1;
+
| hu || Hungarian || nplurals=2; plural=(n != 1) || hu || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| ja || Japanese || nplurals=1; plural=0;
+
| id || Indonesian || nplurals=1; plural=0 || id || nplurals=1; plural=0; || No ||
 
|-
 
|-
| ka_GE || Georgian (Georgia) || nplurals=2; plural=n != 1;
+
| it || Italian || nplurals=2; plural=(n != 1) || it || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| kn || Kannada || nplurals=2; plural=n > 1;
+
| ja || Japanese || nplurals=1; plural=0 || ja || nplurals=1; plural=0; || No ||
 
|-
 
|-
| ko_KR || Korean (Korea) || nplurals=1; plural=0;
+
| kn || Kannada || nplurals=2; plural=(n!=1) || kn || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| kok || Konkani || nplurals=2; plural=n != 1;
+
| ks || Kashmiri || nplurals=2; plural=(n != 1) || ks || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| ks || Kashmiri || nplurals=2; plural=n != 1;
+
| kok || Konkani || nplurals=2; plural=(n != 1) || kok || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| lo || Lao || nplurals=1; plural=0;
+
| ko-KR || Korean (South Korea) || nplurals=1; plural=0 || ko || nplurals=1; plural=0; || No ||
 
|-
 
|-
| mai || Maithili || nplurals=2; plural=n != 1;
+
| lo || Lao || nplurals=1; plural=0 || lo || nplurals=1; plural=0; || No ||
 
|-
 
|-
| mni || Manipuri || nplurals=2; plural=n != 1;
+
| mai || Maithili || nplurals=2; plural=(n != 1) || mai || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| mr || Marathi || nplurals=2; plural=n != 1;
+
| mni || Manipuri || nplurals=2; plural=(n != 1) || mni || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| ne || Nepali || nplurals=2; plural=n != 1;
+
| mr || Marathi || nplurals=2; plural=(n != 1) || mr || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| nl_NL || Dutch (Netherlands) || nplurals=2; plural=n != 1;
+
| ne || Nepali || nplurals=2; plural=(n != 1) || ne || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| pa_IN || Punjabi (India) || nplurals=2; plural=n > 1;
+
| fa || Persian || nplurals=1; plural=0 || fa || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| pl_PL || Polish (Poland) || nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 <nowiki>||</nowiki> n%100>=20) ? 1 : 2;
+
| pl-PL || Polish (Poland) || nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2) || pl || nplurals=3; plural= n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2; || No ||
 
|-
 
|-
| pt || Portuguese || nplurals=2; plural=n > 1;
+
| pt || Portuguese || nplurals=2; plural=(n != 1) || pt || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| pt_BR || Portuguese (Brazil) || nplurals=2; plural=n > 1;
+
| pt-BR || Portuguese (Brazil) || nplurals=2; plural=(n > 1) || pt_BR || nplurals=2; plural=n > 1; || No ||
 
|-
 
|-
| ro || Romanian || nplurals=3; plural=n==1 ? 0 : (n==0 <nowiki>||</nowiki> (n%100 > 0 && n%100 < 20)) ? 1 : 2;
+
| pa-IN || Punjabi (India) || nplurals=2; plural=(n != 1) || pa || nplurals=2; plural=n > 1; || Yes ||
 
|-
 
|-
| ru || Russian || nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 <nowiki>||</nowiki> n%100>=20) ? 1 : 2;
+
| Ro || Romanian || nplurals=3; plural=(n==1 ? 0 : (n==0 &#124;&#124; (n%100 > 0 && n%100 < 20)) ? 1 : 2); || ro || nplurals=3; plural= n==1 ? 0 : (n==0 &#124;&#124; (n%100 > 0 && n%100 < 20)) ? 1 : 2; || Yes || The language code format differs from the standard convention.
 
|-
 
|-
| sl_SI || Slovenian (Slovenia) || nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 <nowiki>||</nowiki> n%100==4 ? 2 : 3;
+
| ru || Russian || nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2) || ru || nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2; || No ||
 
|-
 
|-
| sq || Albanian || nplurals=2; plural=n != 1;
+
| sr || Serbian || nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2) || sr || nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 &#124;&#124; n%100>=20) ? 1 : 2; || No ||
 
|-
 
|-
| sr || Serbian || nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 <nowiki>||</nowiki> n%100>=20) ? 1 : 2;
+
| sl-SI || Slovenian (Slovenia) || nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 &#124;&#124; n%100==4 ? 3 : 0) || sl || nplurals=4; plural= n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 &#124;&#124; n%100==4 ? 2 : 3; || Yes ||
 
|-
 
|-
| ta || Tamil || nplurals=2; plural=n != 1;
+
| es || Spanish || nplurals=2; plural=(n != 1) || es || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| te_IN || Telugu (India) || nplurals=2; plural=n != 1;
+
| es-MX || Spanish (Mexico) || nplurals=2; plural=(n != 1) || es_MX || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| th || Thai || nplurals=1; plural=0;
+
| ta || Tamil || nplurals=2; plural=(n != 1) || ta || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| tr_TR || Turkish (Turkey) || nplurals=2; plural=n != 1;
+
| te-IN || Telugu (India) || nplurals=2; plural=(n != 1) || te || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| ur || Urdu || nplurals=2; plural=n != 1;
+
| Th || Thai || nplurals=1; plural=0 || th || nplurals=1; plural=0; || No || Identical plural logic, but an alternative code 'Th' also exists.
 
|-
 
|-
| vi_VN || Vietnamese (Vietnam) || nplurals=1; plural=0;
+
| tr-TR || Turkish (Turkey) || nplurals=2; plural=(n>1) || tr || nplurals=2; plural=n != 1; || Yes ||
 
|-
 
|-
| zh_CN || Chinese (China) || nplurals=1; plural=0;
+
| ur || Urdu || nplurals=2; plural=(n != 1) || ur || nplurals=2; plural=n != 1; || No ||
 
|-
 
|-
| zh_TW || Chinese (Taiwan) || nplurals=1; plural=0;
+
| vi-VN || Vietnamese (Vietnam) || nplurals=1; plural=0 || vi || nplurals=1; plural=0; || No ||
 
|}
 
|}

Latest revision as of 13:50, 9 January 2026

To maintain consistency during the migration/integration process, we strictly adhere to the Zanata language code format.

In all cases, Zanata's plural forms are prioritized.

  • Langauge code format: Zanata Language Codes.
  • Plurals: If Weblate’s plural rules differ from Zanata’s, the Zanata rule must be applied to ensure compatibility with existing localized resources. Specifically, plurals should be enclosed in () as per the Zanata format.
Note: The presence or absence of parentheses () is not considered when determining plural identity.
Language Code (Zanata) Language Name Plurals (Zanata) Language Code (Weblate) Plurals (Weblate) Different? Note
sq Albanian nplurals=2; plural=(n != 1) sq nplurals=2; plural=n != 1; No
ar Arabic nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5; ar nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5; No
as Assamese nplurals=2; plural=(n != 1) as nplurals=2; plural=n > 1; Yes
bn-IN Bengali (India) nplurals=2; plural=(n != 1) bn_IN nplurals=2; plural=n > 1; Yes
brx Bodo nplurals=2; plural=(n != 1) brx nplurals=2; plural=n != 1; No
bg-BG Bulgarian (Bulgaria) nplurals=2; plural=(n != 1) bg nplurals=2; plural=n != 1; No
ca Catalan nplurals=2; plural=(n != 1) ca nplurals=2; plural=n != 1; No
zh-CN Chinese (China) nplurals=1; plural=0 zh_Hans nplurals=1; plural=0; No
zh-TW Chinese (Taiwan) nplurals=1; plural=0 zh_Hant nplurals=1; plural=0; No
cs Czech nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2 cs nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; No
nl-NL Dutch (Netherlands) nplurals=2; plural=(n != 1) nl nplurals=2; plural=n != 1; No
en-AU English (Australia) nplurals=2; plural=(n != 1) en_AU nplurals=2; plural=n != 1; No
en-GB English (United Kingdom) nplurals=2; plural=(n != 1) en_GB nplurals=2; plural=n != 1; No
en-US English (United States) nplurals=2; plural=(n != 1) en_US nplurals=2; plural=n != 1; No
eo Esperanto nplurals=2; plural=(n != 1) eo nplurals=2; plural=n != 1; No
fil Filipino nplurals=2; plural=n > 1 fil nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 || n % 10 == 6 || n % 10 == 9); Yes
fi-FI Finnish (Finland) nplurals=2; plural=(n != 1) fi nplurals=2; plural=n != 1; No
fr French nplurals=2; plural=(n > 1) fr nplurals=2; plural=n > 1; No
ka-GE Georgian (Georgia) nplurals=1; plural=0 ka nplurals=2; plural=n != 1; Yes
de German nplurals=2; plural=(n != 1) de nplurals=2; plural=n != 1; No
el Greek nplurals=2; plural=(n != 1) el nplurals=2; plural=n != 1; No
gu Gujarati nplurals=2; plural=(n != 1) gu nplurals=2; plural=n > 1; Yes
he Hebrew nplurals=2; plural=(n != 1) he nplurals=4; plural= (n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3)); Yes
hi Hindi nplurals=2; plural=(n != 1) hi nplurals=2; plural=n > 1; Yes
hu Hungarian nplurals=2; plural=(n != 1) hu nplurals=2; plural=n != 1; No
id Indonesian nplurals=1; plural=0 id nplurals=1; plural=0; No
it Italian nplurals=2; plural=(n != 1) it nplurals=2; plural=n != 1; No
ja Japanese nplurals=1; plural=0 ja nplurals=1; plural=0; No
kn Kannada nplurals=2; plural=(n!=1) kn nplurals=2; plural=n > 1; Yes
ks Kashmiri nplurals=2; plural=(n != 1) ks nplurals=2; plural=n != 1; No
kok Konkani nplurals=2; plural=(n != 1) kok nplurals=2; plural=n != 1; No
ko-KR Korean (South Korea) nplurals=1; plural=0 ko nplurals=1; plural=0; No
lo Lao nplurals=1; plural=0 lo nplurals=1; plural=0; No
mai Maithili nplurals=2; plural=(n != 1) mai nplurals=2; plural=n != 1; No
mni Manipuri nplurals=2; plural=(n != 1) mni nplurals=2; plural=n != 1; No
mr Marathi nplurals=2; plural=(n != 1) mr nplurals=2; plural=n != 1; No
ne Nepali nplurals=2; plural=(n != 1) ne nplurals=2; plural=n != 1; No
fa Persian nplurals=1; plural=0 fa nplurals=2; plural=n > 1; Yes
pl-PL Polish (Poland) nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) pl nplurals=3; plural= n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; No
pt Portuguese nplurals=2; plural=(n != 1) pt nplurals=2; plural=n > 1; Yes
pt-BR Portuguese (Brazil) nplurals=2; plural=(n > 1) pt_BR nplurals=2; plural=n > 1; No
pa-IN Punjabi (India) nplurals=2; plural=(n != 1) pa nplurals=2; plural=n > 1; Yes
Ro Romanian nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2); ro nplurals=3; plural= n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2; Yes The language code format differs from the standard convention.
ru Russian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) ru nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; No
sr Serbian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) sr nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; No
sl-SI Slovenian (Slovenia) nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0) sl nplurals=4; plural= n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3; Yes
es Spanish nplurals=2; plural=(n != 1) es nplurals=2; plural=n != 1; No
es-MX Spanish (Mexico) nplurals=2; plural=(n != 1) es_MX nplurals=2; plural=n != 1; No
ta Tamil nplurals=2; plural=(n != 1) ta nplurals=2; plural=n != 1; No
te-IN Telugu (India) nplurals=2; plural=(n != 1) te nplurals=2; plural=n != 1; No
Th Thai nplurals=1; plural=0 th nplurals=1; plural=0; No Identical plural logic, but an alternative code 'Th' also exists.
tr-TR Turkish (Turkey) nplurals=2; plural=(n>1) tr nplurals=2; plural=n != 1; Yes
ur Urdu nplurals=2; plural=(n != 1) ur nplurals=2; plural=n != 1; No
vi-VN Vietnamese (Vietnam) nplurals=1; plural=0 vi nplurals=1; plural=0; No