Рубрики
Без рубрики

Языковые теги Java и BCP 47

Начиная с Java 7, объект локали Java был обновлен, чтобы взять на себя роль языкового тега в качестве идентификатора… Помеченный как java, i18n.

Начиная с Java 7, объект локали Java был обновлен, чтобы взять на себя роль языкового тега, как указано в RFC 5646 и спецификации BCP 47. Новая поддержка языковых тегов дает разработчикам возможность более точно определять языковые ресурсы. Новый язык, используемый в качестве языкового тега, может использоваться для идентификации языков в этой общей форме:

language[-script][-region]*(-variant)*(-extension)[-privateuse]

Конечно, вы можете продолжать думать о локали как об идентификаторе lang_region_variant , но Java теперь использует спецификацию RFC 5646 для расширения класса локали для поддержки языка, сценария, более широких регионов и даже новых расширений, если это необходимо. И если правила генерации этой строки идентификаторов кажутся устрашающими, вы можете использовать языковой стандарт . Builder класс для создания тега, не беспокоясь о создании неправильного тега.

Основной идентификатор языка – это почти тот же элемент, который вы всегда знали; это ISO 639 2- буквенный код или 3-буквенный код . Спецификация рекомендует использовать как можно более короткий идентификатор.

Сценарий |/является новым. Теперь вы можете добавить соответствующий идентификатор сценария, который определяет систему письма, используемую для данного языка. Люди могут использовать несколько систем письма для написания языков. Например, носители японского языка/писатели могут использовать 3 или более различных письменности для японского языка: кандзи, хирагана, катакана и даже “ромадзи” или латинский шрифт. Сербский – это еще один язык, который часто пишется латинскими или кириллическими буквами.

Идентификатор регион когда-то ограничивался 2-буквенными кодами ISO 3166, но теперь вы также можете использовать 3-значные коды макрорегионов Организации Объединенных Наций в части региона языкового тега. Макрогеографический регион определяет более крупный регион, включающий более одной страны. Например, ООН в настоящее время определяет Восточную Европу как макрорегион 151 и включает в себя 10 стран.

Наконец, вы можете использовать вариант , , расширение и подтеги частного использования для предоставления еще большего контекста для языкового тега. См. RFC 5646 для получения более подробной информации об этом. Я предлагаю вам также использовать язык

Взгляните на Локальную документацию для получения всех подробностей об использовании этих новых функций. Они определенно дают вам гораздо больше контроля над тем, как вы определяете и используете языковые ресурсы в своих интернационализированных приложениях.

Оригинал: “https://dev.to/joconner/java-and-bcp-47-language-tags”