0

我正在尝试编写一个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;
    }
}
?>

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

4

2 回答 2

0

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

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

于 2013-05-12T14:56:05.600 回答
0

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

于 2013-01-19T00:50:22.643 回答