summaryrefslogtreecommitdiffstats
path: root/python/l10n/fluent_migrations/bug_1832141_recently_closed.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/l10n/fluent_migrations/bug_1832141_recently_closed.py')
-rw-r--r--python/l10n/fluent_migrations/bug_1832141_recently_closed.py76
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"),
+ },
+ ),
+ ),
+ ),
+ ],
+ )