I18n в Kohana 3.x: перевод строк, содержащих дополнительные значения, такие как дата / время - PullRequest
0 голосов
/ 03 декабря 2010

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

// 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 какую-то локализацию, где я могу добавлять значения во время выполнения?

1 Ответ

4 голосов
/ 03 декабря 2010

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

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