Nelius
кипарис во дворе
Более грамотная реализация мультиязычности, XML
Так как faq на профилактике, а в поиске толком ничего не нашел по конкретно моему случаю...
Обращаюсь к гуру со следующим вопросом:
У меня в CMS следующая реализация мультиязычности:
Пример:
<?xml version="1.0"?>
<data>
<ru>
<login_button>Войти</login_button>
<err_login>Неверный логин</err_login>
<err_pass>Неверный пароль</err_pass>
</ru>
<en>
<login_button>Login</login_button>
<err_login>Incorrect login</err_login>
<err_pass>Incorrect password</err_pass>
</en>
</data>
Пример сильно упрощенный, но смысл я думаю передает.
Далее в скрипте я использую:
Далее могу пихать в шаблон:
В этом случае данные храняться в БД.
Возможно такая реализация будет работать быстрее:
Файл: ru.lng
Файл: en.lng
Далее в скрипте:
И просто юзаем:
...
Или третий вариант храним контент как он реализован во 2 варианте в БД а после доставания его оттуда юзаем eval ...
Как будет правильней и какой вариант будет быстрее при большой нагрузке
P.S. В первом варианте, в примере, реализация не лучшая ибо в память грузятся данные всех языков... если кто знает как сделать лучше подскажите, так как с XML я только начал работать.
Заранее спасибо.
Так как faq на профилактике, а в поиске толком ничего не нашел по конкретно моему случаю...
Обращаюсь к гуру со следующим вопросом:
У меня в CMS следующая реализация мультиязычности:
Пример:
<?xml version="1.0"?>
<data>
<ru>
<login_button>Войти</login_button>
<err_login>Неверный логин</err_login>
<err_pass>Неверный пароль</err_pass>
</ru>
<en>
<login_button>Login</login_button>
<err_login>Incorrect login</err_login>
<err_pass>Incorrect password</err_pass>
</en>
</data>
Пример сильно упрощенный, но смысл я думаю передает.
Далее в скрипте я использую:
PHP:
$lang = new SimpleXMLElement($xml_iz_primera);
PHP:
$lang->$cfg['site_lang']->login_button
Возможно такая реализация будет работать быстрее:
Файл: ru.lng
PHP:
$lang['login_button'] = 'Войти';
$lang['err_login'] = 'Неверный логин';
$lang['err_pass'] = 'Неверный пароль';
PHP:
$lang['login_button'] = 'Login';
$lang['err_login'] = 'Incorrect login';
$lang['err_pass'] = 'Incorrect password';
PHP:
include($cfg['site_lang'].'.lng');
PHP:
$lang['login_button']
Или третий вариант храним контент как он реализован во 2 варианте в БД а после доставания его оттуда юзаем eval ...
Как будет правильней и какой вариант будет быстрее при большой нагрузке

P.S. В первом варианте, в примере, реализация не лучшая ибо в память грузятся данные всех языков... если кто знает как сделать лучше подскажите, так как с XML я только начал работать.
Заранее спасибо.