rework
@rework
Помог ответ? В благодарность отметь его решением

Как реализовать локализацию php и javascript?

Есть самописная CMS, все русские фразы, названия кнопок, сообщения и т.д. сейчас вшиты в коде, как php, так и javascript. На данный момент поставил задачу сделать нормальные пакеты локализации, по сему хочется выбрать какой-то универсальный метод, подходящий как для php, так и для javascript. Подскажите, пожалуйста, механизм реализации или конкретные библиотеки для этих целей.
  • Вопрос задан
  • 2932 просмотра
Решения вопроса 1
alexiusp
@alexiusp
senior frontend developer
Насчёт библиотек не знаю.
Я делаю просто: выношу все тексты в .ini или .json файл. Этот файл потом считывается php скриптом.

1. Для .ini файла там есть прямо специальная функция, которая считывает файл и делает из него ассоциативный массив. Этот массив с текстами (обёрнутый в класс разумеется) используется как самим php скриптом, так и во фронтенде - вставляется в виде json в глобальную переменную в самом начале страницы, до загрузки всех остальных джаваскриптов.

2. С json файлом тоже не должно быть проблем. Его немного сложнее считывать в php, зато можно не заморачиваться о вставке его в страницу - его можно потом ajax-запросом загрузить, когда фронтенд загрузится и начнёт работать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VovanR
@VovanR
Фронт-энд Вэб-разработчик
Как выше пишут - используй Gettext
Есть кросплатформленная программа для работы с файлами локализации Poedit. Используется в Django, CakePHP, WordPress
Для JS можно из полученной информации генерировать json, например. В Django, например, выдается глобальная функция gettext и ngettext, которые можно использовать в самих скриптах.
Ответ написан
gluck59
@gluck59
Виртуальный глюк
Используйте шаблонизатор типа Smarty или чего-нибудь подобное.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 18:19
20000 руб./за проект
29 мар. 2024, в 18:08
2500 руб./за проект
29 мар. 2024, в 17:51
40000 руб./за проект