Как использовать CodeIgniter для создания сайта / приложения на двух языках, получающего данные из MySQL - PullRequest
1 голос
/ 04 сентября 2011

Как мне работать с языками в CodeIgniter?Это действительно уже внутренний ресурс (помощник или библиотека) или мне нужен плагин, чтобы он работал?Или это так просто, что я не могу поверить (или достаточно глуп, чтобы не поверить)?

Ответы [ 2 ]

3 голосов
/ 04 сентября 2011

Просто следуйте этому URL Класс языка Codeigniter

Документация CI очень хорошая, она научит вас всему очень простому и изящному способу.

2 голосов
/ 04 сентября 2011

Два способа: интегрированный и более симпатичный, который не всегда возможно использовать.

Если у вас есть сервер, который не является многопоточным на PHP (например, если вы используете PHP-FPM), вы можете использовать популярный gettext, который позволяет очень легко переводить строки с приложениями, такими как PoEdit или бесплатные онлайн-переводчики онлайн, такие как Transifex .

Код, который следует, включает gettext. Поместите это где-нибудь перед контроллером. В контроллере конструктор достаточно хорош.

// get the current language code
$locale = get_setting('fs_gen_lang');
putenv("LANG=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("default", FCPATH . "assets/locale");
textdomain("default");

Тогда у вас будет такая папка:

/my_ci_app/assets/locale/en_UK/LC_MESSAGES/default.po
/my_ci_app/assets/locale/en_UK/LC_MESSAGES/default.mo

и, возможно, также базовый файл, из которого будут исходить переводы, и который при обновлении обновит все остальные переводы. Я оставляю это в:

/my_ci_app/assets/locale/default.pot

Иначе, вы можете использовать встроенную языковую систему, которая работает со строками и массивами. На мой взгляд, это может быть неудобно, но этого может быть достаточно, если в вашем программном обеспечении мало строк. Есть также сайтов , которые помогают переводить таким образом, как это делает CodeIgniter .

Просто следуйте инструкциям в языковой библиотеке и (возможно, излишне) помощнику:

http://ellislab.com/codeigniter/user_guide/libraries/language.html

http://ellislab.com/codeigniter/user_guide/helpers/language_helper.html

...