2010-12-03 1 views
0

Я использую Kohana Framework 3.x. Он поддерживает i18n и вы можете локализовать WebApplication путем определения массива для каждого данного языка, как так:I18n в Kohana 3.x: перевод строк, содержащих дополнительные значения, такие как дата/время

// application/i18n/de.php adds support for the german language like so 
return array 
(
    'language' => 'Sprache', 
    'house' => 'Haus' 
    //more key-value pairs 
); 

В моем PHP-код, который я могу получить соответствующий перевод следующим образом:

// define current language somewhere, for example german 
i18n::lang("de"); 

// get the translation for a given key 
echo I18n::get('house'); // the key "house" obviously has to be the same for all languages 

Но что если мне нужно перевести предложения, содержащие дату или время. Например: «2 дня назад» нужно перевести на «vor 2 Tagen» на немецком языке. Я получаю число «2» во время выполнения (это может быть любое заданное число), поэтому я не могу указать его в моем массиве переводов. Поддерживает ли Kohana какую-то локализацию, где я могу добавлять значения во время выполнения?

ответ

4

__() Использование функции от SYSPATH/base.php:

echo __('house'); // just translate 'house' 
echo __(':count days ago', array(':count' => 2)); // translate with values replacement