К какому стандарту относятся языковые коды вида "ж-Ханс"?
через REST API приложения я получаю коды языков следующей формы:ll-Xxxx
.
- два языка строчных букв (выглядит как ISO 639-1),
- тире
- код идет до четырех букв, начиная с прописной буквы (выглядит как ISO 639-3 макроязыка код).
примеры:
az-Arab Azerbaijani in the Arabic script
az-Cyrl Azerbaijani in the Cyrillic script
az-Latn Azerbaijani in the Latin script
sr-Cyrl Serbian in the Cyrillic script
sr-Latn Serbian in the Latin script
uz-Cyrl Uzbek in the Cyrillic script
uz-Latn Uzbek in the Latin script
zh-Hans Chinese in the simplified script
zh-Hant Chinese in the traditional script
от того, что я нашел в интернете:
[ISO 639-1] является первой частью серии международных стандартов ISO 639 для кодов языков. Часть 1 охватывает регистрацию двухбуквенные коды.
и
ISO 639-3 международный стандарт для кодов языка. При определении некоторых из его языковых кодов,некоторые определяются как макроязыки [...]
теперь мне нужно написать кусок кода чтобы убедиться, что я получаю действительный код языка.
Но поскольку я получаю смесь 639-1 (язык 2 букв) и 639-3 (макроязык), какой стандарт я должен придерживаться ? Принадлежат ли эти коды к какому-то смешанному (возможно, общему) стандарту ?
2 ответов
текущая ссылка для идентификации языков IETF В ПП 47, который объединяет IETF RFC 5646 и RFC 4647.
коды формы ll-Xxxx
объединить ISO 639-1 язык код (две буквы) и ISO 15924 код скрипта (четыре буквы). BCP 47 рекомендует писать коды языков строчными буквами, а коды сценариев - "строчными буквами с заглавной буквой", но это в основном для удобства чтения.
BCP 47 также рекомендует, чтобы язык код должен быть самый короткий доступный тег ISO 639. Итак, если язык представлен в обоих ISO 639-1 (две буквы) и ISO 639-3 (три буквы), чем вы должны использовать ISO 639-1.
после RFC-5646 (на стр. 4) языковой тег может быть написан в следующей форме:[язык]-[скрипт].
- язык (2 или 3 буквы) является кратчайшим ISO 639 код
- скрипт (4 буквы) - это ISO 15924 код (см. Также раздел RFC)