2

私のモジュールは正常に動作します

'translator' => array(  'locale' => 'de_DE',
            'translation_file_patterns' => array(
                    array(
                    'type'     => 'gettext',
                    'base_dir' => __DIR__ . '/../language',
                    'pattern'  => '%s.mo',

DE.mo EN.mo のような MO ファイルを使用する場合のみですが、ファイルが en_US.mo 、 de_DE.mo の場合、 congik に追加する必要が'text_domain' => __NAMESPACE__あり、私の見解では、$this->translate('some message',__NAMESPACE__) この違いをどのように回避できますか?

4

1 に答える 1

3

テキスト ドメインを使用できますが、必須ではありません。そう:

'translator' => array('locale' => 'de_DE',
    'translation_file_patterns' => array(
        array(
            'type'     => 'gettext',
            'base_dir' => __DIR__ . '/../language',
            'pattern'  => '%s.mo',
        ),
    ),
)

そして、あなたのビュースクリプトで:

<?php echo $this->translate('My Foo'); ?>

テキスト ドメインを使用する場合は、構成ビュー ヘルパーの両方でそれらを使用する必要があります。

'translator' => array('locale' => 'de_DE',
    'translation_file_patterns' => array(
        array(
            'type'        => 'gettext',
            'base_dir'    => __DIR__ . '/../language',
            'pattern'     => '%s.mo',
            'text_domain' => 'domain-1'
        ),
    ),
)

次に、これを行う必要があります。

<?php 
    $this->plugin('translate')->setTranslatorTextDomain('domain-1');
    echo $this->translate('My Foo') 
?>

しかし、どちらの方法も可能です。特定のロケールにテキスト ドメインを使用する必要がある場合は、そうではありません。

于 2012-10-19T12:11:20.213 に答える