【发布时间】:2015-06-27 07:04:28
【问题描述】:
在阅读"On the state of I18N in perl" 后,我正在尝试使用Locale::TextDomain 本地化CPAN 模块MooX::Options。
在拉取请求的讨论中,问题出现了如何处理不是源自模块本身,而是源自依赖项的消息。在这种特定情况下,当您在命令行上指定未在代码中任何位置定义的选项时,您将收到警告:
未知选项:xyz
源自模块Getopt::Long,其本身尚未本地化。
问题是如何处理这些问题。我基本上看到了三种策略:
- 忽略它们,我觉得不满意。
- 尝试以某种方式捕获我当前正在本地化的模块(在本例中为
MooX::Options)中的所有极端情况和消息,并通过这种方式解决依赖项中缺少的本地化模块。这个选项似乎很脆弱,因为我必须不断适应基本模块的变化。有时,几乎不可能捕获消息,因为它们是由模块直接写入输出流的(本例中就是这种情况)。 - 尝试本地化依赖模块本身。这个选项似乎很难实现,因为不同的项目本身可能使用不同的 I18N 工具和策略,并且依赖关系图可能很大。
总而言之,我认为这个问题更普遍,而不是特定于 perl 和 cpan 模块。所以,我对你的想法、策略和方法很感兴趣。
【问题讨论】:
-
我一直在思考如何为cpan客户端做这件事。不过我没有任何答案。
标签: perl internationalization cpan