字符串处理¶
标记要删除的未使用字符串¶
手动删除字符串可能会导致 **Beta** 和 **Release** 版本崩溃 💥,因为已删除的字符串可能会因错误 提升到发布分支,而在这些分支中仍然需要这些字符串。因此,我们需要一个特殊的流程来删除它们。
任何在 Nightly 开发中未删除的已合并字符串,在我们可以将其从代码库中删除之前,都会持续存在于 3 个 Firefox 版本(Nightly、Beta、Release)中。例如,如果您想要删除一个在 **Firefox Nightly 93** 之前已发布的字符串,则相同的字符串仍将在 **Firefox Beta 92** 和 **Firefox Release 91** 中使用。这意味着该字符串将在 93 中被标记为未使用并删除,同时仍在进行发布,并且当 **Firefox Release 93** 停止发布时(例如,**Firefox Release 94** 及更高版本),可以安全地删除它。
为了在您想要从 Nightly 删除字符串时保证安全
将这些属性添加到目标字符串
moz:removedIn="<<ACTUAL_NIGHTLY_VERSION>>"
和tools:ignore="UnusedResources"
。
<string name="onboarding_close" moz:removedIn="93" tools:ignore="UnusedResources">Close</string>
何时以及如何删除未使用字符串¶
已使用 moz:removedIn
属性标记的字符串,在标记的版本不再发布且不再使用或需要后,就可以安全地删除。
请查阅 Firefox 发布日历。假设 Beta 版本刚刚发布,我们现在处于 Firefox Nightly 109、Firefox Beta 108 和 Firefox Release 107。所有标记有 moz:removedIn
<= 106 的字符串现在都可以删除。
您只需要删除 values/strings.xml 中的 en-US 字符串,此更改将传播到其他语言环境。
未来¶
最好添加一些自动化功能来删除具有 moz:removedIn
属性的字符串,其中已完成完整周期(从实际发布版本开始的 3 个发布版本)。