diff options
Diffstat (limited to 'python/l10n/fluent_migrations/bug_1832141_recently_closed.py')
-rw-r--r-- | python/l10n/fluent_migrations/bug_1832141_recently_closed.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/python/l10n/fluent_migrations/bug_1832141_recently_closed.py b/python/l10n/fluent_migrations/bug_1832141_recently_closed.py new file mode 100644 index 0000000000..530f6f05dd --- /dev/null +++ b/python/l10n/fluent_migrations/bug_1832141_recently_closed.py @@ -0,0 +1,76 @@ +import fluent.syntax.ast as FTL +from fluent.migrate import COPY_PATTERN, PLURALS, REPLACE_IN_TEXT +from fluent.migrate.helpers import VARIABLE_REFERENCE + +# Any copyright is dedicated to the Public Domain. +# http://creativecommons.org/publicdomain/zero/1.0/ + + +class CUSTOM_PLURALS(PLURALS): + def __call__(self, ctx): + pattern = super().__call__(ctx) + el = pattern.elements[0] + if isinstance(el, FTL.Placeable) and isinstance( + el.expression, FTL.SelectExpression + ): + selexp = el.expression + else: + selexp = FTL.SelectExpression( + VARIABLE_REFERENCE("tabCount"), + [FTL.Variant(FTL.Identifier("other"), pattern, default=True)], + ) + pattern = FTL.Pattern([FTL.Placeable(selexp)]) + selexp.variants[0:0] = [ + FTL.Variant( + FTL.NumberLiteral("0"), + FTL.Pattern([FTL.Placeable(VARIABLE_REFERENCE("winTitle"))]), + ) + ] + return pattern + + +def migrate(ctx): + """Bug 1832141 - Migrate strings to recentlyClosed.ftl, part {index}.""" + + appmenu = "browser/browser/appmenu.ftl" + browser = "browser/chrome/browser/browser.properties" + menubar = "browser/browser/menubar.ftl" + target = "browser/browser/recentlyClosed.ftl" + + ctx.add_transforms( + target, + target, + [ + FTL.Message( + id=FTL.Identifier("recently-closed-menu-reopen-all-tabs"), + value=COPY_PATTERN(menubar, "menu-history-reopen-all-tabs"), + ), + FTL.Message( + id=FTL.Identifier("recently-closed-menu-reopen-all-windows"), + value=COPY_PATTERN(menubar, "menu-history-reopen-all-windows"), + ), + FTL.Message( + id=FTL.Identifier("recently-closed-panel-reopen-all-tabs"), + value=COPY_PATTERN(appmenu, "appmenu-reopen-all-tabs"), + ), + FTL.Message( + id=FTL.Identifier("recently-closed-panel-reopen-all-windows"), + value=COPY_PATTERN(appmenu, "appmenu-reopen-all-windows"), + ), + FTL.Message( + id=FTL.Identifier("recently-closed-undo-close-window-label"), + value=CUSTOM_PLURALS( + browser, + "menuUndoCloseWindowLabel", + VARIABLE_REFERENCE("tabCount"), + foreach=lambda n: REPLACE_IN_TEXT( + n, + { + "#1": VARIABLE_REFERENCE("winTitle"), + "#2": VARIABLE_REFERENCE("tabCount"), + }, + ), + ), + ), + ], + ) |