Вопрос

Я ищу совместимый со стандартами способ хранения многоязычного контента для веб-приложения.До сих пор я использовал свои собственные функции "translate ()", которые считывают данные из файла или таблицы словаря в базе данных.Однако поддержание актуальности словарей в таблице базы данных является очень громоздким делом, если вы работаете с разными копиями веб-приложения.

Мне нравится gettext, потому что для этого доступно множество инструментов.Однако я разрабатываю приложения для разных платформ.Я абсолютно не желаю иметь дело с дрянными способами setlocale() и consorts, а именно с десятками различных вариантов строк локали, отличающихся от системы к системе, которые вам нужно предусмотреть, чтобы заставить их работать.Никогда в жизни.У меня есть набор языков - скажем, de, en и es - и я хочу загрузить соответствующий словарь и работать с _(), ни разу не касаясь setlocale() или bindtexdomain().

Возможно ли это каким-то образом с помощью gettext?Или кто-нибудь знает другое простое, маленькое, быстрое (!) решение i18n для PHP, которое может работать с файлами .po / .mo, предпочтительно не требуя расширения PHP?

Это было полезно?

Другие советы

Этот метод должен работать даже с нестандартными локалями:

$locale = 'someWeirdLocale';

putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');

Наслаждайтесь!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top