代码之家  ›  专栏  ›  技术社区  ›  Moshe

iPhone lproj文件夹的区域设置代码

  •  27
  • Moshe  · 技术社区  · 14 年前

    在哪里可以找到项目本地化文件夹的区域设置名称缩写列表?(如 en 对于英语, fr 法语)

    我想学德语、西班牙语等。

    4 回复  |  直到 7 年前
        1
  •  51
  •   kennytm    7 年前

    你可以打电话给他们 English.lproj , Spanish.lproj 等。

    “简称”实际上是 IETF language tags (即 BCP 47 ,除了你用 pt_PT.lproj 而不是 pt-PT.lproj .


    实际的解释程序在 https://github.com/apple/swift-corelibs-foundation/blob/master/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c ,由 CFBundleGetLocalizationInfoForLocalization 功能。此处复制:

    | 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                |
    

    在这里:

    • L是 语言代码 C是 国家代码 . 如果两个标识符共享相同的语言和国家代码,我认为它们是相同的。
    • 我只列出了显示源文件的字符串。它也能识别 zh_HK Traditional Chinese (两者的代码与 zh_TW ,可能是通过更复杂的cflocale列表。

    截至iOS 10.3.1,苹果实际使用的lproj名称列表如下:

    • 丹麦语、荷兰语、英语、法语、德语、意大利语、日语、波兰语、葡萄牙语、俄语、西班牙语、瑞典语
    • 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( 注:CHR=切罗基 )
    • en-au、en-ca、en-cn、en-gb、en-id、en-in、en-jp、en-my、en-nz、en-sg
    • es_、es_ar、es_cl、es_co、es_cr、es_gt、es_mx、es_pa、es_pe、es_us
    • ar ou sa,da ou dk,de ou at,de ou ch,fi ou fi,fr ou be,fr ou ca,fr ou ch,he ou il,it ou ch,ms ou my,nb ou no,nl ou be,nl ou nl,pt ou br,pt ou pt,ru_ru,sv ou se,th ou th,tr ou tr,yu-cn,zh ou-cn,zh-hk,zh-tw
        2
  •  3
  •   iwasrobbed    11 年前

    很快,对于大多数情况,您应该使用两个字母代码,如 BCP 47 codes .

    更长,如 official Apple documentation 你应该用 BCP 47码 .

    现在的经验法则是尽可能使用最短的代码,这是有意义的。您应该使用它,因为这样可以最大限度地扩大类似地区的覆盖范围。

    例如,如果使用俄语本地化,则只能使用 ru 代码,而不是像 ru-RU . 这一点很重要,因为如果您使用短代码,其他说俄语的国家的用户将看到您的俄语应用程序。否则,您将只为使用俄语的人显示俄语。

    如果你想知道更多关于语言代码的信息,包括大多数使用语言的推荐代码,你应该阅读我一年多前写的一篇短文。 http://blog.i18n.ro/simplified-locale-codes/ -记住,关于 葡萄牙语 中国人 但是对于其他语言,您可以使用下面的列表。

    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
  •  1
  •   Dave DeLong    14 年前

    德语是 de 西班牙语是 es . 这些代码的一般格式是 languageCode_CountryCode languageCode (用于指定语言而非国家时的默认值)。

    所以你可以做像 en (通用英语) en_GB (英语,但来自英国) fr_FR (来自法国的法语),以及 fr_CH (瑞士法国人)。

    语言代码是 ISO 639-1 standard ,国家代码来自 ISO 3166 standard .

        4
  •  1
  •   Localizer    11 年前

    这个问题已经被回答了,但我认为多个来源使我更加困惑。事实上,iOS有30种语言可以识别为.lproj文件夹。它不会接受任何地区代码,所以告诉它fr-ca不会让你得到法裔加拿大人,而是只使用你的英语字符串。您需要使用两个字母的语言代码(en.lproj、fr.lproj、es.lproj、de.lproj等)。这条规则唯一的例外是中文,简体中文应该是日汉,繁体中文应该是日汉。

    更让人困惑的是,iTunes应用商店有一个 不同的 它能理解的一组语言,并能识别许多地区版本,如澳大利亚英语和巴西葡萄牙语。

    以下是iOS和iTunes当前支持的语言和语言代码的完整(更新)列表:

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