Kody lokalne dla folderów iPhone lproj

Gdzie znajdę listę skrótów nazw lokalnych dla folderów lokalizacyjnych mojego projektu? (Np. en dla angielskiego, fr dla francuskiego).

Szukam pracy w języku niemieckim, hiszpańskim i innych.
Author: sorin, 2010-06-15

4 answers

Możesz je po prostu nazwać English.lproj, Spanish.lproj, itd.

Skróty nazw są w rzeczywistości znacznikami języka IETF (tj. BCP 47 ), z tym wyjątkiem, że używasz pt_PT.lproj zamiast pt-PT.lproj.


Rzeczywista procedura interpretacji jest w https://github.com/apple/swift-corelibs-foundation/blob/master/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c, określona przez funkcję CFBundleGetLocalizationInfoForLocalization. Replikowane tutaj:

| lproj identifiers              | L#  | C#  | Display name               |
|:-------------------------------|:----|:----|:---------------------------|
| en_US = en = English           | 0   | 0   | English (United States)    |
| en_GB                          | 0   | 2   | English (United Kingdom)   |
| en_AU                          | 0   | 15  | English (Australia)        |
| en_CA                          | 0   | 82  | English (Canada)           |
| en_SG                          | 0   | 100 | English (Singapore)        |
| en_IE                          | 0   | 108 | English (Ireland)          |
| fr_FR = fr = French            | 1   | 1   | French (France)            |
| fr_CA                          | 1   | 11  | French (Canada)            |
| fr_CH                          | 1   | 18  | French (Switzerland)       |
| fr_BE                          | 1   | 98  | French (Belgium)           |
| de_DE = de = German            | 2   | 3   | German (Germany)           |
| de_CH                          | 2   | 19  | German (Switzerland)       |
| de_AT                          | 2   | 92  | German (Austria)           |
| it_IT = it = Italian           | 3   | 4   | Italian (Italy)            |
| it_CH                          | 3   | 36  | Italian (Switzerland)      |
| nl_NL = nl = Dutch             | 4   | 5   | Dutch (Netherlands)        |
| nl_BE                          | 34  | 6   | Dutch (Belgium)            |    
| sv_SE = sv = Swedish           | 5   | 7   | Swedish (Sweden)           |
| es_ES = es = Spanish           | 6   | 8   | Spanish (Spain)            |
| es_XL                          | 6   | 86  | Spanish (Latin America)    |
| da_DK = da = Danish            | 7   | 9   | Danish (Denmark)           |
| pt_BR = pt = Portuguese        | 8   | 71  | Portuguese (Brazil)        |
| pt_PT                          | 8   | 10  | Portuguese (Portugal)      |
| nb_NO = nb = no = Norwegian    | 9   | 12  | Norwegian Bokmål (Norway)  |
| nn_NO = nn = Nynorsk           | 151 | 101 | Norwegian Nynorsk (Norway) |
| he_IL = he = Hebrew            | 10  | 13  | Hebrew (Israel)            |
| ja_JP = ja = Japanese          | 11  | 14  | Japanese (Japan)           |
|         ar = Arabic            | 12  | 16  | Arabic                     |
| fi_FI = fi = Finnish           | 13  | 17  | Finnish (Finland)          |
| el_GR = el = Greek             | 14  | 20  | Greek (Greece)             |
| el_CY                          | 14  | 23  | Greek (Cyprus)             |
| is_IS = is = Icelandic         | 15  | 21  | Icelandic (Iceland)        |
| mt_MT = mt = Maltese           | 16  | 22  | Maltese (Malta)            |
| tr_TR = tr = Turkish           | 17  | 24  | Turkish (Turkey)           |
| hr_HR = hr = Croatian          | 18  | 68  | Croatian (Croatia)         |
| zh_TW = zh-Hant                | 19  | 53  | Chinese (Taiwan)           |
| zh_CN = zh = zh-Hans = Chinese | 33  | 52  | Chinese (China)            |
| ur_PK = ur = Urdu              | 20  | 34  | Urdu (Pakistan)            |
| ur_IN                          | 20  | 96  | Urdu (India)               |
| hi_IN = hi = Hindi             | 21  | 33  | Hindi (India)              |
| th_TH = th = Thai              | 22  | 54  | Thai (Thailand)            |
| ko_KR = ko = Korean            | 23  | 51  | Korean (South Korea)       |
| lt_LT = lt = Lithuanian        | 24  | 41  | Lithuanian (Lithuania)     |
| pl_PL = pl = Polish            | 25  | 42  | Polish (Poland)            |
| hu_HU = hu = Hungarian         | 26  | 43  | Hungarian (Hungary)        |
| et_EE = et = Estonian          | 27  | 44  | Estonian (Estonia)         |
| lv_LV = lv = Latvian           | 28  | 45  | Latvian (Latvia)           |
|         se = Sami              | 29  | 46  | Northern Sami              |
| fo_FO = fo = Faroese           | 30  | 47  | Faroese (Faroe Islands)    |
| fa_IR = fa = Farsi             | 31  | 48  | Persian (Iran)             |
| ru_RU = ru = Russian           | 32  | 49  | Russian (Russia)           |
| ga_IE = ga = Irish             | 35  | 50  | Irish (Ireland)            |
|         sq = Albanian          | 36  | -1  | Albanian                   |
| ro_RO = ro = Romanian          | 37  | 39  | Romanian (Romania)         |
| cs_CZ = cs = Czech             | 38  | 56  | Czech (Czech Republic)     |
| sk_SK = sk = Slovak            | 39  | 57  | Slovak (Slovakia)          |
| sl_SI = sl = Slovenian         | 40  | 66  | Slovenian (Slovenia)       |
|         yi = Yiddish           | 41  | -1  | Yiddish                    |
| sr_CS = sr = Serbian           | 42  | 65  | Serbian (Serbia)           |
| mk_MK = mk = Macedonian        | 43  | 67  | Macedonian (Macedonia)     |
| bg_BG = bg = Bulgarian         | 44  | 72  | Bulgarian (Bulgaria)       |
| uk_UA = uk = Ukrainian         | 45  | 62  | Ukrainian (Ukraine)        |
| be_BY = be = Byelorussian      | 46  | 61  | Belarusian (Belarus)       |
| uz_UZ = uz = Uzbek             | 47  | 99  | Uzbek (Uzbekistan)         |
|         kk = Kazakh            | 48  | -1  | Kazakh                     |
| hy_AM = hy = Armenian          | 51  | 84  | Armenian (Armenia)         |
| ka_GE = ka = Georgian          | 52  | 85  | Georgian (Georgia)         |
|         mo = Moldavian         | 53  | -1  | Moldavian                  |
|         ky = Kirghiz           | 54  | -1  | Kyrgyz                     |
|         tg = Tajiki            | 55  | -1  | Tajik                      |
|         tk = Turkmen           | 56  | -1  | Turkmen                    |
|         mn = Mongolian         | 58  | -1  | Mongolian                  |
|         ps = Pashto            | 59  | -1  | Pashto                     |
|         ku = Kurdish           | 60  | -1  | Kurdish                    |
|         ks = Kashmiri          | 61  | -1  | Kashmiri                   |
|         sd = Sindhi            | 62  | -1  | Sindhi                     |
|         bo = Tibetan           | 63  | 105 | Tibetan                    |
| ne_NP = ne = Nepali            | 64  | 106 | Nepali (Nepal)             |
|         sa = Sanskrit          | 65  | -1  | Sanskrit                   |
| mr_IN = mr = Marathi           | 66  | 104 | Marathi (India)            |
|         bn = Bengali           | 67  | 60  | Bengali                    |
|         as = Assamese          | 68  | -1  | Assamese                   |
| gu_IN = gu = Gujarati          | 69  | 94  | Gujarati (India)           |
|         pa = Punjabi           | 70  | 95  | Punjabi                    |
|         or = Oriya             | 71  | -1  | Oriya                      |
|         ml = Malayalam         | 72  | -1  | Malayalam                  |
|         kn = Kannada           | 73  | -1  | Kannada                    |
|         ta = Tamil             | 74  | -1  | Tamil                      |
|         te = Telugu            | 75  | -1  | Telugu                     |
|         si = Sinhalese         | 76  | -1  | Sinhala                    |
|         my = Burmese           | 77  | -1  | Burmese                    |
|         km = Khmer             | 78  | -1  | Khmer                      |
|         lo = Lao               | 79  | -1  | Lao                        |
| vi_VN = vi = Vietnamese        | 80  | 97  | Vietnamese (Vietnam)       |
|         id = Indonesian        | 81  | -1  | Indonesian                 |
|         tl = Tagalog           | 82  | -1  | Tagalog                    |
|         ms = Malay             | 83  | -1  | Malay                      |
|         am = Amharic           | 85  | -1  | Amharic                    |
|         ti = Tigrinya          | 86  | -1  | Tigrinya                   |
|         om = Oromo             | 87  | -1  | Oromo                      |
|         so = Somali            | 88  | -1  | Somali                     |
|         sw = Swahili           | 89  | -1  | Swahili                    |
|         rw = Kinyarwanda       | 90  | -1  | Kinyarwanda                |
|         rn = Rundi             | 91  | -1  | Rundi                      |
|              Nyanja            | 92  | -1  | Nyanja                     |
|         mg = Malagasy          | 93  | -1  | Malagasy                   |
|         eo = Esperanto         | 94  | 103 | Esperanto                  |
|         cy = Welsh             | 128 | 79  | Welsh                      |
|         eu = Basque            | 129 | -1  | Basque                     |
| ca_ES = ca = Catalan           | 130 | 73  | Catalan (Spain)            |
|         la = Latin             | 131 | -1  | Latin                      |
|         qu = Quechua           | 132 | -1  | Quechua                    |
|         gn = Guarani           | 133 | -1  | Guarani                    |
|         ay = Aymara            | 134 | -1  | Aymara                     |
|         tt = Tatar             | 135 | -1  | Tatar                      |
|         ug = Uighur            | 136 | -1  | Uyghur                     |
| dz_BT = dz = Dzongkha          | 137 | 83  | Dzongkha (Bhutan)          |
|         jv = Javanese          | 138 | -1  | Javanese                   |
|         su = Sundanese         | 139 | -1  | Sundanese                  |
|         gl = Galician          | 140 | -1  | Galician                   |
| af_ZA = af = Afrikaans         | 141 | 102 | Afrikaans (South Africa)   |
|         br = Breton            | 142 | 77  | Breton                     |
| iu_CA = iu = Inuktitut         | 143 | 78  | Inuktitut (Canada)         |
|         gd = Scottish          | 144 | 75  | Scottish Gaelic            |
|         gv = Manx              | 145 | 76  | Manx                       |
| to_TO = to = Tongan            | 147 | 88  | Tongan (Tonga)             |
|         grc                    | 148 | 40  | Ancient Greek              |
|         kl = Greenlandic       | 149 | 107 | Kalaallisut                |
|         az = Azerbaijani       | 150 | -1  | Azerbaijani                |

