лучший способ сделать codeigniter веб-сайт многоязычным. вызов от массивов Ленга зависит от сессии Ленга?

“American’s не имеют никакого прошлого и никакого будущего, они живут в расширенном подарке. ” Это описывает состояние вычислений. Мы живем в 80’s расширенный в 21-й век. Единственной вещью that’s измененный является размер. Alan Kay

Источник: Alan Kay: действительно ли Информатикой является Оксюморон?

81
задан designer-trying-coding 25 August 2009 в 13:52
поделиться

4 ответа

Вы видели языковую библиотеку CodeIgniter ?

Языковой класс предоставляет функции для получения языковых файлов и строк текста для интернационализации.

В системной папке CodeIgniter вы найти один названный язык, содержащий множества языковых файлов. Вы можете создать свой собственные языковые файлы по мере необходимости, чтобы для отображения ошибок и других сообщений в другие языки.

Языковые файлы обычно хранятся в ваш системный / языковой каталог. Поочередно вы можете создать папку под названием language внутри папки вашего приложения и храните их там. CodeIgniter будет смотреть первым в вашем приложении / языковом каталоге. Если каталог не существует или указанный язык не находится там Вместо этого CI будет искать в вашем глобальном папка system / language.

В вашем случае ...

  • вам нужно создать polish_lang.php и english_lang.php внутри application / language / polish
  • затем создайте свои ключи внутри этого файла (например, $ lang ['hello'] = "Witaj";
  • , затем загрузите его в свой контроллер, например $ this-> lang-> load ('' polish_lang ',' polish ');
  • затем выберите строку вида $ this-> lang-> line (' hello '); Просто сохраните возвращаемое значение этой функции в переменной, чтобы вы могли используйте его в своем представлении.

Повторите шаги для английского языка и всех других языков, которые вам нужны.

93
ответ дан 24 November 2019 в 09:40
поделиться

Also to add the language to the session, I would define some constants for each language, then make sure you have the session library autoloaded in config/autoload.php, or you load it whenever you need it. Add the users desired language to the session:

$this->session->set_userdata('language', ENGLISH);

Then you can grab it anytime like this:

$language = $this->session->userdata('language');
22
ответ дан 24 November 2019 в 09:40
поделиться

При управлении собственно файлами, вещи могут довольно легко рассинхронизироваться, если вы не проявляете особой бдительности. Поэтому мы запустили (бета) бесплатную службу под названием String , которая позволяет вам легко отслеживать свои языковые файлы и сотрудничать с переводчиками.

Вы можете либо импортировать существующие языковые файлы (в формате PHP array, PHP Define, ini, po или .strings) или создать свои собственные разделы с нуля и добавлять контент непосредственно через систему.

Строка полностью бесплатна, поэтому, пожалуйста, проверьте это и расскажите нам, что вы думаете.

На самом деле он тоже построен на Codeigniter! Ознакомьтесь с бета-версией на http://mygengo.com/string

0
ответ дан 24 November 2019 в 09:40
поделиться

вы можете создать такую ​​функцию

function translateTo($language, $word) {  
   define('defaultLang','english');  
   if (isset($lang[$language][$word]) == FALSE)  
      return $lang[$language][$word];  
   else  
      return $lang[defaultLang][$word];  
}
-1
ответ дан 24 November 2019 в 09:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: