首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal7 :为什么t()不能工作?

Drupal7 :为什么t()不能工作?
EN

Stack Overflow用户
提问于 2018-06-10 14:09:02
回答 1查看 257关注 0票数 1

我负责Drupal7上的一个老网站,我知道的太少了。本网站为英文/法文双语网站。因此,在模板中,我添加了一些字段,其中包含需要翻译的字符串:

代码语言:javascript
复制
<div class="offer_content">
    <span class="title" style="text-transform:uppercase;font-size:18px;"><?php echo t('Our Firma').(': ');?></span>
    <?php echo html_entity_decode(t($fields['field_presentation_societe']->content)); ?>
    <span class="title" style="text-transform:uppercase;font-size:18px;"><?php echo t('Job presentation').(': ');?></span>
    <?php echo html_entity_decode(t($fields['body']->content));?>
    <span class="title" style="text-transform:uppercase;font-size:18px;"><?php echo t('Skills').(': ');?></span>
    <?php echo html_entity_decode(t($fields['field_profil_recherche']->content)); ?>

然而,在法语里,这让我不断展示“我们的技巧”和“技巧”.而不是翻译?为什么?

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-11 08:15:02

根据设计变量是不可译的。见-docs

翻译变量 您不应该使用t()来转换变量,例如调用 t($text); ,除非变量保存的文本已通过t()传递到其他地方(例如,$text是数组中几个已翻译的文字字符串之一)。尤其重要的是永远不要打电话 t($user_text); ,其中$user_text是用户输入的一些文本,可能会导致跨站点脚本和其他安全问题。但是,您可以在字符串中使用变量替换,以便将变量文本(如用户名或链接URL)放入翻译文本。变量替换如下所示: $text = t("@name's blog",数组(@name‘=> format_username($account); 基本上,您可以将@name之类的变量放入字符串中,t()将在翻译时替换它们的净化值。(有关如何在字符串中定义变量的详细信息,请参阅上面引用的本地化API页面和format_string()的文档。)然后,翻译人员可以根据语言的需要重新排列字符串(例如,在西班牙语中,可能是"blog de @name")。

因此,您可以做的是,使用实体翻译使这些字段可转换。然后,您将能够翻译您的内容和正确的翻译将被打印的基础上,什么是添加到字段的匹配语言。

或者使用i18n_string(),请参见https://drupal.stackexchange.com/a/184584

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50784550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档