Tutaj:

  • L# jest kod języka , A C# to kod kraju. Uważam, że dwa identyfikatory są identyczne, jeśli mają ten sam język i kod kraju.
  • mam tylko wymienione łańcuchy pojawiające się w pliku źródłowym. Rozpoznaje również coś w rodzaju zh_HK i Traditional Chinese (oba mają ten sam numer kodu co zh_TW), prawdopodobnie poprzez bardziej wyrafinowaną listę CFLocale.

W wersji 10.3.1 Apple używa następujących nazw lproj:]}
  • Duński, Holenderski, Angielski, Francuski, Niemiecki, Włoski, Japoński, Polski, Portugalski, Rosyjski, Hiszpański, Szwedzki
  • ar, bo, ca, cs, da, de, el, en, es, FI, fr, he, hi, hr, hu, id, it, ja, ko, ms, nb, nl, no, pa, pl, pt, ro, ru, sk, sv, th, tr, uk, ur, vi, chr (Uwaga: chr = Cherokee)
  • en_AU, en_CA, en_CN, en_GB, en_ID, en_IN, en_JP, en_MY, en_NZ, en_SG
  • es_419, es_AR, es_CL, es_CO, es_CR, es_GT, es_MX, es_PA, es_PE, es_US
  • ar_SA, da_DK, de_AT, de_CH, fi_FI, fr_BE, fr_CA, fr_CH, he_IL, it_CH, ms_MY, nb_no, nl_BE, nl_NL, pt_BR, pt_PT, ru_RU, sv_SE, th_TH, tr_TR, yue_CN, zh_CN, zh_HK, zh_TW
 49
