Skip to main content

Ланцюжки резервних локалей для кожного фреймворку

Більшість фреймворків i18n повністю пропускають батьківські локалі. Якщо для користувача pt-BR немає ключа, він бачить англійський текст, а не цілком придатний переклад pt-PT. Бібліотеки locale-chain розв’язують цю проблему за допомогою налаштовуваних ланцюжків із глибоким злиттям.

Проблема: фреймворки пропускають батьківські локалі

Ви випускаєте переклад pt-PT із 2,000 ключів. Ваш файл pt-BR містить 200 регіональних замін. Що відбувається з 1,800 однаковими ключами? Більшість фреймворків показують текст резервної локалі, зазвичай англійський, замість батьківської локалі. Ваші бразильські користувачі бачать суміш португальської та англійської — недоладний інтерфейс, через який Ваш застосунок здається незавершеним.

Це не рідкісний виняток. Із цією проблемою стикається кожен застосунок із регіональними варіантами (zh-Hans/zh-Hant, es/es-419, en-US/en-GB, fr/fr-CA). Стандартна поведінка майже кожного фреймворку i18n неправильна для регіональних локалей.

Як працює резервний механізм із глибоким злиттям

Коли користувач вибирає pt-BR, бібліотека завантажує повідомлення з кожної локалі в ланцюжку резервних локалей і глибоко об’єднує їх у порядку пріоритету. Регіональні ключі замінюють батьківські, а батьківські заповнюють прогалини. У результаті формується повний набір повідомлень без жодного відсутнього перекладу.

Приклад: pt-BR визначає 'cart.checkout' як 'Finalizar compra'. pt-PT визначає 'cart.checkout' як 'Concluir compra', а 'cart.empty' — як 'Carrinho vazio'. Об’єднаний результат для pt-BR використовує текст оформлення покупки з pt-BR, але для повідомлення про порожній кошик бере переклад із pt-PT замість англійського тексту.

Доступно для 17 фреймворків

Для кожного фреймворку існує окрема бібліотека locale-chain, яка природно інтегрується з його системою i18n. Установіть пакет і налаштуйте свої ланцюжки — глибоке злиття автоматично виконуватиметься під час завантаження.

Спробуйте i18n Agent зараз

Перетягніть сюди файл для перекладу

JSON, YAML, PO, XML, CSV, Markdown, Properties

або натисніть, щоб вибрати

Цільові мови

Реєстрація не потрібнаМиттєвий розрахунок

Запитання про резервні локалі