出于语义版本控制的目的,i18n字符串键是否被视为“公共API”?

时间:2015-10-20 19:16:43

标签: internationalization semantic-versioning

我正在维护一个非常不稳定且过时的i18n覆盖范围的PHP模块,我们正在尝试更新。为了得到应有的东西,我们需要组合一些键(例如OrderInformation.ss.QUANTITY和ProductCategoryItem.ss.QUANTITY)并重命名其他键。

理论上,这可能会导致之前翻译过的某些网站在更新时还原一些字符串。这是否有资格在语义版本控制下进行向后不兼容的更改?

1 个答案:

答案 0 :(得分:0)

  

理论上,这可能会导致之前翻译过的某些网站在更新时还原一些字符串。这是否有资格在语义版本控制下进行向后不兼容的更改?

技术上,是的。如果您打破了客户,它需要一个主要的版本。见SemVer #8。实际的答案是这种理论破坏的可能性有多大?从理论上讲,任何改变都有可能打破某些人,但我们不会为每个小错误修复碰撞主要版本,这是什么补丁的用途。

通常情况下,当行为变化导致针对API背后的原始意图时会出现这个问题,但是您有一些客户依赖于原始设计/实现缺陷。你必须权衡一些人采取他们认为的非破坏性变化所带来的成本,但它不是;与大量客户的成本相比,甚至没有尝试新的主要版本,他们担心他们还有很多工作要做。

如果客户修复工作变得微不足道,特别是如果它不是您客户群的很大一部分,那么您可能会遇到一个小问题或补丁。