Author: kennytm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-11 17:57:07

Krótko mówiąc, w większości przypadków należy użyć dwuliterowych kodów, określonych przez BCP 47 kodów .

Dłużej, zgodnie z oficjalną dokumentacją Apple Należy używać kodów BCP 47 .

Teraz zasadą jest użycie najkrótszego możliwego kodu, który ma sens. Powinieneś tego użyć, ponieważ maksymalizuje to zasięg dla podobnych lokalizacji.

Na przykład, jeśli lokalizujesz po rosyjsku, powinieneś używać tylko kodu ru, zamiast alternatywy jak ru-RU. Jest to ważne, ponieważ jeśli użyjesz krótkiego kodu, użytkownicy z innych krajów, którzy mówią po rosyjsku, zobaczą Twoją aplikację w języku rosyjskim. W przeciwnym razie wyświetli się rosyjski tylko dla osób używających języka rosyjskiego z Rosji.

Jeśli chcesz dowiedzieć się więcej o kodach językowych, w tym zalecanych dla najczęściej używanych języków, powinieneś przeczytać krótki artykuł, który napisałem ponad rok temu http://blog.i18n.ro/simplified-locale-codes/ - pamiętaj, że istnieją pewne triki dotyczące portugalskiego i chińskiego , ale dla innych języków możesz użyć poniższej listy.

