Когато превеждаме низове в 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'). _('message') на GetText работи с доста различна 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 във вашата директория за съобщения. messages/en/app.php & messages/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