Мова залежить від того, де вона розмовляється (doh!), Тому коди мови та мови відображають цю реальність. zh
є основним мовним кодом, але оскільки є дві його основні форми, існують zh_Hans
і zh_Hant
, але вони все ще є лише мовними кодами, а не мовами.
Місцезнаходження
Щоб повністю вказати, яка мова використовується в тому чи іншому місці, код країни все ще повинен бути суфіксом, таким чином, як для спрощеної , так zh_Hans_HK
і zh_Hant_HK
для традиційної китайської, відповідно, як говорять у Гонконгу.
Насправді, реальність така, що у багатьох країнах часто потрібно щось більш конкретне, ніж код країни, але це, ймовірно, експоненціально збільшить складність та підтримку баз даних, таких як CLDR, а також підтримку інфраструктури для подачі в неї, як-от вилучення даних про місцезнаходження IP , є загальнодоступним або недостатньо точним.
Виправлений текст
Тепер, якщо код просто вказує, який набір фіксованих рядків використовувати в інтерфейсі користувача, або навіть цілі набори сторінок на сайті, суфікс країни насправді не є необхідним, якщо не існує декількох місць, де мова змінюється досить істотно (інформація на основі місцезнаходження), щоб турбуватися створенням цілого окремого набору ресурсів.
Чим більший набір ресурсів, тим більша ймовірність того, що буде потрібен мовний код, заснований на мові [у цьому контексті, буде потрібен лише атрибут мови, а не справжній регіон, тому ви можете назвати його як вам подобається!] робити це потрібно лише тоді, коли це необхідно.
Значення на льоту
Однак, якщо ви хочете відформатувати певні значення змінних, такі як дати, час, валюти та цифри, на льоту, локалі стають важливими, оскільки всі інструменти, що підтримують таку функціональність (наприклад, на основі даних Unicode CLDR), очікують їх. Мова для них повинна бути окремим параметром коду, для якого налаштована побудована власною мовою інтерфейсу, якщо ви не хочете створити набір ресурсів для кожної відомої локалі та підтримувати їх до нудоти!
Мовні засоби браузера
Зауважте, що при вказівці мови для веб-сторінки, яку можна редагувати, як у вікнах введення, а для поля ввімкнено перевірку правопису в атрибутах або css, мовні засоби браузера будуть перевіряти правопис поля відповідно до цієї локалі.
Критерії
Ви повинні чітко розуміти, що надає набір ресурсів, тому враховуйте:
- Виправлені рядки? Тільки мова.
- Форматування на льоту? Місцевість.
- Перевірка правопису в середовищі перегляду? Місцевість.
- Цілі сторінки / підсайт? Тільки мова, інакше локаль (як варіант мови), якщо потрібен суттєво інший вміст.
Електронна таблиця для мінімізації накладних витрат на обслуговування
Я використовую електронну таблицю для зберігання рядків інтерфейсу, де кожен код мови має батьківський код, так що комірка для своєї версії рядка має формулу, яка отримує свій рядок від батьківського. Щоб створити власний рядок для цієї мови та рядка, я просто перезаписую формулу комірки точним текстом. Це мінімізує обсяг обслуговування ресурсів. В кінці я запускаю макрос, який генерує повний файл ресурсів для кожної мови.