我使用的配置文件包含: 的config.php
define('SYS_TITLE','My Application Title');
我在加载配置文件后包含的另一个文件中基于SESSION变量为gettext加载本地语言。 如何使它像:
echo _(SYS_TITLE);
在不改变太多代码的情况下翻译SYS_TITLE的最佳方法是什么。
答案 0 :(得分:0)
如果我找到了你,你正在寻找一种方法将翻译后的字符串导入某些PHP代码。
如何在第一列中加载XL中的所有字符串,并使用简单的concatenate()调用在第二列中生成php代码?
如果您在A1中存储“Something in English”,您可以按如下方式设置B1:
=CONCATENATE("define('SYS_TITLE','",A1,"');")
你最终得到了
A1 B1
Something in english define('SYS_TITLE','Something in english');
答案 1 :(得分:0)
你可以使用:
echo _("SYS_TITLE");
然后为您的所有翻译创建.po文件。当然,它不会使用常量的值,但是由您决定是否可接受。毕竟,你不需要 msgid来按字面包含默认语言的文本。
您还可以为gettext调用创建一些包装函数:
function gt(string){
if(defined(string)){
echo constant(string);
} else {
echo _(string);
}
}
当然,接受所带来的所有问题(如额外的复数处理)。
答案 2 :(得分:0)
你也应该能够这样做:
echo _(constant("SYS_TITLE"));
这应检索常量的值,然后将其传递给函数调用。我没有测试过,所以我可能错了。