【发布时间】:2020-11-03 11:10:13
【问题描述】:
是否有可能通过调用以下代码来翻译 Angular 10 中 i18n 已知的字符串:
translate(myText);
其中 'myText' 是一个变量,其中包含 i18n 已知的字符串。
一个简单的例子。我在 HTML 中有这段代码:
<div i18n>This is a simple Test.</div>
然后我想在代码中做这样的事情:
const transText = translate('This is a simple Test.');
括号中的文字仅用于示例,它不会在编译时出现在代码中。实际上,它将来自一个字符串,该字符串传递给无法用 i18n 或 i18n-Attribute 标记的自定义 html 元素。也不可能在代码中用 $localize ... 标记它。
文本将与使用 i18n-Attribute 或 $localize 定义的完全相同。
我想到解决这个问题的一件事是解析语言文件,我在启动时将其作为 json 结构提供给应用程序,但为此我需要知道为该文本生成的 id .我得到的另一个想法是在原始 XLF 文件中查找文本,获取该 ID 并在翻译后的结构中搜索它。
但是这两个版本都不是很好,对我来说似乎很成问题,因为它们依赖于不改变 Angular 中 i18n 的工作方式。我希望有一种内部方式来翻译这样的字符串。
【问题讨论】:
标签: angular internationalization