[英]CakePHP Translation array format not as expected
我使用CakePHP版本1.3。 该文档说,如果我想对动态内容使用翻译行为,则无需更改视图。 问题在于已翻译的字段在那里,但为空。 转换仅像这样显示在['I18n']数组中
Array
(
[0] => Array
(
[Category] => Array
(
[id] => 1
[locale] => de_de
[name] =>
)
[I18n] => Array
(
[name] => Anlagenkomponenten
)
)....
我期望这样的数组
Array
(
[0] => Array
(
[Category] => Array
(
[id] => 1
[locale] => de_de
[name] => Anlagenkomponenten
)
[I18n] => Array
(
[name] => Anlagenkomponenten
)
)....
我的期望是错误的,还是错误?
您能否发布数据的查找呼叫(以及该呼叫之外的某些行)?
通常,翻译行为如下:
$this->Model->locale = 'de_de';
$result = $this->Model->find('all', array( ... );
语言环境通常是通过全局语言环境变量设置的(一种方法是将用户的语言环境存储到会话中,并在应用程序控制器中设置全局语言环境变量)。
如果未设置语言环境,并且在模型中使用$ recursive = 1设置执行read(),则Cake将为每个现有的语言环境获取所有可用的翻译。
您如何为模型设置转换行为? 如果您也从模型中发布$ actsAs-variable的翻译部分,则可能会有所帮助。
还请检查您的i18n表是否正确保存了语言环境(de_de,不是de-de!)。
在cakephp 1.2.6 ...中,在Translate Bahavior
转到第243行并注释直到245 。 我认为在cakephp 1.3中相同
//if (!empty($results[$key]['I18n__'.$field]['content'])) {
// $value = $results[$key]['I18n__'.$field}['content'];
//}
然后添加代码:
if (!empty($results[$key]['I18n'][$field])) {
$value = $results[$key]['I18n'][$field];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.