抬起头来!我正在使用Laravel 4
我计划将我的语言整合到其他api表单中。通过这种方式,与当前集成的其他站点可以获得他们应该加载的语言。
示例语言文件
.....
'greetings' => 'Welcome :name for giving as a time!',
'prompt' => 'Don't forget to verify your email address :emailaddress before proceeding',
.....
情景:
当用户更改当前站点上的语言环境时,集成站点将调用api语言并根据当前站点的当前语言环境加载正确的语言。
顺便说一下,集成网站不想为当前网站做区域设置事务,这就是为什么当前网站进行调整,而集成网站只提供带有修复措辞的修复模板。
所以我的问题是:
我解决了这个问题,并且我能够为该语言制作API。
// API URL:
/language/integrated_site_language
....
// it will return a json string
{'greetings':'Welcome :name for giving as a time!','prompt':'Don't forget to verify your email address :emailaddress before proceeding'}
但似乎我遇到了一个新问题。该语言有一些替代品。与:name ,:emailaddress 一样。我试图通过替换tru GET,但遗憾的是它不起作用。这有什么解决方案吗?或者我唯一能做的就是逐个获取每个语言行,这样替换的东西就可以了( 顺便说一下,它的工作原理是这样的,但它看起来并不好,因为它会创造这么多请求 )。
答案 0 :(得分:0)
我这样解决了:
/language/integrated_site_language/?params[path.to.the.specific.line|replacementKey]=value
所以我把它放在控制器上的代码中,负责输出json lang
$params = \Input::get('params', []);
if (empty($params))
{
return \Lang::get('myprofile.'.$path, $params);
}
else
{
// get first the language
$lang = \Lang::get('myprofile.'.$path);
foreach ($params as $key => $value) {
// get the path and the replacemnt key
@list($path, $replacementKey) = explode('|', $key);
if (!empty($path))
{
$line = array_get($lang, $path);
if (!empty($replacementKey))
{
$line = str_replace(':'.$replacementKey, $value, $line);
}
array_set($lang, $path, $line);
}
}
return \Response::json($lang);
}
那就是它! :)