如何更改特定视图元素的语言?

时间:2014-05-16 14:42:33

标签: cakephp

我正在使用翻译行为功能:__()来翻译事物。它很棒。不幸的是,当我在控制器中更改语言时:

Configure::write('Config.language', 'deu');

它改变了整个网站的语言:(

有没有办法翻译只说特定部分? (在视图中) 例如,整个应用程序的语言是英语。但对于一些$ this->元素,我想用德语。

我的尝试:在视图中我改变了这样的语言:

<?php
    Configure::write('Config.language', 'deu');
    echo __("Hello World");
?>

仅当删除l18n.php中的CakeSession :: read部分时才有效:

    if (empty($language)) {
        // if (CakeSession::started()) {
        //  $language = CakeSession::read('Config.language');
        // }
        if (empty($language)) {
            $language = Configure::read('Config.language');
        }
    }

我可以重写l18n.php所以它对我有用,但它是核心,我不想触摸它。有没有办法在视图中使用CakeSession :: write? cakephp doc说it is not possible

1 个答案:

答案 0 :(得分:0)

您可以在元素文件夹中创建一个名为所需语言的文件夹,然后调用它。

以巴西葡萄牙语为例:<?php echo $this->element('pt_BR/your_element'); ?>