【问题标题】:k2 extra fields translation issuek2 额外字段翻译问题
【发布时间】:2012-12-27 21:27:28
【问题描述】:

我有一个问题会毁了我的头脑......我不是 PHP 开发人员,所以我找不到任何解决它的方法......

我正在使用 K2(从 2.5.7 更新的 v 2.6.2)用于 CCK(带有很多自定义模板)和 Joomfish (2.1.7),部署在 Joomla 1.5.26 安装上。

我使用以下代码(在我的模板中)按名称(K2 2.5.7)获取我的个人 k2 额外字段:

$extraFld = array();
if ( $this->item->extra_fields ) {
  foreach ( $this->item->extra_fields as $key=>$extraField ) {
    $extraFld[ $extraField->name ] = $extraField->value;
   }
}

然后我是这样获取它的:

echo "<li class=\"dinning-cuisine\"><span>" . JText::_('Cuisine') . "</span><br />" . $extraFld['Cuisine'] . "</li>\n";

但从 2.6.2 版本开始,可以选择直接获取额外的字段名称和值:

$this->item-extraFields->ALIASNAME->name $this->item-extraFields->ALIASNAME->值

如 K2 2.6.2 什么是新文档中所述。

问题如下:

我有一个希腊语(默认)和英语语言环境的双语网站。

我在默认语言环境“Πεδίο 1”中创建了一个别名为“field1”的额外字段

如果我尝试翻译它,我唯一的选择是将其名称翻译为“额外字段 1”(不同于其别名)...

然后在我的自定义模板中,如果我尝试像这样获取它:

$this->item->extraFields->field1->value 

只有希腊语言环境有效。在英语语言环境中,我收到一个 NULL 值!

有什么相关的经验和解决办法吗?

【问题讨论】:

    标签: php joomla joomla1.5 joomla-extensions joomla-k2


    【解决方案1】:

    尝试这样做:

    字符串:

    JText::_('CUISINE') //should always be Capital letters
    

    翻译(语言文件):

    CUISINE=Cuisine
    

    我不确定您使用哪个文件来翻译字符串,但是当您将此代码添加到模板 index.php 时,请将翻译字符串添加到 en-GB.tpl_tamplatename.ini强>

    【讨论】:

    • 问题不在于标签 (JTEXT::_('Cuisine')) 而在于额外的字段值...标签没问题!
    • 我认为这是 k2 框架的一个错误......文档中提出的使用其别名感染单个 k2 额外字段值 gy 的方法在多语言站点中不起作用。
    【解决方案2】:

    经过大量测试后,我认为在多语言网站中,使用别名检索单个额外字段值是行不通的。至少对于 Joomla 1.5 来说不是...

    应该工作的代码是:

    $this->item-extraFields->ALIASNAME->值

    我有一个默认语言“希腊语”和第二语言“英语”的网站。

    我有一个额外的字段,用希腊语 'Πεδίο 1' 命名,别名为 'field1'。

    我已将这个额外的字段(使用 Joomfish)用英语翻译成“字段 1”...

    如果我尝试使用以下方法获取其值:

    $this->item-extraFields->field1->值

    该代码仅适用于默认语言“希腊语”,但不适用于英语。

    【讨论】:

      猜你喜欢
      • 2013-09-16
      • 2014-11-01
      • 2013-06-18
      • 2013-06-24
      • 2011-07-18
      • 2015-02-15
      • 2013-04-17
      • 2014-03-05
      • 2014-10-24
      相关资源
      最近更新 更多