Мультиязычность в JS скриптах: как сделать правильно?
Друзья,
Посоветуйте правильные подходы для создания JS скриптов с поддержкой нескольких языков в строковых параметрах внутри кода скрипта (для создания мультиязычного сайта).
Желательно, без переназначения обработчика js-файлов (AddHandler)...
Заранее, всем Спасибо.
--------------
UPD1: четкий ответ тут.
Можно создать отдельные языковые файлы (.js или .ini), и в зависимости от условия загружать нужный файл. А в скрипте использовать константы \ переменные, определенные в файле. Например:
@EgorKluch не хотелось бы множить потоки при выводе сообщений, логику которых обрабатывает клиентский скрипт без обращения к серверу...
Когда идет взаимодействие JS с сервером (через ajax) - тут полностью согласен.
Поэтому и ищу оптимальный вариант по нагрузке на сеть, клиента и сервер...
@xmoonlight вы можете передать переменные из php в js напрямую, сформировав в модели необходимый код. Но это не такой красивый метод, как использование файлов.
@Heian пока вижу для себя подход:
1. языковой версии файла нет => {парсинг JS -> замена нужных строк -> кэширование на диск с добавлением языка к имени...}
2. грузим из кэша готовый файл
@xmoonlight все очень просто. Если вы решили хранить локализацию в базе или в отдельном php-файле, то при каждом изменении этого файла перегенерируете результирующий js-файл.
$langMap = ['header' => 'Заголовок', ....];
// проверяете дату изменения файла, записываете ее в любое хранилище
file_put_contents('locale.ru.js', json_encode($langMap));
@zoonman ну да, как раз так и планировал (мой коммент выше), только вначале - сформировать массив строк через парсинг JS-скрипта для прозрачной локализации (не массивом), т.к. лишний раз "рыться" в "чужих" js-библиотеках не очень хотелось бы....