【问题标题】:joomla - forcibly get keyword from specific language in JTextjoomla - 强制从 JText 中的特定语言获取关键字
【发布时间】:2014-11-06 15:23:58
【问题描述】:

实际上,我正在寻找与joomla - forcibly get keyword from specific language 完全相同的问题的答案,只是他的解决方案对我不起作用。在这里我尽我所能解释:

我需要以某种方式使用 JText,以便为它提供我想要翻译的语言。在调用 JText 函数之前已经尝试设置/加载该语言,但是尽管语言加载的结果是成功的,但它始终返回默认语言的关键字。我写了一个组件,客户请求通过电子邮件发送给管理员。客户得到一份副本(以他正在访问的网站的正确语言=这是有效的)。管理员虽然应该获得相同正文的副本,但使用强制语言:

$body = '<td><b>'.JText::_(TPL_FORM_TELEFON).'</b></td><td>'.$_POST['tel'].'</td></tr>'.

所以基本上JText::_(TPL_FORM_TELEFON) 是在发送给客户en-GBru-RU 的副本电子邮件中(取决于他访问的语言),但对于管理员JText::_(TPL_FORM_TELEFON) 必须是德语(de-DE )

知道如何实现吗?

【问题讨论】:

    标签: php joomla


    【解决方案1】:

    有办法做到这一点。在 Joomla 中找到这篇文章!文档:https://docs.joomla.org/Specification_of_language_files

    在标题“随时随地加载任何语言文件”的末尾,显示了一种加载任意前端和后端语言文件的方法。重要的信息是

    未翻译的字符串将以英文显示,而不是未翻译的键

    这样,您可以为发送给客户的电子邮件加载前端翻译的字符串,而对于管理员,您可以加载德语后端语言文件。只要您不翻译德语后端语言文件并让 en 和 ru 为空,您就应该始终获取管理员电子邮件的德语字符串。请记住,您可能需要为后端和前端语言文件使用不同的语言键才能使其正常工作。

    前端键示例:
    对于 de-DE:TPL-FROM-TELEFON="Telefon"
    英文版:TPL-FROM-TELEFON="Phone"

    后端键示例:
    对于 de-DE:TPL-FROM-TELEFON-ADMIN="Telefon"
    对于 en-GB:TPL-FROM-TELEFON-ADMIN = 根本不包含此密钥!!!

    最后,您需要加载 Joomla! 中解释的语言文件!文档:

    您可以对后端语言文件使用类似的内容:

    $language = JFactory::getLanguage();
    $language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);
    $language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, null, true);
    

    并加载前端语言文件,使用相同的技巧:

    $language = JFactory::getLanguage();
    $language->load('com_yourcomponentname', JPATH_SITE, 'en-GB', true);
    $language->load('com_yourcomponentname', JPATH_SITE, null, true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 2017-01-13
      • 2016-01-31
      • 1970-01-01
      • 2010-09-23
      • 2012-09-23
      • 2013-04-03
      相关资源
      最近更新 更多