我使用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
)
)....
我的期望是错的,还是这个错误?
答案 0 :(得分:0)
在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];
}
答案 1 :(得分:0)
您是否可以针对您的数据发布您的查询通话(可能会在该通话之上和之外的某些行)?
通常,翻译行为的工作原理如下:
$this->Model->locale = 'de_de';
$result = $this->Model->find('all', array( ... );
语言环境通常通过全局语言环境变量设置(一种方法是将用户的语言环境存储到会话中,并在app-controller中设置全局locale-var。)
如果未设置区域设置,并且在模型中使用$ recursive = 1设置执行read(),则Cake会为现有的每个区域设置提取所有可用的翻译。
您是如何为模型设置翻译行为的?如果您从模型中发布$ actsAs变量的translate-section也可能会有所帮助。
如果区域设置保存正确,请检查您的i18n表(de_de,NOT de-de!)。