Какой самый простой способ использовать gettext в сочетании с smarty, есть ли какая-нибудь симуляционная функция, доступная в php: _('hello world');
?
Спасибо,
Какой самый простой способ использовать gettext в сочетании с smarty, есть ли какая-нибудь симуляционная функция, доступная в php: _('hello world');
?
Спасибо,
Мне действительно не хватало поддержки Smarty для (n) gettext. И хотя существующие плагины, кажется, справляются со своей задачей, я все же подумал, что стоит попробовать.
Я только что выпустил: http://code.google.com/p/smarty-gettext/
Может быть, это кому-нибудь поможет. Отзывы и т. Д. Более чем признательны.
Похоже, доступен smarty-gettext
плагин: http://sourceforge.net/projects/smarty-gettext/, последнее обновление - май 2011 г. http://smarty.incutio.com/?page=SmartyGettext а>
{lang en="coffee" de="Kaffee"}
. Однако таким образом все строки находятся в файлах - YMMV.
- person johndodo; 01.03.2012
Есть много способов добиться перевода страницы с помощью Smarty.
Я создаю несколько .conf
файлов, содержащих что-то вроде:
hello_world = "Hello! World!"
my_name_is = "They call me"
hello_world = "Hallo! Wereld!"
my_name_is = "Ik heet"
hello_world = "Bonjour! Tout le Monde!"
my_name_is = "Ils m'appellent"
Теперь у вас есть 2 варианта:
.conf
из файла .tpl
:{config_load file="en.conf"}
<html>
<body>
<h1>{#hello_world#}</h1>
<p>
{#my_name_is#}
</p>
</body>
</html>
{config_load file="nl.conf"}
<html>
<body>
<h1>{#hello_world#}</h1>
<p>
{#my_name_is#}
</p>
</body>
</html>
$configFile = 'fr.conf';
// Smarty Version 2
$this->smarty->config_load($configFile);
//Smarty Version 3
$this->smarty->configLoad($configFile);
Я надеюсь, что это сработает и для вас.
gettext
, а не о том, как сделать i18n в smarty.
- person DevZer0; 26.06.2014
Пожалуйста, поправьте меня, если я ошибаюсь. Я использую Smarty 3.1, добавленный в мой проект через композитор. И похоже, что я могу выполнить любую функцию php в моем файле .tpl. Например:
<p>post_max_size: {ini_get('post_max_size')}</p>
это дает мне:
<p>post_max_size: 8M</p>
Такое поведение заставляет меня думать, что я должен уметь просто:
<p>{_("I like the way it works")}</p>
Первый тест не показывает ошибок и выводит:
<p>I like the way it works</p>
У меня еще нет файла перевода, и я не знаю, будет ли этот вызов распознан xgettext, но сейчас я проведу несколько тестов и скажу вам, работает ли он.
вы можете использовать функцию модификатора Smarty, как описано здесь: https://blog.ueffing.net/post/2013/07/19/php-smarty-a-modifier-for-internationalization-tool-gettext/ (предполагается установка gettext , конечно)
{$var|gettext}
не сработает? К моменту выполнения кода smarty все настройки локали должны быть выполнены. - person Aleks G   schedule 06.10.2011