При переводе строк в Yii с помощью GetText мы должны использовать синтаксис Yii::t($category,'message')
или _('message')
gettext?
И тогда как мы втянем строки в PO-файл?
При переводе строк в Yii с помощью GetText мы должны использовать синтаксис Yii::t($category,'message')
или _('message')
gettext?
И тогда как мы втянем строки в PO-файл?
Вы можете поместить строки через приложение POEdit: http://poedit.net/ Это позволит вам сканировать файлы вашего проекта и автоматически добавьте все необходимые строки в файл .po.
Если дело доходит до разницы между Yii::t($category,'message') и _('message') - вы должны использовать Yii::t($category,'message'). GetText _('message') работает с совершенно другой структурой каталога po/mo.
Лично я использую POEdit в качестве сканера строк, и он прекрасно работает.
Я всегда использую Yii::t('xx','yy') для большего контроля над локализацией. Я могу разделить больше файлов под
message/LANG/file.php
с участием
<?php
return array(
'xx' => 'localized',
);
?>
Это для Yii Framework 1.x
Я использую это так:
когда у меня есть, например:
Yii::app()->language = en
в папке messages
у меня есть папка en
и в этой папке у меня есть файл lang.php
в этой папке lang.php
у меня есть, например:
<?php
return array(
'example1'=>'search',
'example2'=>'news',
);
затем, когда мне нужно перевести вызов:
<?=Yii::t('lang','example1');?>
и результат: search
когда я меняю: Yii::app()->language = de
, у меня должно быть messages/de/lang.php
и на этом фолере у меня есть:
<?php
return array(
'example1'=>'Suche',
'example2'=>'Nachrichten',
);
затем, когда мне нужно перевести вызов:
<?=Yii::t('lang','example1');?>
результат: Suche
Вам нужно использовать Yii::t() для переводов. с помощью встроенной команды yiic message
вы можете сгенерировать весь текст в языковой файл.
Пример-
Yii::t('app', 'Hello World');
Yii::t('email', 'Welcome');
Это создаст 2 файла app.php и email.php внутри вашего каталога сообщений. сообщения/en/app.php и сообщения/en/email.php
пожалуйста, найдите больше информации о переводах Yii здесь
https://www.yiiframework.com/doc/guide/2.0/en/tutorial-i18n https://www.yiiframework.com/doc/guide/1.1/en/topics.i18n