使用 drupal 7 翻译 node.tpl.php 文件中的字段
Posted
技术标签:
【中文标题】使用 drupal 7 翻译 node.tpl.php 文件中的字段【英文标题】:Translating fields in node.tpl.php file with drupal 7 【发布时间】:2011-12-25 19:27:17 【问题描述】:我有一个德鲁巴英语/法语网站。 我有一个名为“广告”的自定义内容类型,其中包含各种字段。 我在主题目录中创建了文件“node--ad.tpl.php” 自定义“广告”内容的显示。 我使用的是像素重载主题和 DRUPAL 7。
我正在尝试翻译字段(标签和值) 通过使用“字段翻译”模块。
当我通过管理员创建或修改内容时,字段翻译工作。
但是,当我显示“广告”类型的内容时,不会翻译字段。 这是因为 drupal 调用 'node--ad.tpl.php' 和翻译 模块可能没有被调用。 删除'node--ad.tpl.php'时,drupal调用默认的node.tpl.php 有类似的结果。
任何帮助将不胜感激, 提前致谢,
注意事项: 1 - 我正确激活了模块的每个依赖项。 2 - 用户界面翻译正常工作。
【问题讨论】:
【参考方案1】:好的 我发现自己如何做到这一点。 我在这里给出解决方案。 它可能对其他人有所帮助:
首先,在配置 > 区域和语言 > 翻译 > 导入中翻译字段标签和值。不要将值作为字段导入,而是作为用户界面导入。不指定 一个 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']);
【讨论】:
以上是关于使用 drupal 7 翻译 node.tpl.php 文件中的字段的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 graphql 获得 drupal 节点的特定翻译
PHP Drupal 6:使用i18n模块翻译主要和次要链接