FuelPHP:动态更改语言

时间:2012-12-20 09:13:42

标签: multilingual fuelphp

我正在尝试编写支持多种语言的FuelPHP(v1.4)模块。 我有以下目录结构:

fuelphp/
  app/
    modules/
      mymodule/
        lang/
          en/
            signup.php
          te/
            signup.php
        ...
      ...
  ...

在全局config.php文件中,我将language和language_fallback参数设置为en

'language' => 'en', // Default language
'language_fallback'  => 'en', // Fallback language when the file isn't available

当我尝试通过

更改模块控制器中的语言时
\Config::set('language', 'te');

echo \Lang::get('key');始终返回空字符串

如果我直接在te文件中将语言参数更改为config.php,它会按预期工作。

我模块的控制器如下:

<?php
namespace mymodule;
class Controller_Mymodule extends \Controller {
    /**
     * Show signup form
     */
    public function get_signup() {
            \Config::set('language', 'te');
            \Lang::load('signup');

            $view = \View::forge('mymodule/signup');

            return $view;
    }
}
?>

这是一个错误,还是我做错了什么?

2 个答案:

答案 0 :(得分:0)

尝试调用echo \ Lang :: get('signup.key'); 我有同样的问题,这为我解决了。

答案 1 :(得分:0)

尝试执行Lang :: load('signup');而不是\ Lang :: load('signup');

根据我的经验,\ Lang :: load('signup');是指Lang :: load('signup')中应用程序中的全局lang;应参考模块中的那个。