与功能请求相关的@angular/*包有哪些?
@angular/compiler-cli
描述
在国际化应用程序中,Angular模板中的每一块文本都需要 i18n
属性。这可以包含一个描述,还有其他 i18n-
属性提供用户可见文本的本地化版本(如 i18n-title
)。这些属性很容易被忘记,尤其是像 i18n-title
这样的特殊情况。应该有一种一致性检查,以验证应用程序中的所有文本都已标记为国际化。
建议的解决方案
我们可以有一个扩展诊断,要求编译中的每个消息都标记为 i18n
,并警告/错误缺失相关属性的消息。它还可以警告像 title
这样的属性,并建议 i18n-title
作为替代方案。
由于并非每个应用程序都是国际化的,因此此检查可能需要默认关闭,但是可以通过以下一行配置更改来确保没有消息遗漏:
{
"angularCompilerOptions": {
"extendedDiagnostics": {
"checks": {
+ "i18nMessages": "error"
}
}
}
}
这是一个非常简单的方法,可以确保没有消息被忽略。
我们可能希望有一种 i18n-ignore
属性,允许某些消息被跳过。我曾经看到调试UI通常不需要翻译的情况就是这样。
考虑过的替代方案
可能会有一个基于社区的解决方案能够实现这一点,但我不记得有什么了。
5条答案
按热度按时间cgh8pdjw1#
这个功能请求现在已经成为我们的待办事项候选!在接下来的阶段,社区有60天的时间进行投票。如果请求获得超过20票的赞成,我们将把它移到我们的考虑列表中。
你可以在我们的文档中找到更多关于功能请求流程的详细信息。
7hiiyaii2#
请注意,我们已经开始了针对您的功能请求的社区投票过程。距离投票过程结束还有20天。
有关Angular功能请求流程的更多详细信息,请参阅我们的文档。
neskvpey3#
感谢您提交您的功能请求!看起来在投票过程中,它没有收集到足够的票数进入下一阶段。
我们希望保持Angular丰富且符合人体工程学,同时关注其范围和学习过程。如果您认为您的请求可能超出了Angular的范围,我们鼓励您与community合作,将其发布为开源项目package。
您可以在我们的文档中找到有关功能请求过程的更多详细信息。
6vl6ewon4#
如果编译器能够在没有静态文本可翻译时警告使用i18n,那就方便了。例如:
有时候人们会混淆i18n可以在哪里找到,他们认为它可以确定所有
title
的变体,但实际上它创建了一个这样的翻译:其中标题被插值到文本中,而标题没有本地化。
我想编译器的一个有用建议是,看看用户是否可以在定义
title
的地方添加$localize
,但我也担心这可能会让人困惑,如果title
比一个简单的title = 'Hello World'
复杂一些的话。k5ifujac5#
这将非常棒,只要(如你所说),有一种简单的方法可以覆盖某些情况或误报。不要忘记在TS中使用
$localize
定义的消息。编辑:我猜那些使用
$localize
的人已经被标记为翻译了。我想可能没有很好的方法来确保TS文件中的文本被翻译...