根据使用环境,我需要“翻译”同一语言环境中的某些单词。
一个例子:
使用cakephp 3的本地化功能,最好的方法是什么?
我可以使用:I18n::setLocale('context1');
?
由于
答案 0 :(得分:2)
不要更改上下文的区域设置。语言环境始终引用当前转换。语境是一种语言问题。
从手册:
有时翻译字符串对于翻译字符串的人来说可能不明确。如果两个字符串相同但引用不同的东西,则会发生这种情况。例如,'letter'在英语中有多种含义。要解决该问题,可以使用__x()函数:
所以你会写:
echo __x('as team', 'team');
echo __x('as group', 'team');
echo __x('as troop', 'team');
CakePHP会将一条消息写入翻译文件,以指明上下文是什么。