локализация — PHP setlocale / gettext и расширение intl работают вместе?

У меня установлено расширение php intl для нормализации строк и получения названий языков и стран для выбранного языка. У меня есть 2 поля выбора, одно из которых позволяет выбрать страну, в которой находится человек, и выбрать язык для сайта. Теперь я использовал функцию _ () для перевода сайта.

Теперь, когда я делаю ./locale -a, чтобы увидеть все поддерживаемые языки, и когда я сопоставляю это с локалями, поддерживаемыми расширением intl (intlcal_get_available_locales ()), есть много различий. Я пытался сопоставить их, и это вроде работает, но я не могу поверить, что это предпочтительный метод для этого.

Я борюсь с этим очень долго. Как я могу лучше всего решить это. Что я делаю неправильно? Есть ли лучший способ сделать локализацию и перевод.

Для каждой возможной страны в ISO 3166 я сопоставил локали из расширения intl. Для стран, которые не указаны в расширении intl, я сам их сопоставил. Например, код страны AQ я сопоставил с nb_NO. Я также попытался отобразить основной языковой стандарт для каждой страны, в которой имеется несколько языковых стандартов.

Следующие проблемы, с которыми я столкнулся:

  • Если я хочу поддерживать арабский язык (ar), существует nog ar_AR, поэтому я должен использовать, например, ar_AE для использования в setlocale, в противном случае я не могу установить там переводы для ar.

  • Локаль mn_MN поддерживается в setlocale, но не поддерживается в расширении intl.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]