gpt4 book ai didi

angular - 如何使用 Angular i18n 自定义 ID

转载 作者:太空狗 更新时间:2023-10-29 18:19:53 26 4
gpt4 key购买 nike

在 angular i18n 文档中,它是 recommended设置唯一的自定义 ID。但我很难理解如何使用它们。

我知道 ID 很有用,可以防止您在更新源语言时更改翻译。这些 ID 应该是唯一的。当提取器发现重复的 ID 时,它只保留第一个。
但是我的应用程序中有很多重复项。我应该对所有重复的句子使用相同的 ID 吗?我不应该为论文使用 ID 吗?我是否应该为所有人使用不同的 ID,并分别翻译每个事件?

我想更好的解决方案是不对重复的内容使用 ID,并保留生成的 ID。但是如果我有一个独特的句子,我的应用程序改变了,那么这句话就不再是唯一的了,我将不得不删除这个ID并重新翻译,对吧?我将不得不注意什么是独特的,什么不是。看起来还可以吗?

最佳答案

好吧,只有在您需要对一个字符串进行更多(不同)翻译时,我才会使用自定义 ID。文档建议使用它们,以防您需要更多的人类可读性和一些翻译上下文。如果您使用工具来管理您的翻译(例如 xliffmerge),我不会太担心维护。

xi18n工具已经进行了字符串相等匹配,所以如果它找到更多相等的字符串,它会将它们填充到单个 <trans-unit> 下.您然后为该单元提供一个(目标)翻译字符串,它将用于代替所有源字符串。 ID 不应在本地化工具的多次运行之间发生变化,因为它们基于字符串本身的内容。

所以我的建议是不要担心 ID 和重复使用太多。如果您只写字符串,它们将被匹配在一起,并且所有字符串的翻译都将保持不变。如果您使用自定义 ID,则必须记住使用它们并手动维护它们的翻译。

源字符串发生变化的情况(当然)是您必须注意的事情。

为了完整起见,让我们进行一个简单的案例研究:假设您的应用程序中有两个相同的字符串,它们必须具有相同的翻译。你运行 xi18n , 生成你的 messages.xlf ,将其合并到一个已经翻译的文件中(例如 messages.cs.xlf ),翻译 <trans-unit>并构建和部署您的应用程序。现在,有人来要你更改这些字符串之一。这里可能发生两种情况——必须更改源字符串(并重新翻译),或者只需要更改翻译(源字符串保持不变)。在第一种情况下,您转到您的代码,更新源字符串并再次运行本地化过程。一个新的 <trans-unit>将被创建——你提供一个新的翻译,构建应用程序,你就完成了。在第二种情况下,您转到代码并将自定义 ID(也推荐描述和含义)添加到必须具有新翻译的字符串上。您运行本地化过程 - 一个新的 <trans-unit> (带有自定义 ID)将已生成。您可以按照习惯进行翻译、构建和部署。

关于angular - 如何使用 Angular i18n 自定义 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501312/

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