不一致?在约translate behaviour in the CakePHP 3 book章有使用三字母代码,从英文名称,而不是语言为母语的名字衍生像ISO 639-2:CakePHP 3.1:用于翻译行为的语言字母代码(i18n)
eng (english)
spa (spanish)
用这个例子来改变语言:
I18n::locale('spa');
但在chapter about Internationalization and Localization它说
翻译文件夹可以是该语言的两字母ISO代码或完整的语言环境名称,如fr_FR, es_AR,da_DK包含语言和所在国家/地区。
和示例更改语言看起来是这样的:
use Cake\I18n\I18n;
I18n::locale('de_DE');
所以是关于translate behaviour
过时的章节或者是所有的方法正确吗?我认为在Translate behaviour
和Internationalization and Localization
之间保持一致并使用相同的语言代码可能更好?
另外,国际化模式表格例如现场locale
定义为varchar(6)
...如果3个字母的代码需要varchar(3)
应该是足够了...但是,即使我用完整的本地代码一样fr_FR
VARCHAR(5)将足够。为什么使用varchar(6)
的示例模式?
有6个字母的语言代码正在使用中,例如'es-419' – AD7six