不一致?在CakePHP 3 书中关于翻译行为的章节中,使用了三个字母的代码,这些代码来自英文名称,而不是像ISO 639-2这样的语言的本地名称:
eng (english)
spa (spanish)
用这个例子来改变语言:
I18n::locale('spa');
但是在关于国际化和本地化的章节中它说
翻译文件夹可以是语言的两个字母 ISO 代码,也可以是完整的区域设置名称,例如 fr_FR、es_AR、da_DK,其中包含语言和使用该语言的国家/地区。
更改语言的示例如下所示:
use Cake\I18n\I18n;
I18n::locale('de_DE');
那么关于translate behaviour
过时的章节还是所有方法都正确?我认为保持一致并在两者中使用相同的语言代码可能会更好,Translate behaviour
并且Internationalization and Localization
?
此外,i18n 模式表示例将该字段定义locale
为varchar(6)
...如果需要 3 个字母代码就varchar(3)
足够了...但即使我使用完整的本地代码(如fr_FR
varchar(5))也足够了。为什么使用示例模式varchar(6)
?