在哪里可以找到项目本地化文件夹的区域设置名称缩写列表? (例如英语为en
,法语为fr
。
我希望做德语,西班牙语等。
答案 0 :(得分:51)
您可以称他们为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 |
下面:
zh_HK
和Traditional Chinese
(两者的代码编号与zh_TW
相同)。 从iOS 10.3.1开始,Apple实际使用以下lproj名称列表:
答案 1 :(得分:3)
很快,对于大多数情况,您应该使用两个字母代码,由BCP 47 codes指定。
根据official Apple documentation的规定,您应该使用BCP 47 codes。
现在经验法则是尽可能使用最短的代码。您应该使用它,因为这可以最大化类似区域设置的覆盖范围。
例如,如果您使用俄语进行本地化,则应仅使用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).
答案 2 :(得分:1)
德语为de
,西班牙语为es
。这些代码的一般格式是
languageCode_CountryCode
要么
languageCode
(用作指定语言时的默认值,但不是国家/地区)。
所以你可以做en
(通用英语),en_GB
(英语,但来自英国),fr_FR
(法国法语)和fr_CH
(瑞士法国人)。
语言代码是ISO 639-1 standard的一部分,国家/地区代码来自ISO 3166 standard。
答案 3 :(得分:1)
这个问题已得到解答,但我认为多个来源让人更加困惑。事实上,iOS有30种语言可识别为.lproj文件夹。它不接受任何区域代码,所以告诉它fr-CA不会让你加拿大法语,而只是简单地使用你的英语字符串。您需要使用该语言的双字母代码(en.lproj,fr.lproj,es.lproj,de.lproj等)。这个规则的唯一例外是中文,简体中文应为zh_Hans,繁体中文为zh_Hant。
更令人困惑的是,iTunes App Store有一套不同的语言,它可以识别许多区域版本,如澳大利亚英语和巴西葡萄牙语。
这里有iOS和iTunes当前支持的语言和语言代码的完整(和更新)列表: