使用drupal 7翻译node.tpl.php文件中的字段

时间:2011-12-25 19:27:17

标签: templates drupal translation field

我有一个drupal英文/法文网站。 我有一个名为'ad'的自定义内容类型,包含各种字段。 我在主题目录中创建了文件'node - ad.tpl.php' 自定义“广告”内容的显示。 我使用pixture重新加载主题和DRUPAL 7。

我正在尝试翻译字段(标签和值) 通过使用“现场翻译”模块。

当我通过管理员创建或修改内容时,字段翻译工作。

但是,当我显示“广告”类型的内容时,字段不会被翻译。 这是因为drupal调用'node - ad.tpl.php'和翻译 可能没有调用模块。 当删除'node - ad.tpl.php'时,drupal调用默认的node.tpl.php 有类似的结果。

任何帮助将不胜感激, 谢谢你提前,

备注: 1 - 我正确激活了模块的每个依赖项。 2 - 用户界面翻译正常工作。

1 个答案:

答案 0 :(得分:1)

行 我发现自己该怎么做。 我在这里给出解决方案。 它可能对其他人有所帮助:

首先,在Configuration>中翻译字段标签和值。区域和语言>翻译>进口。不要将值作为字段导入,而是作为用户界面导入。不要指定 一个URL(只有msgstr和msgid)。

现在,您需要在node.tpl.php中添加t()函数,以使转换生效。所以:

在node.tpl.php文件中,如果要翻译字段标签,请写下: $ content ['field_my_field'] ['#title'] = t($ content ['field_my_field'] ['#title']);

然后翻译字段值执行以下操作: $ content ['field_my_field'] [“#items”] [0] ['value'] = t($ content ['field_my_field'] [“#items”] [0] ['value']);

您现在可以渲染您的字段:print render($ content ['field_my_field']);