使用gettext的php常量

时间:2010-03-16 11:24:10

标签: php gettext

我使用的配置文件包含: 的config.php

define('SYS_TITLE','My Application Title');

我在加载配置文件后包含的另一个文件中基于SESSION变量为gettext加载本地语言。 如何使它像:

echo _(SYS_TITLE);

在不改变太多代码的情况下翻译SYS_TITLE的最佳方法是什么。

3 个答案:

答案 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"));

这应检索常量的值,然后将其传递给函数调用。我没有测试过,所以我可能错了。