2010-06-14 25 views
24

Tôi sẽ tìm danh sách tên viết tắt tên miền địa phương cho thư mục bản địa hóa dự án của mình ở đâu? (Chẳng hạn như en cho tiếng Anh, fr cho tiếng Pháp).Mã miền địa phương cho thư mục iPhone lproj

Tôi đang tìm cách làm tiếng Đức, tiếng Tây Ban Nha và các ngôn ngữ khác.

Trả lời

47

Bạn chỉ có thể gọi cho họ English.lproj, Spanish.lproj vv

Các "tên viết tắt là" đang thực sự IETF language tags (ví dụ: BCP 47), ngoại trừ việc bạn sử dụng pt_PT.lproj thay vì pt-PT.lproj.


Cách thông dịch thực tế là https://github.com/apple/swift-corelibs-foundation/blob/master/CoreFoundation/PlugIn.subproj/CFBundle_Locale.c, được xác định bởi hàm CFBundleGetLocalizationInfoForLocalization. Nhân rộng ở đây:

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

đây:

  • L # là mã ngôn ngữ và C# là mã nước. Tôi xem xét hai số nhận dạng giống hệt nhau nếu chúng chia sẻ cùng một ngôn ngữ và mã quốc gia.
  • Tôi chỉ liệt kê các chuỗi xuất hiện tệp nguồn. Nó cũng nhận ra một cái gì đó như zh_HKTraditional Chinese (cả hai đều có cùng mã số như zh_TW), có lẽ thông qua danh sách CFLocale tinh vi hơn.

Tính đến iOS 10.3.1, danh sách sau đây của tên lproj đang thực sự được sử dụng bởi Apple:

  • Đan Mạch, Hà Lan, Anh, Pháp, Đức, Ý, Nhật Bản, Ba Lan, Bồ Đào Nha, Nga, Tây Ban Nha, Thụy Điển
  • ar, bo, ca, cs, da, de, el, en, es, fi, fr, anh, hi, hr, hu, id, it, ja, ko, ms, nb, nl, không, pa, pl, pt, ro, ru, sk, sv, th, tr, uk, ur, vi, chr (Lưu ý: chr = Cherokee)
  • .210
  • 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
+0

Tôi thực sự thấy điều này ở đây: http: //www.cilinder./docs/next/NeXTStep/3.3/nd/Concepts/Localization.htmld/index.html Thú vị. Trải nghiệm của Steve Jobs với NeXT thực sự ảnh hưởng đến Apple cho đến ngày hôm nay! – Moshe

+1

lý do tại sao có đôi của một số người trong số họ? Malay, Mông Cổ, Azerbaijan – slf

+0

làm cho tôi muốn Old Norse được hỗ trợ – slf

1

Đức là de, tiếng Tây Ban Nha là es. Định dạng chung cho các mã này là languageCode_CountryCode hoặc languageCode (được sử dụng làm mặc định khi ngôn ngữ được chỉ định, nhưng không phải là quốc gia).

Vì vậy, bạn có thể làm những việc như en (tiếng Anh chung), en_GB (tiếng Anh, nhưng từ Vương quốc Anh), fr_FR (tiếng Pháp từ Pháp) và fr_CH (tiếng Pháp).

Mã ngôn ngữ là một phần của ISO 639-1 standard và mã quốc gia là từ ISO 3166 standard.

3

Một thời gian ngắn, bạn nên sử dụng hai mã chữ cái cho hầu hết các trường hợp, như được chỉ định bởi BCP 47 codes.

Lâu hơn, như được chỉ định bởi official Apple documentation bạn có nghĩa vụ phải sử dụng BCP 47 codes.

Giờ đây, quy tắc chung là sử dụng mã ngắn nhất có thể có ý nghĩa. Bạn nên sử dụng điều này vì điều này tối đa hóa mức độ phù hợp cho các miền địa phương tương tự.

Ví dụ: nếu bạn bản địa hóa bằng tiếng Nga, bạn chỉ nên sử dụng mã ru thay vì các lựa chọn thay thế như ru-RU. Điều này rất quan trọng vì nếu bạn sử dụng mã ngắn, người dùng từ các quốc gia khác đang nói tiếng Nga sẽ thấy đơn đăng ký của bạn bằng tiếng Nga. Nếu không, bạn sẽ chỉ hiển thị tiếng Nga cho những người sử dụng tiếng Nga từ Nga.

Nếu bạn muốn biết thêm thông tin về mã ngôn ngữ bao gồm mã số khuyến cáo cho các ngôn ngữ sử dụng nhiều nhất, bạn nên đọc một bài viết ngắn tôi đã viết hơn một năm trước http://blog.i18n.ro/simplified-locale-codes/ - Hãy nhớ rằng có một số thủ thuật liên quan đến Bồ Đào NhaTrung Quốc nhưng đối với các ngôn ngữ khác, bạn có thể sử dụng danh sách bên dưới.

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

1

Câu hỏi này đã được trả lời nhưng tôi nghĩ rằng làm bối rối hơn bởi nhiều nguồn khác nhau. Thực tế là iOS có 30 ngôn ngữ mà nó sẽ nhận ra là thư mục .lproj. Nó sẽ không chấp nhận bất kỳ mã vùng nào, do đó, nói với nó fr-CA sẽ không giúp bạn có được tiếng Pháp của Canada, nhưng thay vào đó sẽ chỉ đơn giản là sử dụng chuỗi tiếng Anh của bạn. Bạn cần sử dụng mã hai chữ cái cho ngôn ngữ (en.lproj, fr.lproj, es.lproj, de.lproj, v.v.). Ngoại lệ duy nhất đối với quy tắc này là tiếng Trung, là tiếng Trung Quốc, nên là zh_Hans cho tiếng Trung giản thể và zh_Hant cho tiếng Trung phồn thể.

Điều làm cho điều này trở nên khó hiểu hơn là iTunes App Store có tập hợp ngôn ngữ khác nhau và nó nhận ra nhiều phiên bản vùng như tiếng Anh và tiếng Bồ Đào Nha.

Có một đầy đủ (và cập nhật) danh sách các ngôn ngữ được hỗ trợ và mã ngôn ngữ hiện tại cho cả iOS và iTunes ở đây:

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

+0

Không biết khi nào điều này thay đổi, nhưng có thể thực hiện các bản dịch ngôn ngữ theo vùng cụ thể như tiếng Pháp của Canada ngay bây giờ. Trong XCode, vào Project, Info, Localizations, nhấn nút +, sau đó cuộn xuống cuối danh sách ngôn ngữ cho đến khi bạn đến Other với mũi tên phải, điều này sẽ mở ra một danh sách lớn đẹp bao gồm các biến thể khu vực cho ngôn ngữ. –

Các vấn đề liên quan