Php 如何强制gettext独立于当前语言翻译特定语言?
如何让函数独立于当前设置的语言将单词翻译为特定语言 让我们举个例子 让我们假设默认语言是英语。 让我们用“树”这个词。在意大利语中是阿尔贝罗 如果我正在浏览我的网站的英文版,该页面的所有内容都将被翻译成英文。特别是,如果我的php代码中有一行Php 如何强制gettext独立于当前语言翻译特定语言?,php,translation,gettext,Php,Translation,Gettext,如何让函数独立于当前设置的语言将单词翻译为特定语言 让我们举个例子 让我们假设默认语言是英语。 让我们用“树”这个词。在意大利语中是阿尔贝罗 如果我正在浏览我的网站的英文版,该页面的所有内容都将被翻译成英文。特别是,如果我的php代码中有一行echo('tree'),将输出树 我想完成的是在浏览英文版网站时输出albero。我想告诉uz()只翻译页面特定部分的特定单词,用意大利语,即使当前语言是英语。在我看来,这就像是('tree','it'u it'),它告诉gettext忽略英语,只在调用时
echo('tree')代码>,将输出树
我想完成的是在浏览英文版网站时输出albero。我想告诉uz()只翻译页面特定部分的特定单词,用意大利语,即使当前语言是英语。在我看来,这就像是('tree','it'u it')
,它告诉gettext忽略英语,只在调用时用意大利语覆盖它
可以用gettext()实现吗?
如果是,如何进行?如果没有,还有其他解决方案吗?不幸的是,GNUgettext
不支持此功能
您可以通过临时更改区域设置来伪造:
setlocale(LC_ALL, 'it_IT');
echo _('tree');
setlocale(LC_ALL, 'en_US');
我真的不明白如何使用它…这是我实现的一个粘贴库。你能帮我吗?在PHP手册中,我发现bindtextdomain(“module1”,“path/to/my/locale/folder”)之间没有区别
和bindtextdomain(“module2”,“path/to/my/locale/folder”)
…英语和意大利语的locale
文件夹是相同的!事实上,英语和意大利语是locale
的子文件夹,所以每个bindtextdomain都指向同一个文件夹…@AlbertoFontana,我错了。似乎无法使用gettext
执行此操作。您可能需要使用putenv
和setlocale
临时切换为意大利语。我会更新我的答案。是的,我通过做setlocale(LC_ALL,“it_it”)代码>然后echo('tree')然后setlocale(LC_ALL,“en_US”)代码>!您可以使用环境变量LANGUAGE
,而不必更改区域设置(这也会影响环境的其他方面并需要安装区域设置)。