Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以非默认语言打印单个翻译字符串_Php_Wordpress_Localization_Translation_Gettext - Fatal编程技术网

Php 以非默认语言打印单个翻译字符串

Php 以非默认语言打印单个翻译字符串,php,wordpress,localization,translation,gettext,Php,Wordpress,Localization,Translation,Gettext,我正在创建一个Wordpress主题,它将从英语翻译成法语。我已经使用Wordpress的gettext函数包含了所有字符串 但是 我想在网站的英文版上打印一个特定字符串的法文版,反之亦然。我试过这个(英文版): 但是Poedit抱怨了一个非ASCII字符串。所以,目前,在我的英文版本中 _e('French version', 'mydomain'); 即使语言环境设置为使用英语,如何输出该字符串的法语翻译?检查源和文件的文件编码设置是否正确。同样在poEdit中,转到Catalog>Set

我正在创建一个Wordpress主题,它将从英语翻译成法语。我已经使用Wordpress的gettext函数包含了所有字符串

但是

我想在网站的英文版上打印一个特定字符串的法文版,反之亦然。我试过这个(英文版):

但是Poedit抱怨了一个非ASCII字符串。所以,目前,在我的英文版本中

_e('French version', 'mydomain');

即使语言环境设置为使用英语,如何输出该字符串的法语翻译?

检查源和文件的文件编码设置是否正确。同样在poEdit中,转到Catalog>Settings并检查源代码字符集中的属性。尝试使用UTF-8。

您的错误与用于提取模板的字符集有关。但你的问题还没有解决。毕竟,您的代码中有字符串“version française”吗?是否希望翻译人员将此字符串从英语翻译成其他语言?不这种用法只是呼应了“法语版本”。对已经翻译的字符串没有翻译,好吗


如果你只需要英文和法文翻译,你的方式是好的。但如果你将来需要更多的语言,这种方式是行不通的。西班牙语和俄语版本怎么样?我建议用他们自己的语言列出语言名称。并使用某种语言更改下拉菜单,其中将有azbuka的俄语,西班牙语的Espanol等。使其成为预定义数组,远离正常的翻译文件,因为语言名称将已经是原来的样子。理解这些语言的人无论如何都会识别自己的语言。在它前面加上_e('Language:','mydomain');当然可以。

获取当前区域设置、设置所需区域设置、翻译、还原以前的区域设置?@dev null alliner我可以看到
获取区域设置()
,但我可以动态更改它吗?以及如何使用
add_filter('locale','myfunc')可能吗?如果有
get.*
,它通常会使用Yes,源文件是没有BOM的UTF-8,而字符集在Poedit中设置为UTF-8。只是为了补充我上面的评论,这不是问题。我还没有彻底测试过这一点,这是一种丑陋的方法,但理论上你可以制作一个“英语”翻译文件并仅翻译该字符串,使用“version française”替换该字符串。这样,当EN为默认值时,它只会将“法语版本”字符串替换为编码字符串,并且不应该引起非ascii字符串的问题。尽管我在评论自己的答案时(为了方便起见)使用了@coderachnid提出的解决方案,但您的答案非常好,而且对多种语言更灵活。我的只需要法语和英语,但我同意你的观点,“法语版”不需要翻译。谢谢
_e('French version', 'mydomain');