我负责Drupal7上的一个老网站,我知道的太少了。本网站为英文/法文双语网站。因此,在模板中,我添加了一些字段,其中包含需要翻译的字符串:
<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)); ?>
然而,在法语里,这让我不断展示“我们的技巧”和“技巧”.而不是翻译?为什么?
谢谢:)
发布于 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
https://stackoverflow.com/questions/50784550
复制相似问题