如何强制gettext翻译特定语言,独立于当前语言?

Alb*_*ana 3 php translation gettext

我怎样才能告诉函数gettext() 将一个单词翻译成一个独立于当前语言的特定语言?

我们来举个例子吧

我们假设默认语言是英语.我们来一词.在意大利语中它将是albero.

如果我正在浏览我的网站的英文版本,该页面的所有内容将以英文翻译.特别是,如果我在我的PHP代码中有行echo _('tree');,将输出.

我想要完成的是在我浏览英文版网站时输出albero.我很乐意告诉_()只翻译意大利语页面特定部分中的特定单词,即使当前语言是英语.在我的脑海中,它就像_('tree', 'it_IT')it_IT告诉gettext忽略英语并用意大利语覆盖它只是为了那个调用.

是否可以使用gettext()来做到这一点?如果有,怎么样?如果不是,还有其他解决方案吗

Chr*_*ris 7

不幸的是,GNU gettext不支持这一点.

您可以通过临时更改您的区域设置来伪造它:

setlocale(LC_ALL, 'it_IT');
echo _('tree');
setlocale(LC_ALL, 'en_US');
Run Code Online (Sandbox Code Playgroud)

  • @AlbertoFontana,我的错.看来你不能用`gettext`来做这件事.您可能必须使用`putenv`和`setlocale`暂时切换为意大利语.我会更新我的答案. (2认同)
  • 是的,我做了`setlocale(LC_ALL,"it_IT");`然后`echo _('tree');`然后`setlocale(LC_ALL,"en_US");`! (2认同)