Skip to content

Instantly share code, notes, and snippets.

@flodolo
Created March 6, 2025 08:59
Show Gist options
  • Save flodolo/cb7329e74c52532eb4575f4a9754687a to your computer and use it in GitHub Desktop.
Save flodolo/cb7329e74c52532eb4575f4a9754687a to your computer and use it in GitHub Desktop.
megalist migration
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
from fluent.migrate.helpers import transforms_from
from fluent.migrate.transforms import TransformPattern
import fluent.syntax.ast as FTL
class REPLACE_TOTAL(TransformPattern):
def visit_TextElement(self, node):
node.value = node.value.replace("$count", "$total")
return node
def visit_SelectExpression(self, node):
if node.selector.id.name == "count":
node.selector.id.name = "total"
return node
def migrate(ctx):
"""Bug 1948988 - Expose contextual-manager.ftl to localization, part {index}."""
source_autofill = "/browser/browser/preferences/formAutofill.ftl"
source_logins = "browser/browser/aboutLogins.ftl"
target = "toolkit/toolkit/passwordmgr/contextual-manager.ftl"
ctx.add_transforms(
target,
target,
[
FTL.Message(
id=FTL.Identifier("contextual-manager-passwords-remove-all-confirm"),
value=REPLACE_TOTAL(
source_logins,
"about-logins-confirm-remove-all-dialog-checkbox-label2",
),
),
# Capitalization difference
FTL.Message(
id=FTL.Identifier(
"contextual-manager-passwords-remove-all-confirm-button"
),
value=REPLACE_TOTAL(
source_logins,
"about-logins-confirm-remove-all-dialog-confirm-button-label",
),
),
],
)
ctx.add_transforms(
target,
target,
transforms_from(
"""
# Capitalization difference
contextual-manager-filter-input =
.placeholder = {COPY_PATTERN(from_path, "about-logins-login-filter2.placeholder")}
.key = {COPY_PATTERN(from_path, "about-logins-login-filter2.key")}
.aria-label = {COPY_PATTERN(from_path, "about-logins-login-filter2.placeholder")}
contextual-manager-command-copy = {COPY_PATTERN(from_path, "login-item-copy-username-button-text")}
contextual-manager-command-edit = {COPY_PATTERN(from_path, "login-item-edit-button")}
contextual-manager-command-save = {COPY_PATTERN(from_path, "login-item-save-new-button")}
contextual-manager-command-cancel = {COPY_PATTERN(from_path, "login-item-cancel-button")}
contextual-manager-passwords-section-label = {COPY_PATTERN(from_path, "about-logins-page-title-name")}
contextual-manager-passwords-command-create = {COPY_PATTERN(from_path, "create-login-button.title")}
# Capitalization difference
contextual-manager-passwords-command-import-from-browser = {COPY_PATTERN(from_path, "about-logins-menu-menuitem-import-from-another-browser")}
# Capitalization difference
contextual-manager-passwords-command-import = {COPY_PATTERN(from_path, "about-logins-menu-menuitem-import-from-a-file")}
# Capitalization difference
contextual-manager-passwords-command-export = {COPY_PATTERN(from_path, "about-logins-menu-menuitem-export-logins2")}
contextual-manager-passwords-command-help = {COPY_PATTERN(from_path, "about-logins-menu-menuitem-help")}
contextual-manager-passwords-export-os-auth-dialog-message-win = {COPY_PATTERN(from_path, "about-logins-export-password-os-auth-dialog-message2-win")}
contextual-manager-passwords-export-os-auth-dialog-message-macosx = {COPY_PATTERN(from_path, "about-logins-export-password-os-auth-dialog-message2-macosx")}
contextual-manager-passwords-reveal-password-os-auth-dialog-message-win = {COPY_PATTERN(from_path, "about-logins-reveal-password-os-auth-dialog-message-win")}
contextual-manager-passwords-reveal-password-os-auth-dialog-message-macosx = {COPY_PATTERN(from_path, "about-logins-reveal-password-os-auth-dialog-message-macosx")}
contextual-manager-passwords-edit-password-os-auth-dialog-message-win = {COPY_PATTERN(from_path, "about-logins-edit-login-os-auth-dialog-message2-win")}
contextual-manager-passwords-edit-password-os-auth-dialog-message-macosx = {COPY_PATTERN(from_path, "about-logins-edit-login-os-auth-dialog-message2-macosx")}
contextual-manager-passwords-copy-password-os-auth-dialog-message-win = {COPY_PATTERN(from_path, "about-logins-copy-password-os-auth-dialog-message-win")}
contextual-manager-passwords-copy-password-os-auth-dialog-message-macosx = {COPY_PATTERN(from_path, "about-logins-copy-password-os-auth-dialog-message-macosx")}
contextual-manager-passwords-import-file-picker-import-button = {COPY_PATTERN(from_path, "about-logins-import-file-picker-import-button")}
contextual-manager-passwords-import-file-picker-csv-filter-title = {COPY_PATTERN(from_path, "about-logins-import-file-picker-csv-filter-title")}
contextual-manager-passwords-import-file-picker-tsv-filter-title = {COPY_PATTERN(from_path, "about-logins-import-file-picker-tsv-filter-title")}
contextual-manager-passwords-import-success-button = {COPY_PATTERN(from_path, "about-logins-import-dialog-done")}
contextual-manager-passwords-import-error-button-cancel = {COPY_PATTERN(from_path, "about-logins-import-dialog-error-cancel")}
contextual-manager-passwords-export-success-button = {COPY_PATTERN(from_path, "about-logins-import-dialog-done")}
contextual-manager-export-passwords-dialog-confirm-button = {COPY_PATTERN(from_path, "about-logins-confirm-export-dialog-confirm-button2")}
contextual-manager-passwords-export-file-picker-title = {COPY_PATTERN(from_path, "about-logins-export-file-picker-title2")}
contextual-manager-passwords-export-file-picker-export-button = {COPY_PATTERN(from_path, "about-logins-export-file-picker-export-button")}
contextual-manager-passwords-export-file-picker-csv-filter-title = {COPY_PATTERN(from_path, "about-logins-import-file-picker-csv-filter-title")}
contextual-manager-passwords-count = {COPY_PATTERN(from_path, "login-list-count2")}
contextual-manager-passwords-filtered-count = {COPY_PATTERN(from_path, "login-list-filtered-count2")}
contextual-manager-passwords-update-password-success-button = {COPY_PATTERN(from_path, "about-logins-import-dialog-done")}
contextual-manager-passwords-delete-password-success-button = {COPY_PATTERN(from_path, "about-logins-import-dialog-done")}
contextual-manager-passwords-remove-login-card-title = {COPY_PATTERN(from_path, "about-logins-confirm-delete-dialog-title")}
contextual-manager-passwords-remove-login-card-remove-button = {COPY_PATTERN(from_path, "about-logins-login-item-remove-button")}
contextual-manager-passwords-remove-login-card-cancel-button = {COPY_PATTERN(from_path, "login-item-cancel-button")}
contextual-manager-passwords-create-label =
.label = {COPY_PATTERN(from_path, "create-login-button.title")}
contextual-manager-passwords-list-label =
.aria-label = {COPY_PATTERN(from_path, "about-logins-page-title-name")}
contextual-manager-copy-icon =
.alt = {COPY_PATTERN(from_path, "login-item-copy-password-button-text")}
""",
from_path=source_logins,
),
)
ctx.add_transforms(
target,
target,
transforms_from(
"""
contextual-manager-card-number-label = {COPY_PATTERN(from_path, "autofill-card-number")}
contextual-manager-card-holder-label = {COPY_PATTERN(from_path, "autofill-card-name-on-card")}
contextual-manager-addresses-section-label = {COPY_PATTERN(from_path, "autofill-manage-addresses-list-header")}
contextual-manager-address-name-label = {COPY_PATTERN(from_path, "autofill-address-name")}
contextual-manager-address-phone-label = {COPY_PATTERN(from_path, "autofill-address-tel")}
contextual-manager-address-email-label = {COPY_PATTERN(from_path, "autofill-address-email")}
""",
from_path=source_autofill,
),
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment