【问题标题】:gettext string in php class method argumentsphp类方法参数中的gettext字符串
【发布时间】:2013-10-29 22:16:00
【问题描述】:

我在类方法参数中使用 gettext 字符串时遇到了挑战。它们没有被翻译。其他所有(假设是静态的)字符串都可以毫无问题地翻译,并且 gettext 对它们的作用就像魅力一样。

这是一个非工作翻译的例子:

$myClass->myMethod(_('string to be translated'));

方法定义:

public function myMethod (arg1) {
    echo arg1;
}

它总是在第一页加载时只显示翻译集。无论我切换语言多少次,或刷新他的页面。我还尝试将字符串作为变量传递。不幸的是,它也不起作用:

$var = _('string to be translated'); 
$myClass->myMethod($var);

感谢您的提示! :)

【问题讨论】:

    标签: php class methods arguments gettext


    【解决方案1】:

    您的语言环境文件中有翻译吗?您是否也只使用系统语言环境或您自己的文件?

    【讨论】:

    • 感谢您的关注。是的,字符串已被选择翻译成 pot 文件,它们被翻译成适当的 mo 文件。如果我将浏览器首选语言切换为应用程序支持的语言,我会看到翻译。这意味着,翻译本身是可以的。当我改变语言时,它们只是没有改变。只有静态翻译效果很好。
    • 但这是否意味着在这种特定语言中,如果其他语言工作,则没有翻译可用?
    • 目前,我可能只有一份翻译。我很确定,那个翻译就在那里。正如我所提到的,我已经能够看到翻译,但我无法切换到另一个。任何其他静态文本都可以完美运行。我能够很好地在语言之间切换。我想这与php缓存有关。我已经重新启动了 apache,但它没有帮助。
    • 我想我根本无法理解这个问题 - 你在做什么,你期待什么结果?
    • 好的,我有一个英语语言的主站点。我创建了斯洛伐克语的完整翻译。当我尝试在语言之间切换时,由 _('') 标记为翻译的静态字符串翻译得很好。不幸的是,以相同方式标记并作为参数传递给函数的字符串不接受语言切换。他们停留在第一页加载时设置的翻译中。希望我的问题现在会更清楚一点。
    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多