Yii: GetText _() против Yii::t()

При переводе строк в Yii с помощью GetText мы должны использовать синтаксис Yii::t($category,'message') или _('message') gettext?

И тогда как мы втянем строки в PO-файл?


person mae    schedule 28.05.2014    source источник


Ответы (4)


Вы можете поместить строки через приложение POEdit: http://poedit.net/ Это позволит вам сканировать файлы вашего проекта и автоматически добавьте все необходимые строки в файл .po.

Если дело доходит до разницы между Yii::t($category,'message') и _('message') - вы должны использовать Yii::t($category,'message'). GetText _('message') работает с совершенно другой структурой каталога po/mo.

Лично я использую POEdit в качестве сканера строк, и он прекрасно работает.

person Tomasz Szuba    schedule 04.02.2015

Я всегда использую Yii::t('xx','yy') для большего контроля над локализацией. Я могу разделить больше файлов под

message/LANG/file.php

с участием

<?php
  return array(
    'xx' => 'localized',
  );
?>

Это для Yii Framework 1.x

person carlo denaro    schedule 15.04.2015

Я использую это так:

когда у меня есть, например:

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

person Ivošš    schedule 10.02.2015

Вам нужно использовать 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

person Azraar Azward    schedule 22.06.2018