2012-11-02 2 views
0

У меня возникли проблемы с функциональностью I18n в Kohana 3.3Использование функции I18n в Kohana 3.3

Моя структура папок I18n выглядит следующим образом

i18n/

  • ан/
    • us.php
  • zh/
    • hk.php
    • cn.php

Проблема я получаю то, что везде, где я прочитал это должно быть возможным, чтобы загрузить язык, как так i18n::lang('en-us'); потому АНИ утверждает, что она взорвется строка на «-» характер, поэтому цель по умолчанию язык, на «ан-нас» результаты в поиске для следующих файлов:

/application/i18n/en.php 
/application/i18n/en/us.php 

Это только кажется, чтобы загрузить правильный язык файлы, когда я использую i18n::lang('en/us'); вместо i18n::lang('en-us');

ответ

1

Работает для меня. Эти вызовы равно для Кохана:

I18n::lang('en-us'); 
I18n::lang('en us'); 
I18n::lang('en_us'); 

При использовании «ан/нас» значение, I18n не загружать файл i18n/en.php, только i18n/en/us.php.

я могу предложить только одна причина ваших проблем:

Вы используете __() функцию, которая игнорирует переводы для языка по умолчанию («ан-нас» является жёстко). Итак, когда вы вызываете I18n :: lang ('en/us'), язык по умолчанию по-прежнему остается английским, но отличается от «en-us». Маленький хак :)

Вы можете расширить I18n класса с APPPATH/classes/I18n.php файлом (стандартный Kohana путь), а также добавить свою собственную версию для этой функции:

// translate always! 
function __($string, array $values = NULL, $lang = 'en-us') 
{ 
    $string = I18n::get($string); 

    return empty($values) ? $string : strtr($string, $values); 
} 
+0

К сожалению, я все еще довольно новый для всего этого. Итак, это как [this] (http://ideone.com/nuUm76)? и я положил его в 'APPPATH/classes/I18n.php'? – ChaoticLoki

+0

Это не метод класса. http://ideone.com/J81rTY – biakaveron

+0

Ой, подождите, глупо мне, ха-ха слишком устал, когда я это написал, не знаю, почему я думал, что это классный метод. – ChaoticLoki

Смежные вопросы