JavaScript « Мультиязычность JS сообщений
как сделать мультиязычность js сообщений, на php я определяю какой сейчас язык нужно показывать пользователю, а вот как сделать что сообщения на js были мультиязычными? как я могу догадаться, сообщения нужно хранить в переменных-шаблонах... Можете посоветуете какие-нибудь готовые решения на JS? Желательно на MooTools (можно и на jQuery)
1 ответов
http://code.google.com/p/jquery-utils/wiki/I18N
// Translation templates (always starts with english)
$.i18n('en.datePicker', {
'Month': 'Month',
'Year': 'Year',
'Day': 'Day'
});
$.i18n('fr.datePicker', {
'Month': 'Mois',
'Year': 'Année',
'Day': 'Jour'
});
$.i18n('en');
alert($.i18n('datePicker', 'Year')); // returns "Year"
$.i18n('fr');
alert($.i18n('datePicker', 'Year')); // returns "Année"
// Translation templates (always starts with english)
$.i18n('en.datePicker', {
'Month': 'Month',
'Year': 'Year',
'Day': 'Day'
});
$.i18n('fr.datePicker', {
'Month': 'Mois',
'Year': 'Année',
'Day': 'Jour'
});
$.i18n('en');
alert($.i18n('datePicker', 'Year')); // returns "Year"
$.i18n('fr');
alert($.i18n('datePicker', 'Year')); // returns "Année"
когда у меня немного переменных, которые надо локализовать для js я делаю так:
<?php
echo "<div style=\"display: none;\" id=\"message\">{$LANGVARS[$LANG]['message']}</div>";
//где $LANGVARS - двумерный массив с данными из БД
// $LANG - текущий язык
?>
и сам js
alert($("#message").text());
Я делаю так:
на серверной стороне формирую уже локализованный javascript типа
var text = {"message0":"превед","message1":"пакеда"};
а на клиенте вызываю
alert(text.message0);
мой подход к такому делу - использовать XML и XSLT, генерировать в зависимости от языка определенный JS с сообщениями..насколько это правильно, не знаю, но работает =)
может еще кто чего посоветует?