Arabic (ar), Czech (cs), Danish (da), German (de), Greek (el), Finnish (fi), Hebrew (he), Hungarian (hu), Italian (it), Japanese (ja), Korean (ko), Norwegian (nb), Dutch (nl), Polish (pl), Romanian (ro), Russian (ru), Swedish (sv), Turkish (tr), Ukrainian (uk).

 3
Author: sorin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 15:31:38

Niemiecki to de, Hiszpański to es. Ogólny format tych kodów to languageCode_CountryCode lub languageCode (używane jako domyślne, gdy określony jest język, ale nie Kraj).

Więc możesz robić rzeczy takie jak en (ogólny angielski), en_GB (angielski, ale z Wielkiej Brytanii), fr_FR (francuski z Francji) i fr_CH (Szwajcarski francuski).

Kody języków są częścią ISO 639-1 standard , A kody krajów pochodzą z ISO 3166 standard .

 1
Author: Dave DeLong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-14 20:39:39

To pytanie zostało udzielone, ale myślę, że bardziej mylące przez wiele źródeł. Faktem jest, że iOS ma języki 30, które rozpoznaje jako .foldery lproj. Nie będzie akceptować żadnych kodów regionalnych, więc mówienie o tym fr-CA nie da ci francuskiego Kanadyjczyka, ale raczej użyje Twoich angielskich ciągów. Musisz użyć dwuliterowego kodu dla języka (en.lproj, ks.lproj, es.lproj, de.lproj i tak dalej). Jedynym wyjątkiem od tej reguły jest Chiński, który powinien być zh_Hans dla Chiński uproszczony i zh_Hant dla chińskiego tradycyjnego.

To, co sprawia, że jest to jeszcze bardziej mylące, to fakt, że iTunes App Store ma Inny zestaw języków, które rozumie, i rozpoznaje wiele regionalnych wersji, takich jak Australijski angielski i Brazylijski Portugalski.

Istnieje pełna (i zaktualizowana) lista aktualnie obsługiwanych języków i kodów językowych zarówno dla iOS, jak i iTunes tutaj:

Http://www.ibabbleon.com/iOS-Language-Codes-ISO-639.html

 1
Author: Localizer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-27 17:11:53