2

Yii で GetText を使用して文字列を翻訳する場合Yii::t($category,'message')、gettext の_('message')構文を使用する必要がありますか?

And then how do we pull the strings into a PO file?

4

4 に答える 4

6

私は常に Yii::t('xx','yy') を使用して、ローカライズをより細かく制御しています。より多くのファイルに分割できます

message/LANG/file.php

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

Yii Framework 1.x の場合

于 2015-04-15T07:19:33.600 に答える
4

POEdit アプリ経由で文字列を配置できます: http://poedit.net/ プロジェクト ファイルをスキャンして、必要なすべての文字列を .po ファイルに自動的に追加できます。

Yii::t($category,'message') と _('message') の違いについては、Yii::t($category,'message') を使用する必要があります。GetText の _('message') は、まったく異なる po/mo カタログ構造で動作します。

私は個人的に POEdit を文字列スキャナーとして使用しており、魅力的に機能します。

于 2015-02-04T10:29:04.800 に答える
2

私はこのように使用します:

たとえば、次の場合:

Yii::app()->language = en

フォルダーmessagesにはIフォルダーがenあり、このフォルダーにはファイルがありますlang.php

このフォルダーlang.phpには、たとえば次のようなものがあります。

<?php
    return array(
        'example1'=>'search',
        'example2'=>'news',
    );

次に、ビューの翻訳を呼び出す必要がある場合:

<?=Yii::t('lang','example1');?>

結果は次のとおりです。search


when I change: Yii::app()->language = de, I must have messages/de/lang.phpand on this foler I have:

<?php
    return array(
        'example1'=>'Suche',
        'example2'=>'Nachrichten',
    );

次に、ビューの翻訳を呼び出す必要がある場合:

<?=Yii::t('lang','example1');?>

結果は次のとおりです。Suche

于 2015-02-10T10:18:40.867 に答える