Intereting Posts
Facebook: разместить изображение и описание на стене и в альбоме страницы через php PHP MySQL SQL-парсер (INSERT и UPDATE) пост-ассоциативный массив с использованием jquery ajax Есть ли способ получить название категории в нижнем регистре? Иерархическое хранилище MySQL: поиск по всем родителям / бабушкам и т. Д. узлам задан идентификатор дочернего узла? «Сериализация« SimpleXMLElement »не разрешена при сохранении в WordPress post_meta Yii2: Пример ActiveQuery и в чем причина генерации класса ActiveQuery отдельно в Gii? событие onclick открывает окно и в поле отправляет его ссылки на php-функцию, которые устанавливают некоторые значения в db Я хочу использовать несколько функций select2 onchange динамически Проблема с публикацией на странице Facebook с использованием скрипта PHP как учетной записи страницы Исключение PHP PDO: не удалось найти драйвер объекты foreach loops & stdclass Как сравнить таблицы базы данных и показать пользователю Как получить идентификатор увеличения отправления по идентификатору заказа в Magento Функция входа в OpenCart

Рекомендуемый способ хранения строк для многоязычного PHP-приложения

Обычно я связываю строки с ключевыми словами, которые их описывают, а затем сохраняет их в таблице базы данных со структурой id int, id varchar(16), language char(2), string varchar . Затем я создаю функцию обертки PHP для извлечения каждой строки в зависимости от текущего языка посетителя.

Мне сказали (и читали где-то, я думаю), чтобы использовать встроенные методы PHP для обработки интернационализации. Но я не нашел действительно «убедительной» информации о том, почему она должна быть более подходящей, чем моя база данных.

Каков наиболее подходящий метод обработки строк интернационализированных веб-сайтов и почему? есть ли тот, который я всегда должен предпочесть для его лучшей производительности? Если есть один с лучшей производительностью, я переключусь на его использование.

Это зависит от ваших целей. Если вам нужны ваши переводы, которые будут обновляться в режиме онлайн пользователями веб-сайтов, то ваш подход к базе данных в порядке. Однако, если переводы должны предоставляться профессиональными переводчиками, тогда лучше отделить перевод с веб-сайта. Использование чего-то типа gettext – лучшая идея в этом случае – вы сможете отправлять файлы .po для перевода, а затем интегрировать их обратно на свой веб-сайт.

Подумайте о целом процессе, управлении переводчиками, управлении изменениями и т. Д.

Как правило, Gettext обычно зависит от настроек локального уровня proccess, и они зависят от установленных в системе локалей. Для веб-приложений рассмотрите возможность использования собственной реализации базы данных наряду с некоторыми уже упомянутыми методами кэширования.

Существует несколько способов кожи кошки. Я думаю, вам дали этот совет, потому что PHP использует настройки клиента для получения языка по умолчанию (хотя, вероятно, вы используете аналогичный метод). В любом случае необходимо сохранить несколько строк. Если вы предпочитаете db сохранять эти строки, то это работает. Если вы не видите каких-либо проблем с производительностью, то идите с ним. Не нужно менять то, с чем вам удобно.