gpt4 book ai didi

drupal - Drupal 的 t() 函数可以本地化英语同音异义词吗?

转载 作者:行者123 更新时间:2023-12-02 11:42:57 24 4
gpt4 key购买 nike

在 Drupal 中,向用户显示的字符串应该通过 t() 函数传递,如下所示:

$heading = "<h2>" . t("Product") . "</h2>";

这允许 Drupal 将字符串翻译成适当的语言。

但是,如果同一个英语单词在同一网站上以两种不同的含义使用怎么办?如果我编写了一个价格计算模块,其中有一个“产品”选项,指示折扣应相乘,那么本地化过程如何知道是将单词翻译为要购买的商品还是算术运算?

我应该完全避免同音异义词吗?

最佳答案

非常好的问题(+1)。我相信早在 2006 年,Drupal 邮件列表之一就有过一些讨论。核心开发人员强烈捍卫 i18n 和 l10n 基础设施的当前设计。印欧语言的同音异义词问题是有限的,但是当你搬到中国时,这个问题就变得势不可挡,因为中文中的每个表意文字都代表一堆非常不同的概念,你只能通过查看上下文才能得到想要的概念。

虽然没有针对同音异义词的编码解决方案,但有一个非常简单的最佳实践:提供上下文!只要有可能,就向 t() 函数提供句子,而不是单个单词,或者说出它代码文档位于 common.inc :

When using t(), try to put entire sentences and strings in one t() call. This makes it easier for translators, as it provides context as to what each word refers to.

如果这是不可能的,并且使用具有不同拼写的同义词也不可行,您可以嵌入提供翻译上下文的透明 HTML 标记。例如:

$heading = "<h2>" . t("<span id="product-as-in-stores">Product</span>") . "</h2>";

通过这种方式,您可以向译者提供重要信息,而如果您只是嵌入 <h2>标签,翻译者必须猜测产品指的是什么。

这是 - 顺便说一句 - 在 t() 字符串中嵌入 HTML 标签被认为不是坏事的极少数情况之一。

呵呵!

关于drupal - Drupal 的 t() 函数可以本地化英语同音异义词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com