在同一语言环境中本地化?

时间:2018-01-14 08:51:32

标签: cakephp cakephp-3.0

根据使用环境,我需要“翻译”同一语言环境中的某些单词。

一个例子:

  • 在context1中,“团队”一词被翻译为" team"
  • 在context2中,“团队”一词翻译为" group"
  • 在context3中,“团队”一词翻译为“部队”

使用cakephp 3的本地化功能,最好的方法是什么?

我可以使用:I18n::setLocale('context1');

由于

1 个答案:

答案 0 :(得分:2)

不要更改上下文的区域设置。语言环境始终引用当前转换。语境是一种语言问题。

从手册:

  

有时翻译字符串对于翻译字符串的人来说可能不明确。如果两个字符串相同但引用不同的东西,则会发生这种情况。例如,'letter'在英语中有多种含义。要解决该问题,可以使用__x()函数:

所以你会写:

 echo __x('as team', 'team');
 echo __x('as group', 'team');
 echo __x('as troop', 'team');

CakePHP会将一条消息写入翻译文件,以指明上下文是什么。

https://book.cakephp.org/3.0/en/core-libraries/internationalization-and-localization.html#using-translation-functions