def migrate(ctx):
    """Bug 1668284 - Unknown content type change settings label is no longer accurate, part {index}."""

    ctx.add_transforms(
        "toolkit/toolkit/global/unknownContentType.ftl",
        "toolkit/toolkit/global/unknownContentType.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("unknowncontenttype-settingschange"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("value"),
                        value=FTL.Pattern(
                            elements=[
                                FTL.Placeable(
                                    expression=FTL.SelectExpression(
                                        selector=MESSAGE_REFERENCE("PLATFORM()"),
                                        variants=[
                                            FTL.Variant(
                                                key=FTL.Identifier("windows"),
                                                default=False,
                                                value=REPLACE(
                                                    "toolkit/chrome/mozapps/downloads/settingsChange.dtd",
                                                    "settingsChangeOptions.label",
                                                    {
                                                        "&brandShortName;": TERM_REFERENCE(
                                                            "brand-short-name"
                                                        ),
                                                    },
                                                ),
                                            ),
                                            FTL.Variant(
                                                key=FTL.Identifier("other"),
                                                default=True,
                                                value=REPLACE(
                                                    "toolkit/chrome/mozapps/downloads/settingsChange.dtd",
                                                    "settingsChangePreferences.label",
                                                    {
                                                        "&brandShortName;": TERM_REFERENCE(
                                                            "brand-short-name"
                                                        ),
                                                    },
                                                ),
                                            ),
                                        ],
                                    )
                                )
                            ]
                        ),
                    )
                ],
            )
        ],
    )
def migrate(ctx):
    """Bug 1451992 - Migrate Preferences::Subdialogs::Site Data to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/siteDataSettings.ftl',
        'browser/browser/preferences/siteDataSettings.ftl', [
            FTL.Message(
                id=FTL.Identifier('site-data-settings-window'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('title'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'window2.title'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-search-textbox'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('placeholder'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'searchTextboxPlaceHolder')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'searchTextboxPlaceHolder.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-column-host'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'hostCol.label'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-column-cookies'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'cookiesCol.label'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-column-storage'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'usageCol.label'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-column-last-used'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'lastAccessedCol.label'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-remove-selected'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'removeSelected.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'removeSelected.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-button-cancel'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'cancel.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'cancel.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-button-save'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'save.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/siteDataSettings.dtd',
                            'save.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-removing-window'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('title'),
                        CONCAT(
                            MESSAGE_REFERENCE('site-data-removing-header'), ))
                ]),
            FTL.Message(
                id=FTL.Identifier('site-data-removing-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/siteDataSettings.dtd',
                    'removingDialog1.title')),
            FTL.Message(
                id=FTL.Identifier('site-data-removing-desc'),
                value=COPY(
                    'browser/chrome/browser/preferences/siteDataSettings.dtd',
                    'removingSelected1.description')),
            FTL.Message(
                id=FTL.Identifier('site-data-removing-table'),
                value=COPY(
                    'browser/chrome/browser/preferences/siteDataSettings.dtd',
                    'siteTree3.label'))
        ])
Example #3
0
def migrate(ctx):
    """Bug 1596667 - Migrate Screenshots add-on to Fluent, part {index}"""

    target_ftl = "locales/{}/screenshots.ftl".format(ctx.locale)
    reference_ftl = "locales/en-US/screenshots.ftl"
    webextension_properties = "locales/{}/webextension.properties".format(
        ctx.locale)
    ctx.add_transforms(
        target_ftl, reference_ftl,
        transforms_from("""
screenshots-context-menu = { COPY(from_path, "contextMenuLabel", trim: "True") }
screenshots-my-shots-button = { COPY(from_path, "myShotsLink", trim: "True") }
screenshots-instructions = { COPY(from_path, "screenshotInstructions", trim: "True") }
screenshots-cancel-button = { COPY(from_path, "cancelScreenshot", trim: "True") }
screenshots-save-visible-button = { COPY(from_path, "saveScreenshotVisibleArea", trim: "True") }
screenshots-save-page-button = { COPY(from_path, "saveScreenshotFullPage", trim: "True") }
screenshots-download-button = { COPY(from_path, "downloadScreenshot", trim: "True") }
screenshots-download-button-tooltip = { COPY(from_path, "downloadScreenshotTitle", trim: "True") }
screenshots-copy-button = { COPY(from_path, "copyScreenshot", trim: "True") }
screenshots-copy-button-tooltip = { COPY(from_path, "copyScreenshotTitle", trim: "True") }
screenshots-notification-link-copied-title = { COPY(from_path, "notificationLinkCopiedTitle", trim: "True") }
screenshots-notification-image-copied-title = { COPY(from_path, "notificationImageCopiedTitle", trim: "True") }
screenshots-request-error-title = { COPY(from_path, "requestErrorTitle", trim: "True") }
screenshots-request-error-details = { COPY(from_path, "requestErrorDetails", trim: "True") }
screenshots-connection-error-title = { COPY(from_path, "connectionErrorTitle", trim: "True") }
screenshots-unshootable-page-error-title = { COPY(from_path, "unshootablePageErrorTitle", trim: "True") }
screenshots-unshootable-page-error-details = { COPY(from_path, "unshootablePageErrorDetails", trim: "True") }
screenshots-empty-selection-error-title = { COPY(from_path, "emptySelectionErrorTitle", trim: "True") }
screenshots-private-window-error-details = { COPY(from_path, "privateWindowErrorDetails", trim: "True") }
screenshots-generic-error-details = { COPY(from_path, "genericErrorDetails", trim: "True") }

screenshots-meta-key = {
  PLATFORM() ->
    [macos] ⌘
   *[other] Ctrl
}
""",
                        from_path=webextension_properties))

    ctx.add_transforms(target_ftl, reference_ftl, [
        FTL.Message(
            id=FTL.Identifier("screenshots-notification-link-copied-details"),
            value=REPLACE(
                webextension_properties,
                "notificationLinkCopiedDetails",
                {"{meta_key}": MESSAGE_REFERENCE("screenshots-meta-key")},
                trim=True)),
        FTL.Message(
            id=FTL.Identifier("screenshots-notification-image-copied-details"),
            value=REPLACE(
                webextension_properties,
                "notificationImageCopiedDetails",
                {"{meta_key}": MESSAGE_REFERENCE("screenshots-meta-key")},
                trim=True)),
        FTL.Message(id=FTL.Identifier("screenshots-login-error-details"),
                    value=REPLACE(webextension_properties,
                                  "loginErrorDetails", {
                                      "Firefox Screenshots":
                                      TERM_REFERENCE("screenshots-brand-name")
                                  },
                                  trim=True)),
        FTL.Message(
            id=FTL.Identifier("screenshots-self-screenshot-error-title"),
            value=REPLACE(webextension_properties,
                          "selfScreenshotErrorTitle", {
                              "Firefox Screenshots":
                              TERM_REFERENCE("screenshots-brand-name")
                          },
                          trim=True)),
        FTL.Message(
            id=FTL.Identifier("screenshots-private-window-error-title"),
            value=REPLACE(
                webextension_properties,
                "privateWindowErrorTitle",
                {"Screenshots": TERM_REFERENCE("screenshots-brand-name")},
                trim=True)),
        FTL.Message(id=FTL.Identifier("screenshots-generic-error-title"),
                    value=REPLACE(webextension_properties,
                                  "genericErrorTitle", {
                                      "Firefox Screenshots":
                                      TERM_REFERENCE("screenshots-brand-name")
                                  },
                                  trim=True)),
        FTL.Message(id=FTL.Identifier("screenshots-connection-error-details"),
                    value=REPLACE(webextension_properties,
                                  "connectionErrorDetails", {
                                      "Firefox Screenshots":
                                      TERM_REFERENCE("screenshots-brand-name")
                                  },
                                  trim=True)),
    ])
Example #4
0
def migrate(ctx):
    """Bug 1608197 - Migrate createProfileWizard to Fluent, part {index}."""

    ctx.add_transforms(
        "toolkit/toolkit/global/createProfileWizard.ftl",
        "toolkit/toolkit/global/createProfileWizard.ftl",
        transforms_from(
            """
create-profile-window =
    .title = { COPY(from_path, "newprofile.title", trim:"True") }
    .style = { COPY(from_path, "window.size", trim:"True") }
profile-creation-explanation-4 = { PLATFORM() ->
    [macos] { COPY(from_path, "profileCreationExplanation_4Mac.text", trim:"True") }
   *[other] { COPY(from_path, "profileCreationExplanation_4.text", trim:"True") }
  }
profile-creation-intro = { COPY(from_path, "profileCreationIntro.text", trim:"True") }
profile-prompt = { COPY(from_path, "profilePrompt.label", trim:"True") }
    .accesskey = { COPY(from_path, "profilePrompt.accesskey", trim:"True") }
profile-default-name =
    .value = { COPY(from_path, "profileDefaultName", trim:"True") }
profile-directory-explanation = { COPY(from_path, "profileDirectoryExplanation.text", trim:"True") }
create-profile-choose-folder =
    .label = { COPY(from_path, "button.choosefolder.label", trim:"True") }
    .accesskey = { COPY(from_path, "button.choosefolder.accesskey", trim:"True") }
create-profile-use-default =
    .label = { COPY(from_path, "button.usedefault.label", trim:"True") }
    .accesskey = { COPY(from_path, "button.usedefault.accesskey", trim:"True") }
""",
            from_path="toolkit/chrome/mozapps/profile/createProfileWizard.dtd")
    )
    ctx.add_transforms(
        "toolkit/toolkit/global/createProfileWizard.ftl",
        "toolkit/toolkit/global/createProfileWizard.ftl", [
            FTL.Message(
                id=FTL.Identifier("create-profile-first-page-header"),
                value=FTL.Pattern(elements=[
                    FTL.Placeable(expression=FTL.SelectExpression(
                        selector=FTL.FunctionReference(
                            id=FTL.Identifier(name="PLATFORM"),
                            arguments=FTL.CallArguments(positional=[],
                                                        named=[])),
                        variants=[
                            FTL.Variant(
                                key=FTL.Identifier('macos'),
                                default=False,
                                value=COPY(
                                    "toolkit/chrome/global/wizard.properties",
                                    "default-first-title-mac",
                                )),
                            FTL.Variant(
                                key=FTL.Identifier('other'),
                                default=True,
                                value=REPLACE(
                                    "toolkit/chrome/global/wizard.properties",
                                    "default-first-title", {
                                        "%1$S":
                                        MESSAGE_REFERENCE(
                                            "create-profile-window.title"),
                                    },
                                    normalize_printf=True))
                        ]))
                ])),
            FTL.Message(
                id=FTL.Identifier("profile-creation-explanation-1"),
                value=REPLACE(
                    "toolkit/chrome/mozapps/profile/createProfileWizard.dtd",
                    "profileCreationExplanation_1.text",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier("profile-creation-explanation-2"),
                value=REPLACE(
                    "toolkit/chrome/mozapps/profile/createProfileWizard.dtd",
                    "profileCreationExplanation_2.text",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier("profile-creation-explanation-3"),
                value=REPLACE(
                    "toolkit/chrome/mozapps/profile/createProfileWizard.dtd",
                    "profileCreationExplanation_3.text",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier("create-profile-last-page-header"),
                value=FTL.Pattern(elements=[
                    FTL.Placeable(expression=FTL.SelectExpression(
                        selector=FTL.FunctionReference(
                            id=FTL.Identifier(name="PLATFORM"),
                            arguments=FTL.CallArguments(positional=[],
                                                        named=[])),
                        variants=[
                            FTL.Variant(
                                key=FTL.Identifier('macos'),
                                default=False,
                                value=COPY(
                                    "toolkit/chrome/global/wizard.properties",
                                    "default-last-title-mac",
                                )),
                            FTL.Variant(
                                key=FTL.Identifier('other'),
                                default=True,
                                value=REPLACE(
                                    "toolkit/chrome/global/wizard.properties",
                                    "default-last-title", {
                                        "%1$S":
                                        MESSAGE_REFERENCE(
                                            "create-profile-window.title"),
                                    },
                                    normalize_printf=True))
                        ]))
                ])),
        ])
def migrate(ctx):
    """Bug 1615501 - Fluent migration recipe for Preferences subdialogs, part {index}."""

    ctx.add_transforms(
        "mail/messenger/preferences/system-integration.ftl",
        "mail/messenger/preferences/system-integration.ftl",
        transforms_from(
            """
system-integration-title =
    .title = { COPY(from_path, "systemIntegration.title") }

system-integration-dialog =
    .buttonlabelaccept = { COPY(from_path, "acceptIntegration.label") }
    .buttonlabelcancel = { COPY(from_path, "cancelIntegration.label") }
    .buttonlabelcancel2 = { COPY(from_path, "cancelIntegration2.label") }

checkbox-email-label =
    .label = { COPY(from_path, "email.label") }
    .tooltiptext = { unset-default-tooltip }
checkbox-newsgroups-label =
    .label = { COPY(from_path, "newsgroups.label") }
    .tooltiptext = { unset-default-tooltip }
checkbox-feeds-label =
    .label = { COPY(from_path, "feeds.label") }
    .tooltiptext = { unset-default-tooltip }

system-search-engine-name = { PLATFORM() ->
    [macos] { COPY("mail/chrome/messenger/searchIntegrationMac.dtd", "searchIntegration.engineName") }
    [windows] { COPY("mail/chrome/messenger/searchIntegrationWin.dtd", "searchIntegration.engineName") }
    *[other] { COPY("mail/chrome/messenger/searchIntegrationDefault.dtd", "searchIntegration.engineName") }
}
""",
            from_path="mail/chrome/messenger/systemIntegrationDialog.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/system-integration.ftl",
        "mail/messenger/preferences/system-integration.ftl", [
            FTL.Message(
                id=FTL.Identifier("default-client-intro"),
                value=REPLACE(
                    "mail/chrome/messenger/systemIntegrationDialog.dtd",
                    "defaultClient.intro",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                )),
            FTL.Message(
                id=FTL.Identifier("unset-default-tooltip"),
                value=REPLACE(
                    "mail/chrome/messenger/systemIntegrationDialog.dtd",
                    "unsetDefault.tooltip",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                )),
            FTL.Message(
                id=FTL.Identifier("system-search-integration-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/systemIntegrationDialog.dtd",
                            "searchIntegration.label",
                            {
                                "&searchIntegration.engineName;":
                                MESSAGE_REFERENCE("system-search-engine-name")
                            },
                        )),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/systemIntegrationDialog.dtd",
                            "searchIntegration.accesskey"))
                ]),
            FTL.Message(
                id=FTL.Identifier("check-on-startup-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/systemIntegrationDialog.dtd",
                            "checkOnStartup.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        )),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/systemIntegrationDialog.dtd",
                            "checkOnStartup.accesskey"))
                ]),
        ])

    ctx.add_transforms(
        "mail/messenger/preferences/fonts.ftl",
        "mail/messenger/preferences/fonts.ftl",
        transforms_from(
            """
fonts-encoding-dialog-title =
    .title = { COPY(from_path, "fontsAndEncodingsDialog.title") }

fonts-language-legend =
    .value = { COPY(from_path, "language.label") }
    .accesskey = { COPY(from_path, "language.accesskey") }

fonts-proportional-label =
    .value = { COPY(from_path, "proportional.label") }
    .accesskey = { COPY(from_path, "proportional.accesskey") }

font-language-group-latin =
    .label = { COPY(from_path, "font.langGroup.latin") }
font-language-group-japanese =
    .label = { COPY(from_path, "font.langGroup.japanese") }
font-language-group-trad-chinese =
    .label = { COPY(from_path, "font.langGroup.trad-chinese") }
font-language-group-simpl-chinese =
    .label = { COPY(from_path, "font.langGroup.simpl-chinese") }
font-language-group-trad-chinese-hk =
    .label = { COPY(from_path, "font.langGroup.trad-chinese-hk") }
font-language-group-korean =
    .label = { COPY(from_path, "font.langGroup.korean") }
font-language-group-cyrillic =
    .label = { COPY(from_path, "font.langGroup.cyrillic") }
font-language-group-el =
    .label = { COPY(from_path, "font.langGroup.el") }
font-language-group-other =
    .label = { COPY(from_path, "font.langGroup.other") }
font-language-group-thai =
    .label = { COPY(from_path, "font.langGroup.thai") }
font-language-group-hebrew =
    .label = { COPY(from_path, "font.langGroup.hebrew") }
font-language-group-arabic =
    .label = { COPY(from_path, "font.langGroup.arabic") }
font-language-group-devanagari =
    .label = { COPY(from_path, "font.langGroup.devanagari") }
font-language-group-tamil =
    .label = { COPY(from_path, "font.langGroup.tamil") }
font-language-group-armenian =
    .label = { COPY(from_path, "font.langGroup.armenian") }
font-language-group-bengali =
    .label = { COPY(from_path, "font.langGroup.bengali") }
font-language-group-canadian =
    .label = { COPY(from_path, "font.langGroup.canadian") }
font-language-group-ethiopic =
    .label = { COPY(from_path, "font.langGroup.ethiopic") }
font-language-group-georgian =
    .label = { COPY(from_path, "font.langGroup.georgian") }
font-language-group-gujarati =
    .label = { COPY(from_path, "font.langGroup.gujarati") }
font-language-group-gurmukhi =
    .label = { COPY(from_path, "font.langGroup.gurmukhi") }
font-language-group-khmer =
    .label = { COPY(from_path, "font.langGroup.khmer") }
font-language-group-malayalam =
    .label = { COPY(from_path, "font.langGroup.malayalam") }
font-language-group-math =
    .label = { COPY(from_path, "font.langGroup.math") }
font-language-group-odia =
    .label = { COPY(from_path, "font.langGroup.odia") }
font-language-group-telugu =
    .label = { COPY(from_path, "font.langGroup.telugu") }
font-language-group-kannada =
    .label = { COPY(from_path, "font.langGroup.kannada") }
font-language-group-sinhala =
    .label = { COPY(from_path, "font.langGroup.sinhala") }
font-language-group-tibetan =
    .label = { COPY(from_path, "font.langGroup.tibetan") }

default-font-serif =
    .label = { COPY(from_path, "useDefaultFontSerif.label") }

default-font-sans-serif =
    .label = { COPY(from_path, "useDefaultFontSansSerif.label") }

font-size-label =
    .value = { COPY(from_path, "size.label") }
    .accesskey = { COPY(from_path, "sizeProportional.accesskey") }

font-size-monospace-label =
    .value = { COPY(from_path, "size.label") }
    .accesskey = { COPY(from_path, "sizeMonospace.accesskey") }

font-serif-label =
    .value = { COPY(from_path, "serif.label") }
    .accesskey = { COPY(from_path, "serif.accesskey") }

font-sans-serif-label =
    .value = { COPY(from_path, "sans-serif.label") }
    .accesskey = { COPY(from_path, "sans-serif.accesskey") }

font-monospace-label =
    .value = { COPY(from_path, "monospace.label") }
    .accesskey = { COPY(from_path, "monospace.accesskey") }

font-min-size-label =
    .value = { COPY(from_path, "minSize.label") }
    .accesskey = { COPY(from_path, "minSize.accesskey") }

min-size-none =
    .label = { COPY(from_path, "minSize.none") }

font-control-legend = { COPY(from_path, "fontControl.label") }

use-document-fonts-checkbox =
    .label = { COPY(from_path, "useDocumentFonts.label") }
    .accesskey = { COPY(from_path, "useDocumentFonts.accesskey") }

use-fixed-width-plain-checkbox =
    .label = { COPY(from_path, "useFixedWidthForPlainText.label") }
    .accesskey = { COPY(from_path, "fixedWidth.accesskey") }

text-encoding-legend = { COPY(from_path, "languagesTitle2.label") }

text-encoding-description = { COPY(from_path, "composingDescription2.label") }

font-outgoing-email-label =
    .value = { COPY(from_path, "sendDefaultCharset.label") }
    .accesskey = { COPY(from_path, "sendDefaultCharset.accesskey") }

font-incoming-email-label =
    .value = { COPY(from_path, "viewDefaultCharsetList.label") }
    .accesskey = { COPY(from_path, "viewDefaultCharsetList.accesskey") }

default-font-reply-checkbox =
    .label = { COPY(from_path, "replyInDefaultCharset3.label") }
    .accesskey = { COPY(from_path, "replyInDefaultCharset3.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/fonts.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/colors.ftl",
        "mail/messenger/preferences/colors.ftl",
        transforms_from(
            """
colors-dialog-window =
    .title = { COPY(from_path, "colorsDialog.title") }
    .style = { PLATFORM() ->
        [macos] width: { COPY(from_path, "window.macWidth") } !important
        *[other] width: { COPY(from_path, "window.width") } !important
    }

colors-dialog-legend = { COPY(from_path, "color") }

text-color-label =
    .value = { COPY(from_path, "textColor.label") }
    .accesskey = { COPY(from_path, "textColor.accesskey") }

background-color-label =
    .value = { COPY(from_path, "backgroundColor.label") }
    .accesskey = { COPY(from_path, "backgroundColor.accesskey") }

use-system-colors =
    .label = { COPY(from_path, "useSystemColors.label") }
    .accesskey = { COPY(from_path, "useSystemColors.accesskey") }

colors-link-legend = { COPY(from_path, "links") }

link-color-label =
    .value = { COPY(from_path, "linkColor.label") }
    .accesskey = { COPY(from_path, "linkColor.accesskey") }

visited-link-color-label =
    .value = { COPY(from_path, "visitedLinkColor.label") }
    .accesskey = { COPY(from_path, "visitedLinkColor.accesskey") }

underline-link-checkbox =
    .label = { COPY(from_path, "underlineLinks.label") }
    .accesskey = { COPY(from_path, "underlineLinks.accesskey") }

override-color-label =
    .value = { COPY(from_path, "overridePageColors.label") }
    .accesskey = { COPY(from_path, "overridePageColors.accesskey") }

override-color-always =
    .label = { COPY(from_path, "overridePageColors.always.label") }

override-color-auto =
    .label = { COPY(from_path, "overridePageColors.auto.label") }

override-color-never =
    .label = { COPY(from_path, "overridePageColors.never.label") }
""",
            from_path="mail/chrome/messenger/preferences/colors.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/notifications.ftl",
        "mail/messenger/preferences/notifications.ftl",
        transforms_from(
            """
notifications-dialog-window =
    .title = { COPY(from_path, "notificationsDialog2.title") }

customize-alert-description = { COPY(from_path, "alertCustomization.intro") }

preview-text-checkbox =
    .label = { COPY(from_path, "previewText.label") }
    .accesskey = { COPY(from_path, "previewText.accesskey") }

subject-checkbox =
    .label = { COPY(from_path, "subject.label") }
    .accesskey = { COPY(from_path, "subject.accesskey") }

sender-checkbox =
    .label = { COPY(from_path, "sender.label") }
    .accesskey = { COPY(from_path, "sender.accesskey") }

open-time-label-before =
    .value = { COPY(from_path, "totalOpenTimeBefore.label") }
    .accesskey = { COPY(from_path, "totalOpenTimeBefore.accesskey") }

open-time-label-after =
    .value = { COPY(from_path, "totalOpenTimeEnd.label") }
""",
            from_path="mail/chrome/messenger/preferences/notifications.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/new-tag.ftl",
        "mail/messenger/preferences/new-tag.ftl",
        transforms_from("""
tag-dialog-window =
    .title = { COPY(from_path, "newTagDialog1.title") }

tag-name-label =
    .value = { COPY(from_path, "name.label") }
    .accesskey = { COPY(from_path, "name.accesskey") }
""",
                        from_path="mail/chrome/messenger/newTagDialog.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/receipts.ftl",
        "mail/messenger/preferences/receipts.ftl",
        transforms_from(
            """
receipts-dialog-window =
    .title = { COPY(from_path, "dialog.title") }

return-receipt-checkbox =
    .label = { COPY(from_path, "requestReceipt.label") }
    .acceskey = { COPY(from_path, "requestReceipt.accesskey") }

receipt-arrive-label = { COPY(from_path, "receiptArrive.label") }

receipt-leave-radio =
    .label = { COPY(from_path, "leaveIt.label") }
    .acceskey = { COPY(from_path, "leaveIt.accesskey") }

receipt-move-radio =
    .label = { COPY(from_path, "moveToSent.label") }
    .acceskey = { COPY(from_path, "moveToSent.accesskey") }

receipt-request-label = { COPY(from_path, "requestMDN.label") }

receipt-return-never-radio =
    .label = { COPY(from_path, "never.label") }
    .acceskey = { COPY(from_path, "never.accesskey") }

receipt-return-some-radio =
    .label = { COPY(from_path, "returnSome.label") }
    .acceskey = { COPY(from_path, "returnSome.accesskey") }

receipt-not-to-cc =
    .value = { COPY(from_path, "notInToCc.label") }
    .acceskey = { COPY(from_path, "notInToCc.accesskey") }

receipt-send-never-label =
    .label = { COPY(from_path, "neverSend.label") }

receipt-send-always-label =
    .label = { COPY(from_path, "alwaysSend.label") }

receipt-send-ask-label =
    .label = { COPY(from_path, "askMe.label") }

sender-outside-domain =
    .value = { COPY(from_path, "outsideDomain.label") }
    .acceskey = { COPY(from_path, "outsideDomain.accesskey") }

other-cases-label =
    .value = { COPY(from_path, "otherCases.label") }
    .acceskey = { COPY(from_path, "otherCases.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/receipts.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/connection.ftl",
        "mail/messenger/preferences/connection.ftl",
        transforms_from(
            """
connection-dialog-window =
    .title = { COPY(from_path, "connectionsDialog.title") }
    .style = { PLATFORM() ->
        [macos] width: { COPY(from_path, "window.macWidth") } !important
        *[other] width: { COPY(from_path, "window.width") } !important
    }

connection-proxy-legend = { COPY(from_path, "proxyTitle.label") }

proxy-type-no =
    .label = { COPY(from_path, "noProxyTypeRadio.label") }
    .accesskey = { COPY(from_path, "noProxyTypeRadio.accesskey") }

proxy-type-wpad =
    .label = { COPY(from_path, "WPADTypeRadio.label") }
    .accesskey = { COPY(from_path, "WPADTypeRadio.accesskey") }

proxy-type-system =
    .label = { COPY(from_path, "systemTypeRadio.label") }
    .accesskey = { COPY(from_path, "systemTypeRadio.accesskey") }

proxy-type-manual =
    .label = { COPY(from_path, "manualTypeRadio.label") }
    .accesskey = { COPY(from_path, "manualTypeRadio.accesskey") }

proxy-http-label =
    .value = { COPY(from_path, "http.label") }
    .accesskey = { COPY(from_path, "http.accesskey") }

http-port-label =
    .value = { COPY(from_path, "HTTPport.label") }
    .accesskey = { COPY(from_path, "HTTPport.accesskey") }

proxy-http-sharing =
    .label = { COPY(from_path, "proxyHttpSharing.label") }
    .accesskey = { COPY(from_path, "proxyHttpSharing.accesskey") }

proxy-https-label =
    .value = { COPY(from_path, "https.label") }
    .accesskey = { COPY(from_path, "https.accesskey") }

ssl-port-label =
    .value = { COPY(from_path, "SSLport.label") }
    .accesskey = { COPY(from_path, "SSLport.accesskey") }

proxy-socks-label =
    .value = { COPY(from_path, "socks.label") }
    .accesskey = { COPY(from_path, "socks.accesskey") }

socks-port-label =
    .value = { COPY(from_path, "SOCKSport.label") }
    .accesskey = { COPY(from_path, "SOCKSport.accesskey") }

proxy-socks4-label =
    .label = { COPY(from_path, "socks4.label") }
    .accesskey = { COPY(from_path, "socks4.accesskey") }

proxy-socks5-label =
    .label = { COPY(from_path, "socks5.label") }
    .accesskey = { COPY(from_path, "socks5.accesskey") }

proxy-type-auto =
    .label = { COPY(from_path, "autoTypeRadio.label") }
    .accesskey = { COPY(from_path, "autoTypeRadio.accesskey") }

proxy-reload-label =
    .label = { COPY(from_path, "reload.label") }
    .accesskey = { COPY(from_path, "reload.accesskey") }

no-proxy-label =
    .value = { COPY(from_path, "noproxy.label") }
    .accesskey = { COPY(from_path, "noproxy.accesskey") }

no-proxy-example = { COPY(from_path, "noproxyExplain.label") }

no-proxy-localhost-label = { COPY(from_path, "noproxyLocalhostDesc.label") }

proxy-password-prompt =
    .label = { COPY(from_path, "autologinproxy.label") }
    .accesskey = { COPY(from_path, "autologinproxy.accesskey") }
    .tooltiptext = { COPY(from_path, "autologinproxy.tooltip") }

proxy-remote-dns =
    .label = { COPY(from_path, "socksRemoteDNS.label") }
    .accesskey = { COPY(from_path, "socksRemoteDNS.accesskey") }

proxy-enable-doh =
    .label = { COPY(from_path, "dnsOverHttps.label") }
    .accesskey = { COPY(from_path, "dnsOverHttps.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/connection.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/offline.ftl",
        "mail/messenger/preferences/offline.ftl",
        transforms_from(
            """
offline-dialog-window =
    .title = { COPY(from_path, "offlineDialog.title") }

autodetect-online-label =
    .label = { COPY(from_path, "checkAutoDetect.label") }
    .accesskey = { COPY(from_path, "checkAutoDetect.accesskey") }

startup-label = { COPY(from_path, "titleStartUp") }

status-radio-remember =
    .label = { COPY(from_path, "radioRememberPrevState.label") }
    .accesskey = { COPY(from_path, "radioRememberPrevState.accesskey") }

status-radio-ask =
    .label = { COPY(from_path, "radioAskState.label") }
    .accesskey = { COPY(from_path, "radioAskState.accesskey") }

status-radio-always-online =
    .label = { COPY(from_path, "radioAlwaysOnlineState.label") }
    .accesskey = { COPY(from_path, "radioAlwaysOnlineState.accesskey") }

status-radio-always-offline =
    .label = { COPY(from_path, "radioAlwaysOffline.label") }
    .accesskey = { COPY(from_path, "radioAlwaysOffline.accesskey") }

going-online-label = { COPY(from_path, "textGoingOnline") }

going-online-auto =
    .label = { COPY(from_path, "radioAutoSend.label") }
    .accesskey = { COPY(from_path, "radioAutoSend.accesskey") }

going-online-not =
    .label = { COPY(from_path, "radioNotSend.label") }
    .accesskey = { COPY(from_path, "radioNotSend.accesskey") }

going-online-ask =
    .label = { COPY(from_path, "radioAskUnsent.label") }
    .accesskey = { COPY(from_path, "radioAskUnsent.accesskey") }

going-offline-label = { COPY(from_path, "textGoingOffline") }

going-offline-auto =
    .label = { COPY(from_path, "radioAutoDownload.label") }
    .accesskey = { COPY(from_path, "radioAutoDownload.accesskey") }

going-offline-not =
    .label = { COPY(from_path, "radioNotDownload.label") }
    .accesskey = { COPY(from_path, "radioNotDownload.accesskey") }

going-offline-ask =
    .label = { COPY(from_path, "radioAskDownload.label") }
    .accesskey = { COPY(from_path, "radioAskDownload.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/offline.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/sendoptions.ftl",
        "mail/messenger/preferences/sendoptions.ftl",
        transforms_from(
            """
sendoptions-dialog-window =
    .title = { COPY(from_path, "dialog.title") }

send-mail-title = { COPY(from_path, "sendMail.title") }

auto-downgrade-label =
    .label = { COPY(from_path, "autoDowngrade.label") }
    .accesskey = { COPY(from_path, "autoDowngrade.accesskey") }

default-html-format-label = { COPY(from_path, "sendMaildesc.label") }

html-format-ask =
    .label = { COPY(from_path, "askMe.label") }
    .accesskey = { COPY(from_path, "askMe.accesskey") }

html-format-convert =
    .label = { COPY(from_path, "convertPlain.label") }
    .accesskey = { COPY(from_path, "convertPlain.accesskey") }

html-format-send-html =
    .label = { COPY(from_path, "sendHTML.label") }
    .accesskey = { COPY(from_path, "sendHTML.accesskey") }

html-format-send-both =
    .label = { COPY(from_path, "sendBoth.label") }
    .accesskey = { COPY(from_path, "sendBoth.accesskey") }

default-html-format-info = { COPY(from_path, "override.label") }

html-tab-label =
    .label = { COPY(from_path, "HTMLTab.label") }
    .accesskey = { COPY(from_path, "HTMLTab.accesskey") }

plain-tab-label =
    .label = { COPY(from_path, "PlainTextTab.label") }
    .accesskey = { COPY(from_path, "PlainTextTab.accesskey") }

add-domain-button =
    .label = { COPY(from_path, "AddHtmlDomain.label") }
    .accesskey = { COPY(from_path, "AddHtmlDomain.accesskey") }

delete-domain-button =
    .label = { COPY(from_path, "DeleteHtmlDomain.label") }
    .accesskey = { COPY(from_path, "DeleteHtmlDomain.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/sendoptions.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/sendoptions.ftl",
        "mail/messenger/preferences/sendoptions.ftl", [
            FTL.Message(
                id=FTL.Identifier("send-message-domain-label"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/sendoptions.dtd",
                    "domaindesc.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                )),
        ])

    ctx.add_transforms(
        "mail/messenger/preferences/attachment-reminder.ftl",
        "mail/messenger/preferences/attachment-reminder.ftl",
        transforms_from(
            """
attachment-reminder-window =
    .title = { COPY(from_path, "attachmentReminderDialog.title") }

keyword-new-button =
    .label = { COPY(from_path, "newKeywordButton.label") }
    .accesskey = { COPY(from_path, "newKeywordButton.accesskey") }

keyword-edit-button =
    .label = { COPY(from_path, "editKeywordButton1.label") }
    .accesskey = { COPY(from_path, "editKeywordButton1.accesskey") }

keyword-remove-button =
    .label = { COPY(from_path, "removeKeywordButton.label") }
    .accesskey = { COPY(from_path, "removeKeywordButton.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/attachmentReminder.dtd"
        ))

    ctx.add_transforms(
        "mail/messenger/preferences/attachment-reminder.ftl",
        "mail/messenger/preferences/attachment-reminder.ftl", [
            FTL.Message(
                id=FTL.Identifier("attachment-reminder-label"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/attachmentReminder.dtd",
                    "attachKeywordText.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                )),
        ])

    ctx.add_transforms(
        "mail/messenger/preferences/attachment-reminder.ftl",
        "mail/messenger/preferences/attachment-reminder.ftl",
        transforms_from(
            """
new-keyword-title = { COPY(from_path, "attachmentReminderNewDialogTitle") }
new-keyword-label = { COPY(from_path, "attachmentReminderNewText") }

edit-keyword-title = { COPY(from_path, "attachmentReminderEditDialogTitle") }
edit-keyword-label = { COPY(from_path, "attachmentReminderEditText") }
""",
            from_path="mail/chrome/messenger/preferences/preferences.properties"
        ))

    ctx.add_transforms(
        "mail/messenger/preferences/permissions.ftl",
        "mail/messenger/preferences/permissions.ftl",
        transforms_from(
            """
permissions-reminder-window =
    .title = { COPY(from_path, "window.title") }
    .style = width: { COPY(from_path, "window.width") };

window-close-key =
    .key = { COPY(from_path, "windowClose.key") }

website-address-label =
    .value = { COPY(from_path, "address.label") }
    .accesskey = { COPY(from_path, "address.accesskey") }

block-button =
    .label = { COPY(from_path, "block.label") }
    .accesskey = { COPY(from_path, "block.accesskey") }

allow-session-button =
    .label = { COPY(from_path, "session.label") }
    .accesskey = { COPY(from_path, "session.accesskey") }

allow-button =
    .label = { COPY(from_path, "allow.label") }
    .accesskey = { COPY(from_path, "allow.accesskey") }

treehead-sitename-label =
    .label = { COPY(from_path, "treehead.sitename.label") }

treehead-status-label =
    .label = { COPY(from_path, "treehead.status.label") }

remove-site-button =
    .label = { COPY(from_path, "removepermission.label") }
    .accesskey = { COPY(from_path, "removepermission.accesskey") }

remove-all-site-button =
    .label = { COPY(from_path, "removeallpermissions.label") }
    .accesskey = { COPY(from_path, "removeallpermissions.accesskey") }

cancel-button =
    .label = { COPY(from_path, "button.cancel.label") }
    .accesskey = { COPY(from_path, "button.cancel.accesskey") }

save-button =
    .label = { COPY(from_path, "button.ok.label") }
    .accesskey = { COPY(from_path, "button.ok.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/permissions.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/permissions.ftl",
        "mail/messenger/preferences/permissions.ftl",
        transforms_from(
            """
permission-can-label = { COPY(from_path, "can") }
permission-can-access-first-party-label = { COPY(from_path, "canAccessFirstParty") }
permission-can-session-label = { COPY(from_path, "canSession") }
permission-cannot-label = { COPY(from_path, "cannot") }

invalid-uri-message = { COPY(from_path, "invalidURI") }
invalid-uri-title = { COPY(from_path, "invalidURITitle") }
""",
            from_path="mail/chrome/messenger/preferences/preferences.properties"
        ))

    ctx.add_transforms(
        "mail/messenger/preferences/cookies.ftl",
        "mail/messenger/preferences/cookies.ftl",
        transforms_from(
            """
cookies-window-dialog =
    .title = { COPY(from_path, "window.title") }
    .style = width: { COPY(from_path, "window.width") };

window-close-key =
    .key = { COPY(from_path, "windowClose.key") }

window-focus-search-key =
    .key = { COPY(from_path, "focusSearch1.key") }

window-focus-search-alt-key =
    .key = { COPY(from_path, "focusSearch2.key") }

filter-search-label =
    .value = { COPY(from_path, "filter.label") }
    .accesskey = { COPY(from_path, "filter.accesskey") }

cookies-on-system-label = { COPY(from_path, "cookiesonsystem.label") }

treecol-site-header =
    .label = { COPY(from_path, "cookiedomain.label") }

treecol-name-header =
    .label = { COPY(from_path, "cookiename.label") }

props-name-label =
    .value = { COPY(from_path, "props.name.label") }
props-value-label =
    .value = { COPY(from_path, "props.value.label") }
props-domain-label =
    .value = { COPY(from_path, "props.domain.label") }
props-path-label =
    .value = { COPY(from_path, "props.path.label") }
props-secure-label =
    .value = { COPY(from_path, "props.secure.label") }
props-expires-label =
    .value = { COPY(from_path, "props.expires.label") }
props-container-label =
    .value = { COPY(from_path, "props.container.label") }

remove-cookie-button =
    .label = { COPY(from_path, "button.removecookie.label") }
    .accesskey = { COPY(from_path, "button.removecookie.accesskey") }

remove-all-cookies-button =
    .label = { COPY(from_path, "button.removeallcookies.label") }
    .accesskey = { COPY(from_path, "button.removeallcookies.accesskey") }

cookie-close-button =
    .label = { COPY(from_path, "button.close.label") }
    .accesskey = { COPY(from_path, "button.close.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/cookies.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/dock-options.ftl",
        "mail/messenger/preferences/dock-options.ftl",
        transforms_from(
            """
dock-options-window-dialog =
    .title = { COPY(from_path, "dockOptionsDialog.title") }
    .style = width: { COPY(from_path, "window.macWidth") };

bounce-system-dock-icon =
    .label = { COPY(from_path, "bounceSystemDockIcon.label") }
    .accesskey = { COPY(from_path, "bounceSystemDockIcon.accesskey") }

dock-icon-legend = { COPY(from_path, "dockIconBadge.label") }

dock-icon-show-label =
    .value = { COPY(from_path, "dockIconShow.label") }

count-unread-messages-radio =
    .label = { COPY(from_path, "showAllUnreadMessagesCount.label") }
    .accesskey = { COPY(from_path, "showAllUnreadMessagesCount.accesskey") }

count-new-messages-radio =
    .label = { COPY(from_path, "newMessagesCountDock.label") }
    .accesskey = { COPY(from_path, "newMessagesCountDock.accesskey") }

notification-settings-info = { COPY(from_path, "directNotificationSettings.label") }
""",
            from_path="mail/chrome/messenger/preferences/dockoptions.dtd"))

    ctx.add_transforms(
        "mail/messenger/preferences/application-manager.ftl",
        "mail/messenger/preferences/application-manager.ftl",
        transforms_from(
            """
app-manager-window-dialog =
    .title = { COPY(from_path, "appManager.title") }
    .style = { COPY(from_path, "appManager.style") }

remove-app-button =
    .label = { COPY(from_path, "remove.label") }
    .accesskey = { COPY(from_path, "remove.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/applicationManager.dtd"
        ))
Example #6
0
def migrate(ctx):
    """Bug 1523741 - Migrate aboutTelemetry to Fluent, part {index}."""

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutTelemetry.ftl",
        "toolkit/toolkit/about/aboutTelemetry.ftl",
        transforms_from("""
about-telemetry-ping-data-source = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.pingDataSource", trim:"True") }
about-telemetry-show-current-ping-data = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.showCurrentPingData", trim:"True") }
about-telemetry-show-archived-ping-data = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.showArchivedPingData", trim:"True") }
about-telemetry-show-subsession-data = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.showSubsessionData", trim:"True") }
about-telemetry-choose-ping = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.choosePing", trim:"True") }
about-telemetry-archive-ping-type = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.archivePingType", trim:"True") }
about-telemetry-archive-ping-header = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.archivePingHeader", trim:"True") }
about-telemetry-option-group-today = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.optionGroupToday", trim:"True") }
about-telemetry-option-group-yesterday = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.optionGroupYesterday", trim:"True") }
about-telemetry-option-group-older = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.optionGroupOlder", trim:"True") }
about-telemetry-previous-ping = { COPY("toolkit/chrome/global/aboutTelemetry.dtd", "aboutTelemetry.previousPing", trim:"True") }
about-telemetry-next-ping = { COPY("toolkit/chrome/global/aboutTelemetry.dtd", "aboutTelemetry.nextPing", trim:"True") }
about-telemetry-page-title = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.pageTitle", trim:"True") }
about-telemetry-more-information = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.moreInformations", trim:"True") }
about-telemetry-show-in-Firefox-json-viewer = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.showInFirefoxJsonViewer", trim:"True") }
about-telemetry-home-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.homeSection", trim:"True") }
about-telemetry-general-data-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.generalDataSection", trim:"True") }
about-telemetry-environment-data-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.environmentDataSection", trim:"True") }
about-telemetry-session-info-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.sessionInfoSection", trim:"True") }
about-telemetry-scalar-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.scalarsSection", trim:"True") }
about-telemetry-keyed-scalar-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.keyedScalarsSection", trim:"True") }
about-telemetry-histograms-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.histogramsSection", trim:"True") }
about-telemetry-keyed-histogram-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.keyedHistogramsSection", trim:"True") }
about-telemetry-events-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.eventsSection", trim:"True") }
about-telemetry-simple-measurements-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.simpleMeasurementsSection", trim:"True") }
about-telemetry-slow-sql-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.slowSqlSection", trim:"True") }
about-telemetry-addon-details-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.addonDetailsSection", trim:"True") }
about-telemetry-captured-stacks-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.capturedStacksSection", trim:"True") }
about-telemetry-late-writes-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.lateWritesSection", trim:"True") }
about-telemetry-raw-payload-section = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.rawPayloadSection", trim:"True") }
about-telemetry-raw = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.raw", trim:"True") }
about-telemetry-full-sql-warning = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.fullSqlWarning", trim:"True") }
about-telemetry-fetch-stack-symbols = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.fetchStackSymbols", trim:"True") }
about-telemetry-hide-stack-symbols = { COPY("toolkit/chrome/global/aboutTelemetry.dtd","aboutTelemetry.hideStackSymbols", trim:"True") }
about-telemetry-data-type =
    { $channel ->
        [release] { COPY("toolkit/chrome/global/aboutTelemetry.properties","releaseData") }
       *[prerelease] { COPY("toolkit/chrome/global/aboutTelemetry.properties","prereleaseData") }
    }
about-telemetry-upload-type =
    { $uploadcase ->
        [enabled] { COPY("toolkit/chrome/global/aboutTelemetry.properties","telemetryUploadEnabled") }
       *[disabled] { COPY("toolkit/chrome/global/aboutTelemetry.properties","telemetryUploadDisabled") }
    }
about-telemetry-filter-all-placeholder =
    .placeholder = { COPY("toolkit/chrome/global/aboutTelemetry.properties","filterAllPlaceholder") }
about-telemetry-current-ping-sidebar = { COPY("toolkit/chrome/global/aboutTelemetry.properties","currentPingSidebar") }
about-telemetry-telemetry-ping-type-all = { COPY("toolkit/chrome/global/aboutTelemetry.properties","telemetryPingTypeAll") }
about-telemetry-histogram-copy = { COPY("toolkit/chrome/global/aboutTelemetry.properties","histogramCopy") }
about-telemetry-slow-sql-main = { COPY("toolkit/chrome/global/aboutTelemetry.properties","slowSqlMain") }
about-telemetry-slow-sql-other = { COPY("toolkit/chrome/global/aboutTelemetry.properties","slowSqlOther") }
about-telemetry-slow-sql-hits = { COPY("toolkit/chrome/global/aboutTelemetry.properties","slowSqlHits") }
about-telemetry-slow-sql-average = { COPY("toolkit/chrome/global/aboutTelemetry.properties","slowSqlAverage") }
about-telemetry-slow-sql-statement = { COPY("toolkit/chrome/global/aboutTelemetry.properties","slowSqlStatement") }
about-telemetry-addon-table-id = { COPY("toolkit/chrome/global/aboutTelemetry.properties","addonTableID") }
about-telemetry-addon-table-details = { COPY("toolkit/chrome/global/aboutTelemetry.properties","addonTableDetails") }
about-telemetry-keys-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","keysHeader") }
about-telemetry-names-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","namesHeader") }
about-telemetry-values-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","valuesHeader") }
about-telemetry-stack-title = { COPY("toolkit/chrome/global/aboutTelemetry.properties","stackTitle") }
about-telemetry-memory-map-title = { COPY("toolkit/chrome/global/aboutTelemetry.properties","memoryMapTitle") }
about-telemetry-error-fetching-symbols = { COPY("toolkit/chrome/global/aboutTelemetry.properties","errorFetchingSymbols") }
about-telemetry-time-stamp-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","timestampHeader") }
about-telemetry-category-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","categoryHeader") }
about-telemetry-method-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","methodHeader") }
about-telemetry-object-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","objectHeader") }
about-telemetry-extra-header = { COPY("toolkit/chrome/global/aboutTelemetry.properties","extraHeader") }
"""))
    ctx.add_transforms(
        "toolkit/toolkit/about/aboutTelemetry.ftl",
        "toolkit/toolkit/about/aboutTelemetry.ftl", [
            FTL.Message(
                id=FTL.Identifier("about-telemetry-firefox-data-doc"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.dtd",
                    "aboutTelemetry.firefoxDataDoc", {
                        "<a>":
                        FTL.TextElement('<a data-l10n-name="data-doc-link">'),
                    },
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-telemetry-client-doc"),
                value=REPLACE("toolkit/chrome/global/aboutTelemetry.dtd",
                              "aboutTelemetry.telemetryClientDoc", {
                                  "<a>":
                                  FTL.TextElement(
                                      '<a data-l10n-name="client-doc-link">'),
                              },
                              trim=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-telemetry-dashboard"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.dtd",
                    "aboutTelemetry.telemetryDashboard", {
                        "<a>":
                        FTL.TextElement('<a data-l10n-name="dashboard-link">'),
                    },
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier(
                    "about-telemetry-telemetry-probe-dictionary"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.dtd",
                    "aboutTelemetry.telemetryProbeDictionary", {
                        "<a>":
                        FTL.TextElement(
                            '<a data-l10n-name="probe-dictionary-link">'),
                    },
                    trim=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-page-subtitle"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "pageSubtitle", {
                        "%1$S": VARIABLE_REFERENCE("telemetryServerOwner"),
                        "%2$S": TERM_REFERENCE("brand-full-name"),
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-settings-explanation"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "settingsExplanation", {
                        "%1$S":
                        MESSAGE_REFERENCE("about-telemetry-data-type"),
                        "%2$S":
                        CONCAT(
                            FTL.TextElement(
                                '<a data-l10n-name="upload-link">'),
                            MESSAGE_REFERENCE("about-telemetry-upload-type"),
                            FTL.TextElement("</a>")),
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-ping-details"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "pingDetails", {
                        "%1$S":
                        CONCAT(
                            FTL.TextElement('<a data-l10n-name="ping-link">'),
                            COPY(
                                "toolkit/chrome/global/aboutTelemetry.properties",
                                "pingExplanationLink"),
                            FTL.TextElement("</a>")),
                        "%2$S":
                        REPLACE(
                            "toolkit/chrome/global/aboutTelemetry.properties",
                            "namedPing", {
                                "%1$S": VARIABLE_REFERENCE("name"),
                                "%2$S": VARIABLE_REFERENCE("timestamp"),
                            },
                            normalize_printf=True)
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-ping-details-current"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "pingDetailsCurrent", {
                        "%1$S":
                        CONCAT(
                            FTL.TextElement('<a data-l10n-name="ping-link">'),
                            COPY(
                                "toolkit/chrome/global/aboutTelemetry.properties",
                                "pingExplanationLink"),
                            FTL.TextElement("</a>")),
                        "%2$S":
                        COPY("toolkit/chrome/global/aboutTelemetry.properties",
                             "currentPing")
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-filter-placeholder"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("placeholder"),
                        value=REPLACE(
                            "toolkit/chrome/global/aboutTelemetry.properties",
                            "filterPlaceholder", {
                                "%1$S": VARIABLE_REFERENCE("selectedTitle"),
                            },
                            normalize_printf=True))
                ]),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-results-for-search"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "resultsForSearch", {
                        "%1$S": VARIABLE_REFERENCE("searchTerms"),
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-no-search-results"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "noSearchResults", {
                        "%1$S": VARIABLE_REFERENCE("sectionName"),
                        "%2$S": VARIABLE_REFERENCE("currentSearchText"),
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-no-search-results-all"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "noSearchResultsAll", {
                        "%1$S": VARIABLE_REFERENCE("searchTerms"),
                    },
                    normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-no-data-to-display"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "noDataToDisplay", {
                        "%1$S": VARIABLE_REFERENCE("sectionName"),
                    },
                    normalize_printf=True)),
            FTL.Message(id=FTL.Identifier("about-telemetry-addon-provider"),
                        value=REPLACE(
                            "toolkit/chrome/global/aboutTelemetry.properties",
                            "addonProvider", {
                                "%1$S": VARIABLE_REFERENCE("addonProvider"),
                            },
                            normalize_printf=True)),
            FTL.Message(
                id=FTL.Identifier("about-telemetry-captured-stacks-title"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutTelemetry.properties",
                    "captured-stacks-title", {
                        "%1$S": VARIABLE_REFERENCE("stackKey"),
                        "%2$S": VARIABLE_REFERENCE("capturedStacksCount"),
                    },
                    normalize_printf=True)),
            FTL.Message(id=FTL.Identifier("about-telemetry-late-writes-title"),
                        value=REPLACE(
                            "toolkit/chrome/global/aboutTelemetry.properties",
                            "late-writes-title", {
                                "%1$S": VARIABLE_REFERENCE("lateWriteCount"),
                            },
                            normalize_printf=True)),
        ])
def migrate(ctx):
    """Migrate about:dialog, part {index}"""

    ctx.add_transforms('browser/about_dialog.ftl', 'about_dialog.ftl', [
        FTL.Message(
            id=FTL.Identifier('update-failed'),
            value=CONCAT(
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'update.failed.start'
                ),
                FTL.TextElement('<a>'),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'update.failed.linkText'
                ),
                FTL.TextElement('</a>'),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'update.failed.end'
                )
            )
        ),
        FTL.Message(
            id=FTL.Identifier('channel-description'),
            value=CONCAT(
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'channel.description.start'
                ),
                FTL.Placeable(EXTERNAL_ARGUMENT('channelname')),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'channel.description.end'
                )
            )
        ),
        FTL.Message(
            id=FTL.Identifier('community'),
            value=CONCAT(
                REPLACE(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'community.start2',
                    {
                        '&brandShortName;': MESSAGE_REFERENCE(
                            'brand-short-name'
                        )
                    }
                ),
                FTL.TextElement('<a>'),
                REPLACE(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'community.mozillaLink',
                    {
                        '&vendorShortName;': MESSAGE_REFERENCE(
                            'vendor-short-name'
                        )
                    }
                ),
                FTL.TextElement('</a>'),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'community.middle2'
                ),
                FTL.TextElement('<a>'),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'community.creditsLink'
                ),
                FTL.TextElement('</a>'),
                COPY(
                    'browser/chrome/browser/aboutDialog.dtd',
                    'community.end3'
                )
            )
        ),
    ])
Example #8
0
def migrate(ctx):
    """Bug 1491677 -  Migrate subsection of strings of extensions.dtd, part {index}"""

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutAddons.ftl",
        "toolkit/toolkit/about/aboutAddons.ftl",
        transforms_from("""
addons-window =
    .title = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "addons.windowTitle")}
search-header =
    .placeholder = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "search.placeholder3")}
    .searchbuttonlabel = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "search.buttonlabel")}
search-header-shortcut =
    .key = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "search.commandkey")}
loading-label =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "loading.label")}
list-empty-installed =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "listEmpty.installed.label")}
list-empty-available-updates =
    .value ={ COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "listEmpty.availableUpdates.label")}
list-empty-recent-updates =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "listEmpty.recentUpdates.label")}
list-empty-find-updates =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "listEmpty.findUpdates.label")}
list-empty-button =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "listEmpty.button.label")}
install-addon-from-file =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "installAddonFromFile.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "installAddonFromFile.accesskey")}
help-button = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "helpButton.label")}
tools-menu =
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "toolsMenu.tooltip")}
show-unsigned-extensions-button =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "showUnsignedExtensions.button.label")}
show-all-extensions-button =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "showAllExtensions.button.label")}
debug-addons =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "debugAddons.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "debugAddons.accesskey")}
cmd-show-details =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.showDetails.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.showDetails.accesskey")}
cmd-find-updates =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.findUpdates.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.findUpdates.accesskey")}
cmd-enable-theme =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.enableTheme.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.enableTheme.accesskey")}
cmd-disable-theme =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.disableTheme.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.disableTheme.accesskey")}
cmd-install-addon =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.installAddon.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.installAddon.accesskey")}
cmd-contribute =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.contribute.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.contribute.accesskey")}
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "cmd.contribute.tooltip")}
discover-title = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "discover.title")}
discover-footer = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "discover.footer", trim:"True")}
detail-version =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.version.label")}
detail-last-updated =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.lastupdated.label")}
detail-contributions-description = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.contributions.description")}
detail-update-type =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateType")}
detail-update-default =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateDefault.label")}
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateDefault.tooltip")}
detail-update-automatic =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateAutomatic.label")}
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateAutomatic.tooltip")}
detail-update-manual =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateManual.label")}
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.updateManual.tooltip")}
detail-home =
    .label ={ COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.home")}
detail-repository =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.repository")}
detail-check-for-updates =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.checkForUpdates.label")}
    .accesskey = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.checkForUpdates.accesskey")}
    .tooltiptext = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "detail.checkForUpdates.tooltip")}
detail-rating =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "rating2.label")}
addon-restart-now =
    .label = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "addon.restartNow.label")}
disabled-unsigned-heading =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "disabledUnsigned.heading")}
disabled-unsigned-learn-more = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "disabledUnsigned.learnMore")}
legacy-warning-show-legacy = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "legacyWarning.showLegacy")}
legacy-extensions =
    .value = { COPY("toolkit/chrome/mozapps/extensions/extensions.dtd", "legacyExtensions.title")}
"""))

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutAddons.ftl",
        "toolkit/toolkit/about/aboutAddons.ftl", [
            FTL.Message(
                id=FTL.Identifier("preferences"),
                value=FTL.Pattern(elements=[
                    FTL.Placeable(expression=FTL.SelectExpression(
                        selector=FTL.CallExpression(callee=FTL.Function(
                            "PLATFORM"), ),
                        variants=[
                            FTL.Variant(
                                key=FTL.Identifier("windows"),
                                default=False,
                                value=REPLACE(
                                    "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                    "preferencesWin.label", {
                                        "&brandShortName;":
                                        TERM_REFERENCE("-brand-short-name")
                                    })),
                            FTL.Variant(
                                key=FTL.Identifier("other"),
                                default=True,
                                value=REPLACE(
                                    "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                    "preferencesUnix.label", {
                                        "&brandShortName;":
                                        TERM_REFERENCE("-brand-short-name")
                                    }))
                        ]))
                ])),
            FTL.Message(
                id=FTL.Identifier("cmd-preferences"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                selector=FTL.CallExpression(
                                    callee=FTL.Function("PLATFORM"), ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.Identifier("windows"),
                                        default=False,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "cmd.preferencesWin.label")),
                                    FTL.Variant(
                                        key=FTL.Identifier("other"),
                                        default=True,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "cmd.preferencesUnix.label"))
                                ]))
                        ])),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                selector=FTL.CallExpression(
                                    callee=FTL.Function("PLATFORM"), ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.Identifier("windows"),
                                        default=False,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "cmd.preferencesWin.accesskey")),
                                    FTL.Variant(
                                        key=FTL.Identifier("other"),
                                        default=True,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "cmd.preferencesUnix.accesskey"))
                                ]))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier("discover-description"),
                value=REPLACE(
                    "toolkit/chrome/mozapps/extensions/extensions.dtd",
                    "discover.description2",
                    {"&brandShortName;": TERM_REFERENCE("-brand-short-name")},
                    trim=True)),
            FTL.Message(id=FTL.Identifier("detail-home-value"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("value"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(expression=MESSAGE_REFERENCE(
                                        "detail-home.label"))
                                ]))
                        ]),
            FTL.Message(id=FTL.Identifier("detail-repository-value"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("value"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(expression=MESSAGE_REFERENCE(
                                        "detail-repository.label"))
                                ]))
                        ]),
            FTL.Message(
                id=FTL.Identifier("detail-show-preferences"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                selector=FTL.CallExpression(
                                    callee=FTL.Function("PLATFORM"), ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.Identifier("windows"),
                                        default=False,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesWin.label")
                                    ),
                                    FTL.Variant(
                                        key=FTL.Identifier("other"),
                                        default=True,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesUnix.label")
                                    )
                                ]))
                        ])),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                selector=FTL.CallExpression(
                                    callee=FTL.Function("PLATFORM"), ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.Identifier("windows"),
                                        default=False,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesWin.accesskey"
                                        )),
                                    FTL.Variant(
                                        key=FTL.Identifier("other"),
                                        default=True,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesUnix.accesskey"
                                        ))
                                ]))
                        ])),
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                selector=FTL.CallExpression(
                                    callee=FTL.Function("PLATFORM"), ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.Identifier("windows"),
                                        default=False,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesWin.tooltip"
                                        )),
                                    FTL.Variant(
                                        key=FTL.Identifier("other"),
                                        default=True,
                                        value=COPY(
                                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                                            "detail.showPreferencesUnix.tooltip"
                                        ))
                                ]))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier("disabled-unsigned-description"),
                value=CONCAT(
                    REPLACE("toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "disabledUnsigned.description.start", {
                                "&brandShortName;":
                                TERM_REFERENCE("-brand-short-name")
                            }),
                    FTL.TextElement('<label data-l10n-name="find-addons">'),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "disabledUnsigned.description.findAddonsLink"),
                    FTL.TextElement("</label>"),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "disabledUnsigned.description.end"))),
            FTL.Message(
                id=FTL.Identifier("disabled-unsigned-devinfo"),
                value=CONCAT(
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "disabledUnsigned.devInfo.start"),
                    FTL.TextElement('<label data-l10n-name="learn-more">'),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "disabledUnsigned.devInfo.linkToManual"),
                    FTL.TextElement("</label>"),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "disabledUnsigned.devInfo.end"))),
            FTL.Message(
                id=FTL.Identifier("plugin-deprecation-description"),
                value=CONCAT(
                    REPLACE("toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "pluginDeprecation.description", {
                                "&brandShortName;":
                                TERM_REFERENCE("-brand-short-name")
                            }),
                    FTL.TextElement(' <label data-l10n-name="learn-more">'),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "pluginDeprecation.learnMore"),
                    FTL.TextElement("</label>"))),
            FTL.Message(
                id=FTL.Identifier("legacy-extensions-description"),
                value=CONCAT(
                    REPLACE("toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "legacyExtensions.description", {
                                "&brandShortName;":
                                TERM_REFERENCE("-brand-short-name")
                            }),
                    FTL.TextElement(
                        ' <label data-l10n-name="legacy-learn-more">'),
                    COPY("toolkit/chrome/mozapps/extensions/extensions.dtd",
                         "legacyExtensions.learnMore"),
                    FTL.TextElement("</label>")))
        ])
Example #9
0
def migrate(ctx):
    """Bug 1445694 - Migrate Preferences::Sync to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/branding/sync-brand.ftl',
        'browser/browser/branding/sync-brand.ftl',
        [
            FTL.Term(
                id=FTL.Identifier('-fxaccount-brand-name'),
                value=COPY(
                    'browser/chrome/browser/syncBrand.dtd',
                    'syncBrand.fxAccount.label'
                )
            ),
        ]
    )

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl',
        [
            FTL.Message(
                id=FTL.Identifier('sync-signedout-caption'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedOut.caption',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedout-description'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedOut.description',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedout-account-title'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedOut.accountBox.title',
                    {
                        '&syncBrand.fxAccount.label;': MESSAGE_REFERENCE('-fxaccount-brand-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedout-account-create'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedOut.accountBox.create2',
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'signedOut.accountBox.create2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedout-account-signin'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'signedOut.accountBox.signin2',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'signedOut.accountBox.signin2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-profile-picture'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'profilePicture.tooltip',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-disconnect'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'disconnect3.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'disconnect3.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-manage-account'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'verifiedManage.label',
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'verifiedManage.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedin-unverified'),
                value=CONCAT_BEFORE_AFTER(
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'signedInUnverified.beforename.label',
                    ),
                    EXTERNAL_ARGUMENT('email'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'signedInUnverified.aftername.label',
                    ),
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedin-login-failure'),
                value=CONCAT_BEFORE_AFTER(
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'signedInLoginFailure.beforename.label',
                    ),
                    EXTERNAL_ARGUMENT('email'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'signedInLoginFailure.aftername.label',
                    ),
                )
            ),
            FTL.Message(
                id=FTL.Identifier('sync-resend-verification'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'resendVerification.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'resendVerification.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-remove-account'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'removeAccount.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'removeAccount.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-sign-in'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'signIn.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'signIn.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedin-settings-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedIn.settings.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-signedin-settings-desc'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'signedIn.settings.description',
                    {
                        '&brandShortName;': MESSAGE_REFERENCE('-brand-short-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-bookmarks'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.bookmarks.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.bookmarks.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-history'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.history.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.history.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-tabs'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.tabs.label2',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.tabs.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.tabs.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-logins'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.logins.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.logins.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.logins.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-addresses'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addresses.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addresses.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addresses.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-creditcards'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.creditcards.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.creditcards.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.creditcards.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-addons'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addons.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addons.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.addons.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-engine-prefs'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        FTL.Pattern([
                            FTL.Placeable(FTL.SelectExpression(
                                expression=FTL.CallExpression(
                                    callee=FTL.Identifier('PLATFORM')
                                ),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.VariantName('windows'),
                                        default=False,
                                        value=COPY(
                                            'browser/chrome/browser/preferences/sync.dtd',
                                            'engine.prefsWin.label'
                                        )
                                    ),
                                    FTL.Variant(
                                        key=FTL.VariantName('other'),
                                        default=True,
                                        value=COPY(
                                            'browser/chrome/browser/preferences/sync.dtd',
                                            'engine.prefs.label'
                                        )
                                    )
                                ]
                            )),
                        ]),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('tooltiptext'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.prefs.title'
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'engine.prefs.accesskey'
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-device-name-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'fxaSyncDeviceName.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-device-name-change'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'changeSyncDeviceName2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'changeSyncDeviceName2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-device-name-cancel'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'cancelChangeSyncDeviceName.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'cancelChangeSyncDeviceName.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-device-name-save'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'saveChangeSyncDeviceName.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/sync.dtd',
                            'saveChangeSyncDeviceName.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sync-mobilepromo-single'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'mobilepromo.singledevice',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-mobilepromo-multi'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'mobilepromo.multidevice',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-tos-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'prefs.tosLink.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sync-fxa-privacy-notice'),
                value=COPY(
                    'browser/chrome/browser/preferences/sync.dtd',
                    'fxaPrivacyNotice.link.label',
                ),
            ),
        ]
    )
Example #10
0
def migrate(ctx):
    """Bug 1453480 - Migrate Fluent resources to use DOM Overlays, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('search-results-empty-message'),
                value=FTL.Pattern(elements=[
                    FTL.Placeable(expression=FTL.SelectExpression(
                        expression=FTL.CallExpression(
                            callee=FTL.Function('PLATFORM')),
                        variants=[
                            FTL.Variant(
                                key=FTL.VariantName('windows'),
                                default=False,
                                value=REPLACE(
                                    'browser/chrome/browser/preferences/preferences.properties',
                                    'searchResults.sorryMessageWin', {
                                        '%S':
                                        FTL.TextElement(
                                            '<span data-l10n-name="query"></span>'
                                        )
                                    })),
                            FTL.Variant(
                                key=FTL.VariantName('other'),
                                default=True,
                                value=REPLACE(
                                    'browser/chrome/browser/preferences/preferences.properties',
                                    'searchResults.sorryMessageUnix', {
                                        '%S':
                                        FTL.TextElement(
                                            '<span data-l10n-name="query"></span>'
                                        )
                                    }))
                        ]))
                ])),
            FTL.Message(
                id=FTL.Identifier('search-results-help-link'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'searchResults.needHelp3', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<a data-l10n-name="url">'),
                            REPLACE(
                                'browser/chrome/browser/preferences/preferences.properties',
                                'searchResults.needHelpSupportLink', {
                                    '%S':
                                    MESSAGE_REFERENCE('-brand-short-name'),
                                }), FTL.TextElement('</a>'))
                    })),
            FTL.Message(
                id=FTL.Identifier('update-application-version'),
                value=CONCAT(
                    COPY('browser/chrome/browser/preferences/advanced.dtd',
                         'updateApplication.version.pre'),
                    EXTERNAL_ARGUMENT('version'),
                    COPY('browser/chrome/browser/preferences/advanced.dtd',
                         'updateApplication.version.post'),
                    FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    COPY('browser/chrome/browser/aboutDialog.dtd',
                         'releaseNotes.link'), FTL.TextElement('</a>'))),
            FTL.Message(
                id=FTL.Identifier(
                    'performance-limit-content-process-blocked-desc'),
                value=CONCAT(
                    REPLACE('browser/chrome/browser/preferences/advanced.dtd',
                            'limitContentProcessOption.disabledDescription', {
                                '&brandShortName;':
                                MESSAGE_REFERENCE('-brand-short-name')
                            }),
                    FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    COPY('browser/chrome/browser/preferences/advanced.dtd',
                         'limitContentProcessOption.disabledDescriptionLink'),
                    FTL.TextElement('</a>'))),
            FTL.Message(
                id=FTL.Identifier('tracking-desc'),
                value=CONCAT(
                    COPY('browser/chrome/browser/preferences/privacy.dtd',
                         'trackingProtection3.description'),
                    FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    COPY('browser/chrome/browser/preferences/privacy.dtd',
                         'trackingProtectionLearnMore2.label'),
                    FTL.TextElement('</a>'))),
        ])
def migrate(ctx):
    """Bug 1457021 - Migrate the JS of Preferences subdialogs to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/permissions.ftl',
        'browser/browser/preferences/permissions.ftl',
        transforms_from("""
permissions-capabilities-allow =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "can") }
permissions-capabilities-block =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "cannot") }
permissions-capabilities-prompt =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "prompt") }
"""))

    ctx.add_transforms(
        'browser/browser/preferences/blocklists.ftl',
        'browser/browser/preferences/blocklists.ftl',
        transforms_from("""
blocklist-item-moz-std-name = { COPY("browser/chrome/browser/preferences/preferences.properties", "mozstdName") }
blocklist-item-moz-std-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "mozstdDesc") }
blocklist-item-moz-full-name = { COPY("browser/chrome/browser/preferences/preferences.properties", "mozfullName") }
blocklist-item-moz-full-desc = { COPY("browser/chrome/browser/preferences/preferences.properties", "mozfullDesc2") }
""") + [
            FTL.Message(
                id=FTL.Identifier('blocklist-item-list-template'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'mozNameTemplate', {
                        '%1$S': VARIABLE_REFERENCE('listName'),
                        '%2$S': VARIABLE_REFERENCE('description')
                    }))
        ])

    ctx.add_transforms(
        'browser/browser/preferences/fonts.ftl',
        'browser/browser/preferences/fonts.ftl',
        transforms_from("""
fonts-very-large-warning-title = { COPY("browser/chrome/browser/preferences/preferences.properties", "veryLargeMinimumFontTitle") }
fonts-very-large-warning-message = { COPY("browser/chrome/browser/preferences/preferences.properties", "veryLargeMinimumFontWarning") }
fonts-very-large-warning-accept = { COPY("browser/chrome/browser/preferences/preferences.properties", "acceptVeryLargeMinimumFont") }
fonts-label-default-unnamed =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "labelDefaultFontUnnamed") }
""") + [
            FTL.Message(
                id=FTL.Identifier('fonts-label-default'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/preferences.properties',
                            'labelDefaultFont',
                            {'%S': VARIABLE_REFERENCE('name')})),
                ])
        ])

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl',
        transforms_from("""
sitedata-total-size-calculating = { COPY("browser/chrome/browser/preferences/preferences.properties", "loadingSiteDataSize1") }
""") + [
            FTL.Message(
                id=FTL.Identifier('sitedata-total-size'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'totalSiteDataSize2', {
                        '%1$S': VARIABLE_REFERENCE('value'),
                        '%2$S': VARIABLE_REFERENCE('unit')
                    }))
        ])

    ctx.add_transforms(
        'browser/browser/preferences/siteDataSettings.ftl',
        'browser/browser/preferences/siteDataSettings.ftl',
        transforms_from("""
site-data-remove-all =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "removeAllSiteData.label") }
    .accesskey = { COPY("browser/chrome/browser/preferences/preferences.properties", "removeAllSiteData.accesskey") }
site-data-remove-shown =
    .label = { COPY("browser/chrome/browser/preferences/preferences.properties", "removeAllSiteDataShown.label") }
    .accesskey = { COPY("browser/chrome/browser/preferences/preferences.properties", "removeAllSiteDataShown.accesskey") }
site-data-removing-dialog =
    .title = { site-data-removing-header }
    .buttonlabelaccept = { COPY("browser/chrome/browser/preferences/preferences.properties", "acceptRemove") }

""") + [
            # This replacement might not always work, since locales can either
            # remove the space, or use a non-breaking space for "%1$S %2$S"
            FTL.Message(
                id=FTL.Identifier('site-usage-persistent'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'siteUsagePersistent',
                    {'%1$S %2$S': MESSAGE_REFERENCE('site-usage-pattern')})),
            FTL.Message(
                id=FTL.Identifier('site-data-settings-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'siteDataSettings3.description',
                    {'%S': TERM_REFERENCE('-brand-short-name')})),
            FTL.Message(
                id=FTL.Identifier('site-usage-pattern'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'siteUsage', {
                        '%1$S': VARIABLE_REFERENCE('value'),
                        '%2$S': VARIABLE_REFERENCE('unit')
                    }))
        ])

    ctx.add_transforms(
        'browser/browser/preferences/languages.ftl',
        'browser/browser/preferences/languages.ftl', [
            FTL.Message(
                id=FTL.Identifier('languages-code-format'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/preferences.properties',
                            'languageCodeFormat', {
                                '%1$S': VARIABLE_REFERENCE('locale'),
                                '%2$S': VARIABLE_REFERENCE('code')
                            }))
                ])
        ])
Example #12
0
def migrate(ctx):
    """Bug 1517519 - Migrate aboutTabCrashed to Fluent, part {index}."""

    ctx.add_transforms(
        "browser/browser/aboutTabCrashed.ftl",
        "browser/browser/aboutTabCrashed.ftl",
        transforms_from("""
crashed-title = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.title")}
crashed-close-tab-button = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.closeTab2")}
crashed-restore-tab-button = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.restoreTab")}
crashed-restore-all-button = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.restoreAll")}
crashed-header ={ COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.header2")}
crashed-offer-help = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.offerHelp2")}
crashed-request-help = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.requestHelp")}
crashed-request-report-title = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.requestReport")}
crashed-send-report = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.sendReport3")}
crashed-email-placeholder = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.emailPlaceholder")}
crashed-email-me = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.emailMe")}
crashed-request-auto-submit-title = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.requestAutoSubmit2")}
crashed-comment = 
    .placeholder = { COPY("browser/chrome/browser/aboutTabCrashed.dtd", "tabCrashed.commentPlaceholder2")}

"""))

    ctx.add_transforms(
        "browser/browser/aboutTabCrashed.ftl",
        "browser/browser/aboutTabCrashed.ftl", [
            FTL.Message(id=FTL.Identifier("crashed-single-offer-help-message"),
                        value=REPLACE(
                            "browser/chrome/browser/aboutTabCrashed.dtd",
                            "tabCrashed.single.offerHelpMessage2", {
                                "&tabCrashed.restoreTab;":
                                MESSAGE_REFERENCE("crashed-restore-tab-button")
                            })),
            FTL.Message(
                id=FTL.Identifier("crashed-multiple-offer-help-message"),
                value=REPLACE(
                    "browser/chrome/browser/aboutTabCrashed.dtd",
                    "tabCrashed.multiple.offerHelpMessage2", {
                        "&tabCrashed.restoreTab;":
                        MESSAGE_REFERENCE("crashed-restore-tab-button"),
                        "&tabCrashed.restoreAll;":
                        MESSAGE_REFERENCE("crashed-restore-all-button")
                    })),
            FTL.Message(
                id=FTL.Identifier("crashed-request-help-message"),
                value=REPLACE(
                    "browser/chrome/browser/aboutTabCrashed.dtd",
                    "tabCrashed.requestHelpMessage",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")})),
            FTL.Message(
                id=FTL.Identifier("crashed-include-URL"),
                value=REPLACE(
                    "browser/chrome/browser/aboutTabCrashed.dtd",
                    "tabCrashed.includeURL3",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")})),
            FTL.Message(
                id=FTL.Identifier("crashed-report-sent"),
                value=REPLACE(
                    "browser/chrome/browser/aboutTabCrashed.dtd",
                    "tabCrashed.reportSent",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")})),
            FTL.Message(
                id=FTL.Identifier("crashed-auto-submit-checkbox"),
                value=REPLACE(
                    "browser/chrome/browser/aboutTabCrashed.dtd",
                    "tabCrashed.autoSubmit3",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")}))
        ])
Example #13
0
def migrate(ctx):
    """Bug 1424682 - Migrate the chrome of Preferences to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/locales/en-US/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('pref-page'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('title'),
                        FTL.Pattern(elements=[
                            FTL.Placeable(expression=FTL.SelectExpression(
                                expression=FTL.CallExpression(
                                    callee=FTL.Identifier('PLATFORM')),
                                variants=[
                                    FTL.Variant(
                                        key=FTL.VariantName('windows'),
                                        default=False,
                                        value=COPY(
                                            'browser/chrome/browser/preferences/preferences.dtd',
                                            'prefWindow.titleWin')),
                                    FTL.Variant(
                                        key=FTL.VariantName('other'),
                                        default=True,
                                        value=COPY(
                                            'browser/chrome/browser/preferences/preferences.dtd',
                                            'prefWindow.title'))
                                ]))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier('search-input'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('style'),
                        CONCAT(
                            FTL.TextElement('width: '),
                            COPY(
                                'browser/chrome/browser/preferences/preferences.dtd',
                                'searchField.width')),
                    )
                ]),
            FTL.Message(
                id=FTL.Identifier('pane-general-title'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'paneGeneral.title')),
            FTL.Message(id=FTL.Identifier('category-general'),
                        attributes=[
                            FTL.Attribute(
                                FTL.Identifier('tooltiptext'),
                                CONCAT(
                                    MESSAGE_REFERENCE('pane-general-title')))
                        ]),
            FTL.Message(
                id=FTL.Identifier('pane-search-title'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'paneSearch.title')),
            FTL.Message(id=FTL.Identifier('category-search'),
                        attributes=[
                            FTL.Attribute(
                                FTL.Identifier('tooltiptext'),
                                CONCAT(MESSAGE_REFERENCE('pane-search-title')))
                        ]),
            FTL.Message(
                id=FTL.Identifier('pane-privacy-title'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'panePrivacySecurity.title')),
            FTL.Message(id=FTL.Identifier('category-privacy'),
                        attributes=[
                            FTL.Attribute(
                                FTL.Identifier('tooltiptext'),
                                CONCAT(
                                    MESSAGE_REFERENCE('pane-privacy-title')))
                        ]),
            FTL.Message(
                id=FTL.Identifier('pane-sync-title'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'paneSync1.title')),
            FTL.Message(id=FTL.Identifier('category-sync'),
                        attributes=[
                            FTL.Attribute(
                                FTL.Identifier('tooltiptext'),
                                CONCAT(MESSAGE_REFERENCE('pane-sync-title')))
                        ]),
            FTL.Message(
                id=FTL.Identifier('help-button-label'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'helpButton2.label', {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    })),
            FTL.Message(
                id=FTL.Identifier('focus-search'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('key'),
                        COPY('toolkit/chrome/passwordmgr/passwordManager.dtd',
                             'focusSearch1.key'))
                ]),
            FTL.Message(id=FTL.Identifier('close-button'),
                        attributes=[
                            FTL.Attribute(
                                FTL.Identifier('aria-label'),
                                COPY('toolkit/chrome/global/preferences.dtd',
                                     'preferencesCloseButton.label'))
                        ]),
            FTL.Message(
                id=FTL.Identifier('feature-enable-requires-restart'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'featureEnableRequiresRestart',
                    {'%S': MESSAGE_REFERENCE('-brand-short-name')})),
            FTL.Message(
                id=FTL.Identifier('feature-disable-requires-restart'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'featureDisableRequiresRestart',
                    {'%S': MESSAGE_REFERENCE('-brand-short-name')})),
            FTL.Message(
                id=FTL.Identifier('should-restart-title'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'shouldRestartTitle',
                    {'%S': MESSAGE_REFERENCE('-brand-short-name')})),
            FTL.Message(
                id=FTL.Identifier('should-restart-ok'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'okToRestartButton',
                    {'%S': MESSAGE_REFERENCE('-brand-short-name')})),
            FTL.Message(
                id=FTL.Identifier('restart-later'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'restartLater',
                )),
        ])
def migrate(ctx):
    """Bug 1451992 - Migrate Preferences::Subdialogs::Blocklists to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/blocklists.ftl',
        'browser/browser/preferences/blocklists.ftl', [
            FTL.Message(
                id=FTL.Identifier('blocklist-window'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('title'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'window.title',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('style'),
                        CONCAT(
                            FTL.TextElement('width: '),
                            COPY(
                                'browser/chrome/browser/preferences/blocklists.dtd',
                                'window.width'))),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('blocklist-desc'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'blockliststext',
                    {'Firefox': MESSAGE_REFERENCE('-brand-short-name')},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('blocklist-close-key'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('key'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'windowClose.key',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('blocklist-treehead-list'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'treehead.list.label',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('blocklist-button-cancel'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'button.cancel.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'button.cancel.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('blocklist-button-ok'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'button.ok.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/blocklists.dtd',
                            'button.ok.accesskey',
                        ),
                    ),
                ],
            ),
        ])
Example #15
0
def migrate(ctx):
    """Bug 1491679 - Convert a subset of the strings in extensions.dtd to using Fluent for localization, part {index}."""

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutAddons.ftl",
        "toolkit/toolkit/about/aboutAddons.ftl",
        transforms_from(
            """
extensions-warning-safe-mode-label =
    .value = { COPY(from_path, "warning.safemode.label") }
extensions-warning-check-compatibility-label =
    .value = { COPY(from_path, "warning.checkcompatibility.label") }
extensions-warning-check-compatibility-enable =
    .label = { COPY(from_path, "warning.checkcompatibility.enable.label") }
    .tooltiptext = { COPY(from_path, "warning.checkcompatibility.enable.tooltip") }
extensions-warning-update-security-label =
    .value = { COPY(from_path, "warning.updatesecurity.label") }
extensions-warning-update-security-enable =
    .label = { COPY(from_path, "warning.updatesecurity.enable.label") }
    .tooltiptext = { COPY(from_path, "warning.updatesecurity.enable.tooltip") }
extensions-updates-check-for-updates =
    .label = { COPY(from_path, "updates.checkForUpdates.label") }
    .accesskey = { COPY(from_path, "updates.checkForUpdates.accesskey") }
extensions-updates-view-updates =
    .label = { COPY(from_path, "updates.viewUpdates.label") }
    .accesskey = { COPY(from_path, "updates.viewUpdates.accesskey") }
extensions-updates-update-addons-automatically =
    .label = { COPY(from_path, "updates.updateAddonsAutomatically.label") }
    .accesskey = { COPY(from_path, "updates.updateAddonsAutomatically.accesskey") }
extensions-updates-reset-updates-to-automatic =
    .label = { COPY(from_path, "updates.resetUpdatesToAutomatic.label") }
    .accesskey = { COPY(from_path, "updates.resetUpdatesToAutomatic.accesskey") }
extensions-updates-reset-updates-to-manual =
    .label = { COPY(from_path, "updates.resetUpdatesToManual.label") }
    .accesskey = { COPY(from_path, "updates.resetUpdatesToManual.accesskey") }
extensions-updates-updating =
    .value = { COPY(from_path, "updates.updating.label") }
extensions-updates-installed =
    .value = { COPY(from_path, "updates.installed.label") }
extensions-updates-downloaded =
    .value = { COPY(from_path, "updates.downloaded.label") }
extensions-updates-restart =
    .label = { COPY(from_path, "updates.restart.label") }
extensions-updates-none-found =
    .value = { COPY(from_path, "updates.noneFound.label") }
extensions-updates-manual-updates-found =
    .label = { COPY(from_path, "updates.manualUpdatesFound.label") }
extensions-updates-update-selected =
    .label = { COPY(from_path, "updates.updateSelected.label") }
    .tooltiptext = { COPY(from_path, "updates.updateSelected.tooltip") }
""",
            from_path="toolkit/chrome/mozapps/extensions/extensions.dtd"))

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutAddons.ftl",
        "toolkit/toolkit/about/aboutAddons.ftl", [
            FTL.Message(
                id=FTL.Identifier("extensions-view-discover"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("name"),
                        value=COPY(
                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "view.discover.label")),
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-view-discover.name"))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier("extensions-view-recent-updates"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("name"),
                        value=COPY(
                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "view.recentUpdates.label")),
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-view-recent-updates.name"))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier("extensions-view-available-updates"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("name"),
                        value=COPY(
                            "toolkit/chrome/mozapps/extensions/extensions.dtd",
                            "view.availableUpdates.label")),
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-view-available-updates.name"))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier("extensions-warning-safe-mode-container"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-warning-safe-mode-label.value"))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier(
                    "extensions-warning-check-compatibility-container"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-warning-check-compatibility-label.value"
                            ))
                        ]))
                ]),
            FTL.Message(
                id=FTL.Identifier(
                    "extensions-warning-update-security-container"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("tooltiptext"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "extensions-warning-update-security-label.value"
                            ))
                        ]))
                ]),
        ])
Example #16
0
def migrate(ctx):
    """Bug 1615501 - Fluent migration recipe for Preferences Tab, part {index}."""

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
close-button =
    .aria-label = { COPY(from_path, "preferencesCloseButton.label") }
preferences-title =
    .title = { PLATFORM() ->
        [windows] { COPY(from_path, "prefWindow.titleWin") }
        *[other] { COPY(from_path, "prefWindow.titleMAC") }
    }
pane-compose-title = { COPY(from_path, "paneComposition.title") }
category-compose =
    .tooltiptext = { COPY(from_path, "paneComposition.title") }
pane-privacy-title = { COPY(from_path, "panePrivacySecurity.title") }
category-privacy =
    .tooltiptext = { COPY(from_path, "panePrivacySecurity.title") }
pane-chat-title = { COPY(from_path, "paneChat.title") }
category-chat =
    .tooltiptext = { COPY(from_path, "paneChat.title") }
addons-button = { COPY(from_path, "addonsButton.label") }
""",
            from_path="mail/chrome/messenger/preferences/preferences.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
pane-calendar-title = { COPY(from_path, "lightning.preferencesLabel") }
category-calendar =
    .tooltiptext = { COPY(from_path, "lightning.preferencesLabel") }
""",
            from_path="calendar/chrome/lightning/lightning.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
location-label =
    .value = { COPY(from_path, "location.label") }
    .accesskey = { COPY(from_path, "location1.accesskey") }
restore-default-label =
    .label = { COPY(from_path, "useDefault.label") }
    .accesskey = { COPY(from_path, "useDefault.accesskey") }

default-search-engine = { COPY(from_path, "defaultSearchEngine.label") }
add-search-engine =
    .label = { COPY(from_path, "addSearchEngine.label") }
    .accesskey = { COPY(from_path, "addSearchEngine.accesskey") }
remove-search-engine =
    .label = { COPY(from_path, "removeSearchEngine.label") }
    .accesskey = { COPY(from_path, "removeSearchEngine.accesskey") }

new-message-arrival = { COPY(from_path, "newMessagesArrive.label") }

change-dock-icon = { COPY(from_path, "changeDockIconOptions.label") }
app-icon-options =
    .label = { COPY(from_path, "dockOptions.label") }
    .accesskey = { COPY(from_path, "dockOptions.accesskey") }

notification-settings = { COPY(from_path, "notificationAlertSettings2.label") }

animated-alert-label =
    .label = { COPY(from_path, "showAnimatedAlert.label") }
    .accesskey = { COPY(from_path, "showAnimatedAlert.accesskey") }
customize-alert-label =
    .label = { COPY(from_path, "customizeMailAlert.label") }
    .accesskey = { COPY(from_path, "customizeMailAlert.accesskey") }

tray-icon-label =
    .label = { COPY(from_path, "showTrayIcon.label") }
    .accesskey = { COPY(from_path, "showTrayIcon.accesskey") }

mail-play-sound-label =
    .label = { PLATFORM() ->
        [macos] { COPY(from_path, "playSoundMac.label") }
        *[other] { COPY(from_path, "playSound.label") }
    }
    .accesskey = { PLATFORM() ->
        [macos] { COPY(from_path, "playSoundMac.accesskey") }
        *[other] { COPY(from_path, "playSound1.accesskey") }
    }

mail-play-button =
    .label = { COPY(from_path, "play.label") }
    .accesskey = { COPY(from_path, "play.accesskey") }

mail-system-sound-label =
    .label = { COPY(from_path, "systemSound.label") }
    .accesskey = { COPY(from_path, "systemSound.accesskey") }

mail-custom-sound-label =
    .label = { COPY(from_path, "customsound.label") }
    .accesskey = { COPY(from_path, "customsound.accesskey") }

mail-browse-sound-button =
    .label = { COPY(from_path, "browse.label") }
    .accesskey = { COPY(from_path, "browse.accesskey") }

""",
            from_path="mail/chrome/messenger/preferences/general.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("general-legend"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/general.dtd",
                    "messengerStartPage.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("start-page-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/general.dtd",
                            "enableStartPage.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/general.dtd",
                            "enableStartPage.accesskey",
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier("minimize-to-tray-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/general.dtd",
                            "minimizeToTray.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/general.dtd",
                            "minimizeToTray.accesskey",
                        ),
                    ),
                ],
            ),
        ],
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
enable-gloda-search-label =
    .label = { COPY(from_path, "enableGlodaSearch.label") }
    .accesskey = { COPY(from_path, "enableGlodaSearch.accesskey") }

datetime-formatting-legend = { COPY(from_path, "dateTimeFormatting.label") }
language-selector-legend = { COPY(from_path, "languageSelector.label") }

allow-hw-accel =
    .label = { COPY(from_path, "allowHWAccel.label") }
    .accesskey = { COPY(from_path, "allowHWAccel.accesskey") }

store-type-label =
    .value = { COPY(from_path, "storeType.label") }
    .accesskey = { COPY(from_path, "storeType.accesskey") }

mbox-store-label =
    .label = { COPY(from_path, "mboxStore2.label") }
maildir-store-label =
    .label = { COPY(from_path, "maildirStore.label") }

scrolling-legend = { COPY(from_path, "scrolling.label") }
autoscroll-label =
    .label = { COPY(from_path, "useAutoScroll.label") }
    .accesskey = { COPY(from_path, "useAutoScroll.accesskey") }
smooth-scrolling-label =
    .label = { COPY(from_path, "useSmoothScrolling.label") }
    .accesskey = { COPY(from_path, "useSmoothScrolling.accesskey") }

system-integration-legend = { COPY(from_path, "systemIntegration.label") }
check-default-button =
    .label = { COPY(from_path, "checkDefaultsNow.label") }
    .accesskey = { COPY(from_path, "checkDefaultsNow.accesskey") }

search-engine-name = { PLATFORM() ->
    [macos] { COPY("mail/chrome/messenger/searchIntegrationMac.dtd", "searchIntegration.engineName") }
    [windows] { COPY("mail/chrome/messenger/searchIntegrationWin.dtd", "searchIntegration.engineName") }
    *[other] { COPY("mail/chrome/messenger/searchIntegrationDefault.dtd", "searchIntegration.engineName") }
}

config-editor-button =
    .label = { COPY(from_path, "configEdit.label") }
    .accesskey = { COPY(from_path, "configEdit.accesskey") }

return-receipts-button =
    .label = { COPY(from_path, "showReturnReceipts.label") }
    .accesskey = { COPY(from_path, "showReturnReceipts.accesskey") }

automatic-updates-label =
    .label = { COPY(from_path, "updateAuto.label") }
    .accesskey = { COPY(from_path, "updateAuto.accesskey") }

check-updates-label =
    .label = { COPY(from_path, "updateCheck.label") }
    .accesskey = { COPY(from_path, "updateCheck.accesskey") }

update-history-button =
    .label = { COPY(from_path, "updateHistory.label") }
    .accesskey = { COPY(from_path, "updateHistory.accesskey") }

use-service =
    .label = { COPY(from_path, "useService.label") }
    .accesskey = { COPY(from_path, "useService.accesskey") }

network-settings-button =
    .label = { COPY(from_path, "showSettings.label") }
    .accesskey = { COPY(from_path, "showSettings.accesskey") }

networking-legend = { COPY(from_path, "connectionsInfo.caption") }
offline-legend = { COPY(from_path, "offlineInfo.caption") }
offline-settings = { COPY(from_path, "offlineInfo.label") }

offline-settings-button =
    .label = { COPY(from_path, "showOffline.label") }
    .accesskey = { COPY(from_path, "showOffline.accesskey") }

diskspace-legend = { COPY(from_path, "Diskspace") }

offline-compact-folder =
    .label = { COPY(from_path, "offlineCompactFolders.label") }
    .accesskey = { COPY(from_path, "offlineCompactFolders.accesskey") }

compact-folder-size =
    .value = { COPY(from_path, "offlineCompactFoldersMB.label") }

use-cache-before =
    .value = { COPY(from_path, "useCacheBefore.label") }
    .accesskey = { COPY(from_path, "useCacheBefore.accesskey") }

use-cache-after = { COPY(from_path, "useCacheAfter.label") }

smart-cache-label =
    .label = { COPY(from_path, "overrideSmartCacheSize.label") }
    .accesskey = { COPY(from_path, "overrideSmartCacheSize.accesskey") }

clear-cache-button =
    .label = { COPY(from_path, "clearCacheNow.label") }
    .accesskey = { COPY(from_path, "clearCacheNow.accesskey") }

update-app-version = { COPY(from_path, "updateApp.version.pre") }{ $version }{ COPY(from_path, "updateApp.version.post") }
""",
            from_path="mail/chrome/messenger/preferences/advanced.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("return-receipts-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "returnReceiptsInfo.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("update-app-legend"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "updateApp2.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("allow-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "updateAppAllow.description",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("cross-user-udpate-warning"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "updateCrossUserSettingWarning.description",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("proxy-config-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "proxiesConfigure.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("always-check-default"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "alwaysCheckDefault.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "alwaysCheckDefault.accesskey",
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier("search-integration-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "searchIntegration.label",
                            {
                                "&searchIntegration.engineName;":
                                MESSAGE_REFERENCE("search-engine-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "searchIntegration.accesskey",
                        ),
                    ),
                ],
            ),
        ],
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
focus-search-shortcut =
    .key = { COPY(from_path, "focusSearch1.key") }
focus-search-shortcut-alt =
    .key = { COPY(from_path, "focusSearch2.key") }

search-input =
    .placeholder = { COPY(from_path, "filter.placeholder") }

type-column-label =
    .label = { COPY(from_path, "typeColumn.label") }
    .accesskey = { COPY(from_path, "typeColumn.accesskey") }

action-column-label =
    .label = { COPY(from_path, "actionColumn2.label") }
    .accesskey = { COPY(from_path, "actionColumn2.accesskey") }

save-to-label =
    .label = { COPY(from_path, "saveTo.label") }
    .accesskey = { COPY(from_path, "saveTo.accesskey") }

choose-folder-label =
    .label = { PLATFORM() ->
        [macos] { COPY(from_path, "chooseFolderMac.label") }
        *[other] { COPY(from_path, "chooseFolderWin.label") }
    }
    .accesskey = { PLATFORM() ->
        [macos] { COPY(from_path, "chooseFolderMac.accesskey") }
        *[other] { COPY(from_path, "chooseFolderWin.accesskey") }
    }

always-ask-label =
    .label = { COPY(from_path, "alwaysAsk.label") }
    .accesskey = { COPY(from_path, "alwaysAsk.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/applications.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
fonts-legend = { COPY(from_path, "fontsAndColors1.label") }

default-font-label =
    .value = { COPY(from_path, "defaultFont.label") }
    .accesskey = { COPY(from_path, "defaultFont.accesskey") }

default-size-label =
    .value = { COPY(from_path, "defaultSize.label") }
    .accesskey = { COPY(from_path, "defaultSize.accesskey") }

font-options-button =
    .label = { COPY(from_path, "fontOptions.label") }
    .accesskey = { COPY(from_path, "fontOptions.accesskey") }

color-options-button =
    .label = { COPY(from_path, "colorButton.label") }
    .accesskey = { COPY(from_path, "colorButton.accesskey") }

display-width-legend = { COPY(from_path, "displayWidth.label") }

convert-emoticons-label =
    .label = { COPY(from_path, "convertEmoticons.label") }
    .accesskey = { COPY(from_path, "convertEmoticons.accesskey") }

display-text-label = { COPY(from_path, "displayText.label") }

style-label =
    .value = { COPY(from_path, "style.label") }
    .accesskey = { COPY(from_path, "style.accesskey") }

regular-style-item =
    .label = { COPY(from_path, "regularStyle.label") }
bold-style-item =
    .label = { COPY(from_path, "bold.label") }
italic-style-item =
    .label = { COPY(from_path, "italic.label") }
bold-italic-style-item =
    .label = { COPY(from_path, "boldItalic.label") }

size-label =
    .value = { COPY(from_path, "size.label") }
    .accesskey = { COPY(from_path, "size.accesskey") }

regular-size-item =
    .label = { COPY(from_path, "regularSize.label") }
bigger-size-item =
    .label = { COPY(from_path, "bigger.label") }
smaller-size-item =
    .label = { COPY(from_path, "smaller.label") }

quoted-text-color =
    .label = { COPY(from_path, "quotedTextColor.label") }
    .accesskey = { COPY(from_path, "quotedTextColor.accesskey") }

display-tags-text = { COPY(from_path, "displayTagsText.label") }

new-tag-button =
    .label = { COPY(from_path, "newTagButton.label") }
    .accesskey = { COPY(from_path, "newTagButton.accesskey") }

edit-tag-button =
    .label = { COPY(from_path, "editTagButton1.label") }
    .accesskey = { COPY(from_path, "editTagButton1.accesskey") }

delete-tag-button =
    .label = { COPY(from_path, "removeTagButton.label") }
    .accesskey = { COPY(from_path, "removeTagButton.accesskey") }

auto-mark-as-read =
    .label = { COPY(from_path, "autoMarkAsRead.label") }
    .accesskey = { COPY(from_path, "autoMarkAsRead.accesskey") }

mark-read-no-delay =
    .label = { COPY(from_path, "markAsReadNoDelay.label") }
    .accesskey = { COPY(from_path, "markAsReadNoDelay.accesskey") }

mark-read-delay =
    .label = { COPY(from_path, "markAsReadDelay.label") }
    .accesskey = { COPY(from_path, "markAsReadDelay.accesskey") }

seconds-label = { COPY(from_path, "secondsLabel.label") }

open-msg-label =
    .value = { COPY(from_path, "openMsgIn.label") }

open-msg-tab =
    .label = { COPY(from_path, "openMsgInNewTab.label") }
    .accesskey = { COPY(from_path, "openMsgInNewTab.accesskey") }

open-msg-window =
    .label = { COPY(from_path, "reuseExpRadio0.label") }
    .accesskey = { COPY(from_path, "reuseExpRadio0.accesskey") }

open-msg-ex-window =
    .label = { COPY(from_path, "reuseExpRadio1.label") }
    .accesskey = { COPY(from_path, "reuseExpRadio1.accesskey") }

close-move-delete =
    .label = { COPY(from_path, "closeMsgOnMoveOrDelete.label") }
    .accesskey = { COPY(from_path, "closeMsgOnMoveOrDelete.accesskey") }

display-name-label =
    .value = { COPY(from_path, "displayName.label") }

condensed-addresses-label =
    .label = { COPY(from_path, "showCondensedAddresses.label") }
    .accesskey = { COPY(from_path, "showCondensedAddresses.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/display.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("return-receipts-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/advanced.dtd",
                    "returnReceiptsInfo.label",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("always-check-default"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "alwaysCheckDefault.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/advanced.dtd",
                            "alwaysCheckDefault.accesskey",
                        ),
                    ),
                ],
            ),
        ],
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
forward-label =
    .value = { COPY(from_path, "forwardMsg.label") }
    .accesskey = { COPY(from_path, "forwardMsg.accesskey") }

inline-label =
    .label = { COPY(from_path, "inline.label") }

as-attachment-label =
    .label = { COPY(from_path, "asAttachment.label") }

extension-label =
    .label = { COPY(from_path, "addExtension.label") }
    .accesskey = { COPY(from_path, "addExtension.accesskey") }

auto-save-label =
    .label = { COPY(from_path, "autoSave.label") }
    .accesskey = { COPY(from_path, "autoSave.accesskey") }

auto-save-end = { COPY(from_path, "autoSaveEnd.label") }

warn-on-send-accel-key =
    .label = { COPY(from_path, "warnOnSendAccelKey.label") }
    .accesskey = { COPY(from_path, "warnOnSendAccelKey.accesskey") }

spellcheck-label =
    .label = { COPY(from_path, "spellCheck.label") }
    .accesskey = { COPY(from_path, "spellCheck.accesskey") }

spellcheck-inline-label =
    .label = { COPY(from_path, "spellCheckInline.label") }
    .accesskey = { COPY(from_path, "spellCheckInline1.accesskey") }

language-popup-label =
    .value = { COPY(from_path, "languagePopup.label") }
    .accesskey = { COPY(from_path, "languagePopup.accessKey") }

download-dictionaries-link = { COPY(from_path, "downloadDictionaries.label") }

font-label =
    .value = { COPY(from_path, "font.label") }
    .accesskey = { COPY(from_path, "font.accesskey") }

font-size-label =
    .value = { COPY(from_path, "fontSize.label") }
    .accesskey = { COPY(from_path, "fontSize.accesskey") }

default-colors-label =
    .label = { COPY(from_path, "useReaderDefaults.label") }
    .accesskey = { COPY(from_path, "useReaderDefaults.accesskey") }

font-color-label =
    .value = { COPY(from_path, "fontColor.label") }
    .accesskey = { COPY(from_path, "fontColor.accesskey") }

bg-color-label =
    .value = { COPY(from_path, "bgColor.label") }
    .accesskey = { COPY(from_path, "bgColor.accesskey") }

restore-html-label =
    .label = { COPY(from_path, "restoreHTMLDefaults.label") }
    .accesskey = { COPY(from_path, "restoreHTMLDefaults.accesskey") }

default-format-label =
    .label = { COPY(from_path, "defaultToParagraph.label") }
    .accesskey = { COPY(from_path, "defaultToParagraph.accesskey") }

format-description = { COPY(from_path, "sendOptionsDescription.label") }

send-options-label =
    .label = { COPY(from_path, "sendOptions.label") }
    .accesskey = { COPY(from_path, "sendOptions.accesskey") }

autocomplete-description = { COPY(from_path, "autocompleteText.label") }

ab-label =
    .label = { COPY(from_path, "addressingEnable.label") }
    .accesskey = { COPY(from_path, "addressingEnable.accesskey") }

directories-label =
    .label = { COPY(from_path, "directories.label") }
    .accesskey = { COPY(from_path, "directories.accesskey") }

directories-none-label =
    .none = { COPY(from_path, "directoriesNone.label") }

edit-directories-label =
    .label = { COPY(from_path, "editDirectories.label") }
    .accesskey = { COPY(from_path, "editDirectories.accesskey") }

email-picker-label =
    .label = { COPY(from_path, "emailCollectionPicker.label") }
    .accesskey = { COPY(from_path, "emailCollectionPicker.accesskey") }

default-directory-label =
    .value = { COPY(from_path, "showAsDefault.label") }
    .accesskey = { COPY(from_path, "showAsDefault.accesskey") }

default-last-label =
    .none = { COPY(from_path, "showAsDefaultLast.label") }

attachment-label =
    .label = { COPY(from_path, "attachmentReminder.label") }
    .accesskey = { COPY(from_path, "attachmentReminder.accesskey") }

attachment-options-label =
    .label = { COPY(from_path, "attachmentReminderOptions.label") }
    .accesskey = { COPY(from_path, "attachmentReminderOptions.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/compose.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
enable-cloud-share =
    .label = { COPY(from_path, "enableCloudFileAccountOffer.label") }
cloud-share-size =
    .value = { COPY(from_path, "enableCloudFileAccountOffer.mb") }

add-cloud-account =
    .label = { COPY(from_path, "addCloudFileAccount1.label") }
    .accesskey = { COPY(from_path, "addCloudFileAccount1.accesskey") }
    .defaultlabel = { COPY(from_path, "addCloudFileAccount1.label") }

remove-cloud-account =
    .label = { COPY(from_path, "removeCloudFileAccount.label") }
    .accesskey = { COPY(from_path, "removeCloudFileAccount.accesskey") }

find-cloud-providers =
    .value = { COPY(from_path, "findCloudFileProviders.label") }

cloud-account-description = { COPY(from_path, "addCloudFileAccount.description") }
""",
            from_path="mail/chrome/messenger/preferences/applications.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
mail-content = { COPY(from_path, "captionMailContent.label") }

remote-content-label =
    .label = { COPY(from_path, "acceptRemoteContent.label") }
    .accesskey = { COPY(from_path, "acceptRemoteContent.accesskey") }

exceptions-button =
    .label = { COPY(from_path, "remoteContentExceptions.label") }
    .accesskey = { COPY(from_path, "cookieExceptions.accesskey") }

remote-content-info =
    .value = { COPY(from_path, "acceptRemoteContentInfo.label") }

web-content = { COPY(from_path, "captionWebContent.label") }

history-label =
    .label = { COPY(from_path, "keepHistory.label") }
    .accesskey = { COPY(from_path, "keepHistory.accesskey") }

cookies-label =
    .label = { COPY(from_path, "acceptCookies.label") }
    .accesskey = { COPY(from_path, "acceptCookies.accesskey") }

third-party-label =
    .value = { COPY(from_path, "acceptThirdParty.pre.label") }
    .accesskey = { COPY(from_path, "acceptThirdParty.pre.accesskey") }

third-party-always =
    .label = { COPY(from_path, "acceptThirdParty.always.label") }
third-party-never =
    .label = { COPY(from_path, "acceptThirdParty.never.label") }
third-party-visited =
    .label = { COPY(from_path, "acceptThirdParty.visited.label") }

keep-label =
    .value = { COPY(from_path, "keepUntil.label") }
    .accesskey = { COPY(from_path, "keepUntil.accesskey") }

keep-expire =
    .label = { COPY(from_path, "expire.label") }
keep-ask =
    .label = { COPY(from_path, "askEachTime.label") }

cookies-button =
    .label = { COPY(from_path, "showCookies.label") }
    .accesskey = { COPY(from_path, "showCookies.accesskey") }

do-not-track-label =
    .label = { COPY(from_path, "doNotTrackCheck.label") }
    .accesskey = { COPY(from_path, "doNotTrackCheck.accesskey") }

learn-button =
    .label = { COPY(from_path, "doNotTrackLearnMore.label") }
""",
            from_path="mail/chrome/messenger/preferences/privacy.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("keep-close"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/privacy.dtd",
                            "close.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                ],
            ),
        ],
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
passwords-button =
    .label = { COPY(from_path, "savedPasswords.label") }
    .accesskey = { COPY(from_path, "savedPasswords.accesskey") }

master-password-description = { COPY(from_path, "masterPassword.intro") }

master-password-label =
    .label = { COPY(from_path, "useMasterPassword.label") }
    .accesskey = { COPY(from_path, "useMasterPassword.accesskey") }

master-password-button =
    .label = { COPY(from_path, "changeMasterPassword.label") }
    .accesskey = { COPY(from_path, "changeMasterPassword.accesskey") }

junk-description = { COPY(from_path, "junkMail.intro") }

junk-label =
    .label = { COPY(from_path, "manualMark.label") }
    .accesskey = { COPY(from_path, "manualMark.accesskey") }

junk-move-label =
    .label = { COPY(from_path, "manualMarkModeMove.label") }
    .accesskey = { COPY(from_path, "manualMarkModeMove.accesskey") }

junk-delete-label =
    .label = { COPY(from_path, "manualMarkModeDelete.label") }
    .accesskey = { COPY(from_path, "manualMarkModeDelete.accesskey") }

junk-read-label =
    .label = { COPY(from_path, "markAsReadOnSpam.label") }
    .accesskey = { COPY(from_path, "markAsReadOnSpam.accesskey") }

junk-log-label =
    .label = { COPY(from_path, "enableAdaptiveJunkLogging.label") }
    .accesskey = { COPY(from_path, "enableAdaptiveJunkLogging.accesskey") }

junk-log-button =
    .label = { COPY(from_path, "openJunkLog.label") }
    .accesskey = { COPY(from_path, "openJunkLog.accesskey") }

reset-junk-button =
    .label = { COPY(from_path, "resetTrainingData.label") }
    .accesskey = { COPY(from_path, "resetTrainingData.accesskey") }

phishing-label =
    .label = { COPY(from_path, "enablePhishingDetector1.label") }
    .accesskey = { COPY(from_path, "enablePhishingDetector1.accesskey") }

antivirus-label =
    .label = { COPY(from_path, "antiVirus.label") }
    .accesskey = { COPY(from_path, "antiVirus.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/security.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("passwords-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/security.dtd",
                    "savedPasswords.intro",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("phishing-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/security.dtd",
                    "phishingDetector1.intro",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
            FTL.Message(
                id=FTL.Identifier("antivirus-description"),
                value=REPLACE(
                    "mail/chrome/messenger/preferences/security.dtd",
                    "antiVirus.intro",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")},
                ),
            ),
        ],
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
certificate-description = { COPY(from_path, "certSelection.description") }

certificate-auto =
    .label = { COPY(from_path, "certs.auto") }
    .accesskey = { COPY(from_path, "certs.auto.accesskey") }

certificate-ask =
    .label = { COPY(from_path, "certs.ask") }
    .accesskey = { COPY(from_path, "certs.ask.accesskey") }

ocsp-label =
    .label = { COPY(from_path, "enableOCSP.label") }
    .accesskey = { COPY(from_path, "enableOCSP.accesskey") }

certificate-button =
    .label = { COPY(from_path, "manageCertificates2.label") }
    .accesskey = { COPY(from_path, "manageCertificates2.accesskey") }

security-devices-button =
    .label = { COPY(from_path, "viewSecurityDevices2.label") }
    .accesskey = { COPY(from_path, "viewSecurityDevices2.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/advanced.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        transforms_from(
            """
offline-label =
    .label = { COPY(from_path, "startupOffline.label") }

auto-connect-label =
    .label = { COPY(from_path, "startupConnectAuto.label") }

idle-label =
    .label = { COPY(from_path, "reportIdleAfter.label") }
    .accesskey = { COPY(from_path, "reportIdleAfter.accesskey") }

idle-time-label = { COPY(from_path, "idleTime") }

away-message-label =
    .label = { COPY(from_path, "andSetStatusToAway.label") }
    .accesskey = { COPY(from_path, "andSetStatusToAway.accesskey") }

send-typing-label =
    .label = { COPY(from_path, "sendTyping.label") }
    .accesskey = { COPY(from_path, "sendTyping.accesskey") }

notification-label = { COPY(from_path, "chatNotifications.label") }

show-notification-label =
    .label = { COPY(from_path, "desktopChatNotifications.label") }
    .accesskey = { COPY(from_path, "desktopChatNotifications.accesskey") }

notification-all =
    .label = { COPY(from_path, "completeNotification.label") }
notification-name =
    .label = { COPY(from_path, "buddyInfoOnly.label") }
notification-empty =
    .label = { COPY(from_path, "dummyNotification.label") }

notification-type-label =
    .label = { PLATFORM() ->
        [macos] { COPY(from_path, "getAttentionMac.label") }
        *[other] { COPY(from_path, "getAttention.label") }
    }
    .accesskey = { PLATFORM() ->
        [macos] { COPY(from_path, "getAttentionMac.accesskey") }
        *[other] { COPY(from_path, "getAttention.accesskey") }
    }

chat-play-sound-label =
    .label = { COPY(from_path, "chatSound.label") }
    .accesskey = { COPY(from_path, "chatSound.accesskey") }

chat-play-button =
    .label = { COPY(from_path, "play.label") }
    .accesskey = { COPY(from_path, "play.accesskey") }

chat-system-sound-label =
    .label = { COPY(from_path, "systemSound.label") }
    .accesskey = { COPY(from_path, "systemSound.accesskey") }

chat-custom-sound-label =
    .label = { COPY(from_path, "customsound.label") }
    .accesskey = { COPY(from_path, "customsound.accesskey") }

chat-browse-sound-button =
    .label = { COPY(from_path, "browse.label") }
    .accesskey = { COPY(from_path, "browse.accesskey") }

theme-label =
    .value = { COPY(from_path, "messageStyleTheme.label") }
    .accesskey = { COPY(from_path, "messageStyleTheme.accesskey") }

style-thunderbird =
    .label = { COPY(from_path, "messageStyleThunderbirdTheme.label") }
style-bubbles =
    .label = { COPY(from_path, "messageStyleBubblesTheme.label") }
style-dark =
    .label = { COPY(from_path, "messageStyleDarkTheme.label") }
style-paper =
    .label = { COPY(from_path, "messageStylePaperSheetsTheme.label") }
style-simple =
    .label = { COPY(from_path, "messageStyleSimpleTheme.label") }

preview-label = { COPY(from_path, "messageStylePreview.label") }
no-preview-label = { COPY(from_path, "messageStyleNoPreview.title") }
no-preview-description = { COPY(from_path, "messageStyleNoPreview.description") }

chat-variant-label =
    .value = { COPY(from_path, "messageStyleVariant.label") }
    .accesskey = { COPY(from_path, "messageStyleVariant.accesskey") }

chat-header-label =
    .label = { COPY(from_path, "messageStyleShowHeader.label") }
    .accesskey = { COPY(from_path, "messageStyleShowHeader.accesskey") }
""",
            from_path="mail/chrome/messenger/preferences/chat.dtd",
        ),
    )

    ctx.add_transforms(
        "mail/messenger/preferences/preferences.ftl",
        "mail/messenger/preferences/preferences.ftl",
        [
            FTL.Message(
                id=FTL.Identifier("startup-label"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("value"),
                        value=REPLACE(
                            "mail/chrome/messenger/preferences/chat.dtd",
                            "startupAction.label",
                            {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            },
                        ),
                    ),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=COPY(
                            "mail/chrome/messenger/preferences/chat.dtd",
                            "startupAction.accesskey",
                        ),
                    ),
                ],
            ),
        ],
    )
Example #17
0
def migrate(ctx):
    """Bug 1453540 - Migrate remaining DTDs in Preferences to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl',
        [
            FTL.Message(
                id=FTL.Identifier('translate-attribution'),
                value=CONCAT_BEFORE_AFTER(
                    COPY(
                        'browser/chrome/browser/preferences/content.dtd',
                        'translation.options.attribution.beforeLogo',
                    ),
                    FTL.TextElement('<img data-l10n-name="logo"/>'),
                    COPY(
                        'browser/chrome/browser/preferences/content.dtd',
                        'translation.options.attribution.afterLogo',
                    ),
                )
            ),
            FTL.Message(
                id=FTL.Identifier('sync-mobile-promo'),
                value=CONCAT(
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'mobilePromo3.start',
                    ),
                    FTL.TextElement('<img data-l10n-name="android-icon"/> <a data-l10n-name="android-link">'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'mobilePromo3.androidLink',
                    ),
                    FTL.TextElement('</a>'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'mobilePromo3.iOSBefore',
                    ),
                    FTL.TextElement('<img data-l10n-name="ios-icon"/> <a data-l10n-name="ios-link">'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'mobilePromo3.iOSLink',
                    ),
                    FTL.TextElement('</a>'),
                    COPY(
                        'browser/chrome/browser/preferences/sync.dtd',
                        'mobilePromo3.end',
                    ),
                )
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-label'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'historyHeader2.pre.label',
                    {
                        '&brandShortName;': MESSAGE_REFERENCE(
                            '-brand-short-name'
                        )
                    }
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'historyHeader2.pre.accesskey',
                        )
                    )
                ]
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-option-all'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'historyHeader.remember.label',
                        )
                    )
                ]
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-option-never'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'historyHeader.dontremember.label',
                        )
                    )
                ]
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-option-custom'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'historyHeader.custom.label',
                        )
                    )
                ]
            ),
        ]
    )
def migrate(ctx):
    """Bug 1519923 - Migrate about:rights to Fluent, part {index}."""

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutRights.ftl",
        "toolkit/toolkit/about/aboutRights.ftl",
        transforms_from("""
rights-title = { COPY(from_path, "rights.title") }
rights-intro-point-4-unbranded = { COPY(from_path, "rights.intro-point3-unbranded") }
rights-safebrowsing-term-1 = { COPY(from_path, "rights.safebrowsing-term1") }
rights-safebrowsing-term-2 = { COPY(from_path, "rights.safebrowsing-term2") }
rights-safebrowsing-term-4 = { COPY(from_path, "rights.safebrowsing-term4") }
rights-locationawarebrowsing-term-2 = { COPY(from_path, "rights.locationawarebrowsing-term2") }
rights-locationawarebrowsing-term-3 = { COPY(from_path, "rights.locationawarebrowsing-term3") }
rights-locationawarebrowsing-term-4 = { COPY(from_path, "rights.locationawarebrowsing-term4") }
rights-webservices-unbranded = { COPY(from_path, "rights.webservices-unbranded") }
rights-webservices-term-unbranded = { COPY(from_path, "rights.webservices-term1-unbranded") }
rights-webservices-term-7 = { COPY(from_path, "rights.webservices-term7") }
enableSafeBrowsing-label = { COPY("browser/chrome/browser/preferences/security.dtd", "enableSafeBrowsing.label")}
""",
                        from_path="toolkit/chrome/global/aboutRights.dtd"))

    ctx.add_transforms(
        "toolkit/toolkit/about/aboutRights.ftl",
        "toolkit/toolkit/about/aboutRights.ftl", [
            FTL.Message(
                id=FTL.Identifier("rights-intro"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd", "rights.intro",
                    {"&brandFullName;": TERM_REFERENCE("brand-full-name")})),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-1"),
                value=CONCAT(
                    REPLACE("toolkit/chrome/global/aboutRights.dtd",
                            "rights.intro-point1a", {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            }),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-public-license-link">'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point1b"), FTL.TextElement('</a>'),
                    REPLACE("toolkit/chrome/global/aboutRights.dtd",
                            "rights.intro-point1c", {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            }))),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-2"),
                value=CONCAT(
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point2-a"),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-trademarks-link">'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point2-b"), FTL.TextElement('</a>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point2-c"))),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-3"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights.intro-point2.5", {
                        "&brandShortName;": TERM_REFERENCE("brand-short-name"),
                        "&vendorShortName;":
                        TERM_REFERENCE("vendor-short-name")
                    })),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-4"),
                value=CONCAT(
                    REPLACE(
                        "toolkit/chrome/global/aboutRights.dtd",
                        "rights2.intro-point3a", {
                            "&vendorShortName;":
                            TERM_REFERENCE("vendor-short-name"),
                            "&brandShortName;":
                            TERM_REFERENCE("brand-short-name")
                        }),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-privacy-policy-link">'),
                    REPLACE("toolkit/chrome/global/aboutRights.dtd",
                            "rights2.intro-point3b", {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            }), FTL.TextElement('</a>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point3c"))),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-5"),
                value=CONCAT(
                    REPLACE("toolkit/chrome/global/aboutRights.dtd",
                            "rights2.intro-point4a", {
                                "&brandShortName;":
                                TERM_REFERENCE("brand-short-name")
                            }),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-service-terms-link">'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point4b"), FTL.TextElement('</a>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point4c"))),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-5-unbranded"),
                value=CONCAT(
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point4a-unbranded"),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-website-services-link">'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point4b-unbranded"),
                    FTL.TextElement('</a>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.intro-point4c-unbranded"))),
            FTL.Message(
                id=FTL.Identifier("rights-intro-point-6"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights.intro-point5",
                    {"&brandShortName;": TERM_REFERENCE("brand-short-name")})),
            FTL.Message(
                id=FTL.Identifier("rights-webservices-header"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights2.webservices-header",
                    {"&brandFullName;": TERM_REFERENCE("brand-full-name")})),
            FTL.Message(
                id=FTL.Identifier("rights-webservices"),
                value=CONCAT(
                    REPLACE(
                        "toolkit/chrome/global/aboutRights.dtd",
                        "rights2.webservices-a", {
                            "&brandFullName;":
                            TERM_REFERENCE("brand-full-name"),
                            "&brandShortName;":
                            TERM_REFERENCE("brand-short-name")
                        }),
                    FTL.TextElement(
                        '<a data-l10n-name="mozilla-disable-service-link">'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights2.webservices-b"), FTL.TextElement('</a>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights3.webservices-c"))),
            FTL.Message(id=FTL.Identifier("rights-safebrowsing"),
                        value=CONCAT(
                            FTL.TextElement('<strong>'),
                            COPY("toolkit/chrome/global/aboutRights.dtd",
                                 "rights.safebrowsing-a"),
                            FTL.TextElement('</strong>'),
                            COPY("toolkit/chrome/global/aboutRights.dtd",
                                 "rights.safebrowsing-b"))),
            FTL.Message(id=FTL.Identifier("rights-safebrowsing-term-3"),
                        value=REPLACE(
                            "toolkit/chrome/global/aboutRights.dtd",
                            "rights2.safebrowsing-term3", {
                                "&enableSafeBrowsing.label;":
                                MESSAGE_REFERENCE("enableSafeBrowsing-label")
                            })),
            FTL.Message(id=FTL.Identifier("rights-locationawarebrowsing"),
                        value=CONCAT(
                            FTL.TextElement('<strong>'),
                            COPY("toolkit/chrome/global/aboutRights.dtd",
                                 "rights.locationawarebrowsing-a"),
                            FTL.TextElement('</strong>'),
                            COPY("toolkit/chrome/global/aboutRights.dtd",
                                 "rights.locationawarebrowsing-b"))),
            FTL.Message(
                id=FTL.Identifier("rights-locationawarebrowsing-term-1"),
                value=CONCAT(
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.locationawarebrowsing-term1a"),
                    FTL.TextElement('<code>'),
                    COPY("toolkit/chrome/global/aboutRights.dtd",
                         "rights.locationawarebrowsing-term1b"),
                    FTL.TextElement('</code>'))),
            FTL.Message(
                id=FTL.Identifier("rights-webservices-term-1"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights2.webservices-term1",
                    {"&vendorShortName;": TERM_REFERENCE("vendor-short-name")
                     })),
            FTL.Message(
                id=FTL.Identifier("rights-webservices-term-2"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights.webservices-term2",
                    {"&vendorShortName;": TERM_REFERENCE("vendor-short-name")
                     })),
            FTL.Message(
                id=FTL.Identifier("rights-webservices-term-3"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights2.webservices-term3", {
                        "&vendorShortName;":
                        TERM_REFERENCE("vendor-short-name"),
                        "&brandShortName;": TERM_REFERENCE("brand-short-name")
                    })),
            FTL.Message(id=FTL.Identifier("rights-webservices-term-4"),
                        value=CONCAT(
                            FTL.TextElement('<strong>'),
                            REPLACE(
                                "toolkit/chrome/global/aboutRights.dtd",
                                "rights.webservices-term4", {
                                    "&vendorShortName;":
                                    TERM_REFERENCE("vendor-short-name"),
                                    "&brandShortName;":
                                    TERM_REFERENCE("brand-short-name")
                                }), FTL.TextElement('</strong>'))),
            FTL.Message(id=FTL.Identifier("rights-webservices-term-5"),
                        value=CONCAT(
                            FTL.TextElement('<strong>'),
                            REPLACE(
                                "toolkit/chrome/global/aboutRights.dtd",
                                "rights.webservices-term5", {
                                    "&vendorShortName;":
                                    TERM_REFERENCE("vendor-short-name"),
                                    "&brandShortName;":
                                    TERM_REFERENCE("brand-short-name")
                                }), FTL.TextElement('</strong>'))),
            FTL.Message(
                id=FTL.Identifier("rights-webservices-term-6"),
                value=REPLACE(
                    "toolkit/chrome/global/aboutRights.dtd",
                    "rights.webservices-term6",
                    {"&vendorShortName;": TERM_REFERENCE("vendor-short-name")
                     }))
        ])
def migrate(ctx):
    """Bug 1529071 - Migrate printPreview to fluent, part {index}"""

    ctx.maybe_add_localization('toolkit/chrome/global/printPreview.dtd')

    ctx.add_transforms(
        'toolkit/toolkit/printing/printPreview.ftl',
        'toolkit/toolkit/printing/printPreview.ftl',
        transforms_from("""
printpreview-simplify-page-checkbox = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "simplifyPage.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "simplifyPage.accesskey") }
    .tooltiptext = { COPY("toolkit/chrome/global/printPreview.dtd", "simplifyPage.disabled.tooltip") }
printpreview-close = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "close.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "close.accesskey") }
printpreview-portrait = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "portrait.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "portrait.accesskey") }
printpreview-landscape = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "landscape.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "landscape.accesskey") }
printpreview-scale = 
    .value = { COPY("toolkit/chrome/global/printPreview.dtd", "scale.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "scale.accesskey") }
printpreview-shrink-to-fit = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "ShrinkToFit.label") }
printpreview-custom = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "Custom.label") }
printpreview-print = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "print.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "print.accesskey") }
printpreview-of = 
    .value = { COPY("toolkit/chrome/global/printPreview.dtd", "of.label") }
printpreview-custom-prompt = 
    .value = { COPY("toolkit/chrome/global/printPreview.dtd", "customPrompt.title") }
printpreview-page-setup = 
    .label = { COPY("toolkit/chrome/global/printPreview.dtd", "pageSetup.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "pageSetup.accesskey") }
printpreview-page = 
    .value = { COPY("toolkit/chrome/global/printPreview.dtd", "page.label") }
    .accesskey = { COPY("toolkit/chrome/global/printPreview.dtd", "page.accesskey") }
""")),
    ctx.add_transforms(
        'toolkit/toolkit/printing/printPreview.ftl',
        'toolkit/toolkit/printing/printPreview.ftl', [
            FTL.Message(
                id=FTL.Identifier(
                    "printpreview-simplify-page-checkbox-enabled"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("label"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "printpreview-simplify-page-checkbox.label"))
                        ])),
                    FTL.Attribute(
                        id=FTL.Identifier("accesskey"),
                        value=FTL.Pattern(elements=[
                            FTL.Placeable(expression=MESSAGE_REFERENCE(
                                "printpreview-simplify-page-checkbox.accesskey"
                            ))
                        ])),
                    FTL.Attribute(id=FTL.Identifier("tooltiptext"),
                                  value=COPY(
                                      "toolkit/chrome/global/printPreview.dtd",
                                      "simplifyPage.enabled.tooltip")),
                ]),
            FTL.Message(id=FTL.Identifier("printpreview-homearrow"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("label"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(
                                        expression=VARIABLE_REFERENCE("arrow"))
                                ])),
                            FTL.Attribute(
                                id=FTL.Identifier("tooltiptext"),
                                value=COPY(
                                    "toolkit/chrome/global/printPreview.dtd",
                                    "homearrow.tooltip")),
                        ]),
            FTL.Message(id=FTL.Identifier("printpreview-previousarrow"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("label"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(
                                        expression=VARIABLE_REFERENCE("arrow"))
                                ])),
                            FTL.Attribute(
                                id=FTL.Identifier("tooltiptext"),
                                value=COPY(
                                    "toolkit/chrome/global/printPreview.dtd",
                                    "previousarrow.tooltip")),
                        ]),
            FTL.Message(id=FTL.Identifier("printpreview-nextarrow"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("label"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(
                                        expression=VARIABLE_REFERENCE("arrow"))
                                ])),
                            FTL.Attribute(
                                id=FTL.Identifier("tooltiptext"),
                                value=COPY(
                                    "toolkit/chrome/global/printPreview.dtd",
                                    "nextarrow.tooltip")),
                        ]),
            FTL.Message(id=FTL.Identifier("printpreview-endarrow"),
                        attributes=[
                            FTL.Attribute(
                                id=FTL.Identifier("label"),
                                value=FTL.Pattern(elements=[
                                    FTL.Placeable(
                                        expression=VARIABLE_REFERENCE("arrow"))
                                ])),
                            FTL.Attribute(
                                id=FTL.Identifier("tooltiptext"),
                                value=COPY(
                                    "toolkit/chrome/global/printPreview.dtd",
                                    "endarrow.tooltip")),
                        ]),
        ])
Example #20
0
def migrate(ctx):
    """Bug 1446180 - Migrate Preferences::Privacy to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/branding/official/brand.ftl',
        'browser/branding/official/brand.ftl', [
            FTL.Term(id=FTL.Identifier('-vendor-short-name'),
                     value=COPY('browser/branding/official/brand.dtd',
                                'vendorShortName')),
        ])

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('privacy-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'browserPrivacy.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('forms-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/security.dtd',
                    'formsAndPasswords.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('forms-remember-logins'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'rememberLogins2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'rememberLogins2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('forms-exceptions'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'passwordExceptions.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'passwordExceptions.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('forms-saved-logins'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'savedLogins.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'savedLogins.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('forms-master-pw-use'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'useMasterPassword.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'useMasterPassword.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('forms-master-pw-change'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'changeMasterPassword.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'changeMasterPassword.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'history.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'rememberDescription1.label',
                    {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('history-dontremember-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'dontrememberDescription.label',
                    {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('history-private-browsing-permanent'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'privateBrowsingPermanent2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'privateBrowsingPermanent2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'rememberHistory2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'rememberHistory2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-remember-search-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'rememberSearchForm.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'rememberSearchForm.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-clear-on-close-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearOnClose.label',
                            {
                                '&brandShortName;':
                                MESSAGE_REFERENCE('-brand-short-name')
                            },
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearOnClose.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-clear-on-close-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearOnCloseSettings.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearOnCloseSettings.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('history-clear-button'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearHistoryButton.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'clearHistoryButton.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'siteData1.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-learn-more'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'siteDataLearnMoreLink.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-accept-cookies-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptCookies4.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptCookies4.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-block-cookies-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'blockCookies.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'blockCookies.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-keep-until'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'keepUntil2.label',
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'keepUntil2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-accept-third-party-desc'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'acceptThirdParty3.pre.label',
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptThirdParty3.pre.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-accept-third-party-always-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptThirdParty.always.label',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier(
                    'sitedata-accept-third-party-visited-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptThirdParty.visited.label',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-accept-third-party-never-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'acceptThirdParty.never.label',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-clear'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'clearSiteData1.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'clearSiteData1.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'siteDataSettings1.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'siteDataSettings1.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('sitedata-cookies-exceptions'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'cookieExceptions.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'cookieExceptions.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'addressBar.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-suggest'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'addressBar.suggest.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-locbar-history-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.history2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.history2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-locbar-bookmarks-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.bookmarks.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.bookmarks.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-locbar-openpage-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.openpage.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'locbar.openpage.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('addressbar-suggestions-settings'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'suggestionSettings2.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'trackingProtectionHeader2.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-description'),
                value=CONCAT(
                    COPY(
                        'browser/chrome/browser/preferences/privacy.dtd',
                        'trackingProtection3.description',
                    ),
                    FTL.TextElement(' <a>'),
                    COPY(
                        'browser/chrome/browser/preferences/privacy.dtd',
                        'trackingProtectionLearnMore2.label',
                    ),
                    FTL.TextElement('</a>'),
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-mode-label'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'trackingProtection3.radioGroupLabel',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-mode-always'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionAlways.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionAlways.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-mode-private'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionPrivate.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionPrivate.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-mode-never'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionNever.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionNever.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-pbm-label'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'trackingProtectionPBM6.label',
                ),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionPBM6.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-exceptions'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionExceptions.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'trackingProtectionExceptions.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('tracking-change-block-list'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'changeBlockList2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'changeBlockList2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'permissions.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-location'),
                value=COPY(
                    'browser/chrome/browser/preferences/content.dtd',
                    'locationPermissions.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-location-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'locationSettingsButton.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'locationSettingsButton.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-camera'),
                value=COPY(
                    'browser/chrome/browser/preferences/content.dtd',
                    'cameraPermissions.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-camera-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'cameraSettingsButton.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'cameraSettingsButton.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-microphone'),
                value=COPY(
                    'browser/chrome/browser/preferences/content.dtd',
                    'microphonePermissions.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-microphone-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'microphoneSettingsButton.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'microphoneSettingsButton.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-notification'),
                value=COPY(
                    'browser/chrome/browser/preferences/content.dtd',
                    'notificationPermissions.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-notification-settings'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'notificationSettingsButton.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'notificationSettingsButton.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-notification-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/content.dtd',
                    'notificationPermissionsLearnMore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-notification-pause'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/preferences.properties',
                            'pauseNotifications.label',
                            {'%S': MESSAGE_REFERENCE('-brand-short-name')},
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/preferences.properties',
                            'pauseNotifications.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-block-popups'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'blockPopups.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'blockPopups.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-block-popups-exceptions'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'popupExceptions.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/content.dtd',
                            'popupExceptions.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-addon-install-warning'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'warnOnAddonInstall2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'warnOnAddonInstall2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-addon-exceptions'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'addonExceptions.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'addonExceptions.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-a11y-privacy-checkbox'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'a11yPrivacy.checkbox.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/privacy.dtd',
                            'a11yPrivacy.checkbox.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('permissions-a11y-privacy-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'a11yPrivacy.learnmore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-header'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'dataCollection.label',
                    {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'dataCollectionDesc.label',
                    {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    },
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-privacy-notice'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'dataCollectionPrivacyNotice.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-health-report'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'enableHealthReport2.label',
                            {
                                '&brandShortName;':
                                MESSAGE_REFERENCE('-brand-short-name'),
                                'Mozilla':
                                MESSAGE_REFERENCE('-vendor-short-name'),
                            },
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'enableHealthReport2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('collection-health-report-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'healthReportLearnMore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-health-report-disabled'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'healthReportingDisabled.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-browser-errors'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'collectBrowserErrors.label',
                            {
                                '&brandShortName;':
                                MESSAGE_REFERENCE('-brand-short-name'),
                                'Mozilla':
                                MESSAGE_REFERENCE('-vendor-short-name'),
                            },
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'collectBrowserErrors.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('collection-browser-errors-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'collectBrowserErrorsLearnMore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('collection-backlogged-crash-reports'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        REPLACE(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'sendBackloggedCrashReports.label',
                            {
                                '&brandShortName;':
                                MESSAGE_REFERENCE('-brand-short-name')
                            },
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'sendBackloggedCrashReports.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('collection-backlogged-crash-reports-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'crashReporterLearnMore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('security-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/security.dtd',
                    'security.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('security-browsing-protection'),
                value=COPY(
                    'browser/chrome/browser/preferences/security.dtd',
                    'browsingProtection.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('security-enable-safe-browsing'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'enableSafeBrowsing.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'enableSafeBrowsing.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('security-enable-safe-browsing-link'),
                value=COPY(
                    'browser/chrome/browser/preferences/privacy.dtd',
                    'enableSafeBrowsingLearnMore.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('security-block-downloads'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'blockDownloads.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'blockDownloads.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('security-block-uncommon-software'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'blockUncommonAndUnwanted.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/security.dtd',
                            'blockUncommonAndUnwanted.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('certs-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'certificateTab.label',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('certs-personal-label'),
                value=COPY(
                    'browser/chrome/browser/preferences/advanced.dtd',
                    'certPersonal2.description',
                ),
            ),
            FTL.Message(
                id=FTL.Identifier('certs-select-auto-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'selectCerts.auto',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'selectCerts.auto.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('certs-select-ask-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'selectCerts.ask',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'selectCerts.ask.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('certs-enable-ocsp'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'enableOCSP.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'enableOCSP.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('certs-view'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'viewCerts2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'viewCerts2.accesskey',
                        ),
                    ),
                ],
            ),
            FTL.Message(
                id=FTL.Identifier('certs-devices'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'viewSecurityDevices2.label',
                        ),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/advanced.dtd',
                            'viewSecurityDevices2.accesskey',
                        ),
                    ),
                ],
            ),
        ])
def migrate(ctx):
    """Bug 1501900 -  Migrate aboutdevtools to Fluent, part {index}"""

    ctx.add_transforms(
        "devtools/startup/aboutDevTools.ftl",
        "devtools/startup/aboutDevTools.ftl",
        transforms_from("""
head-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.headTitle")}
enable-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.title")}
enable-inspect-element-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.inspectElementTitle")}
enable-inspect-element-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.inspectElementMessage")}
enable-about-debugging-message ={ COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.aboutDebuggingMessage")}
enable-key-shortcut-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.keyShortcutMessage")}
enable-menu-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.menuMessage2")}
enable-common-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.commonMessage")}
enable-learn-more-link = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.learnMoreLink")}
enable-enable-button = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.enableButton")}
enable-close-button = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.enable.closeButton2")}
welcome-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.welcome.title")}
newsletter-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.title")}
newsletter-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.message")}
newsletter-email-placeholder =
    .placeholder = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.email.placeholder")}
newsletter-subscribe-button = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.subscribeButton")}
newsletter-thanks-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.thanks.title")}
newsletter-thanks-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.newsletter.thanks.message")}
footer-title = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.footer.title")}
footer-message = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.footer.message")}
footer-learn-more-link = { COPY("devtools/startup/aboutdevtools.dtd", "aboutDevtools.footer.learnMoreLink")}
features-learn-more = { COPY("devtools/startup/aboutdevtools.properties", "features.learnMore")}
features-inspector-title = { COPY("devtools/startup/aboutdevtools.properties", "features.inspector.title")}
features-console-title = { COPY("devtools/startup/aboutdevtools.properties", "features.console.title")}
features-debugger-title = { COPY("devtools/startup/aboutdevtools.properties", "features.debugger.title")}
features-network-title = { COPY("devtools/startup/aboutdevtools.properties", "features.network.title")}
features-storage-title = { COPY("devtools/startup/aboutdevtools.properties", "features.storage.title")}
features-responsive-title = { COPY("devtools/startup/aboutdevtools.properties", "features.responsive.title")}
features-visual-editing-title = { COPY("devtools/startup/aboutdevtools.properties", "features.visualediting.title")}
features-performance-title = { COPY("devtools/startup/aboutdevtools.properties", "features.performance.title")}
features-memory-title = { COPY("devtools/startup/aboutdevtools.properties", "features.memory.title")}
"""))

    ctx.add_transforms(
        "devtools/startup/aboutDevTools.ftl",
        "devtools/startup/aboutDevTools.ftl", [
            FTL.Message(
                id=FTL.Identifier("newsletter-privacy-label"),
                value=REPLACE(
                    "devtools/startup/aboutdevtools.dtd",
                    "aboutDevtools.newsletter.privacy.label", {
                        "<a class='external' href='https://www.mozilla.org/privacy/'>":
                        FTL.TextElement('<a data-l10n-name="privacy-policy">')
                    })),
            FTL.Message(
                id=FTL.Identifier("features-inspector-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.inspector.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-console-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.console.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-debugger-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.debugger.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-network-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.network.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-storage-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.storage.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-responsive-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.responsive.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-visual-editing-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.visualediting.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-performance-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.performance.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(
                id=FTL.Identifier("features-memory-desc"),
                value=CONCAT(
                    COPY(
                        "devtools/startup/aboutdevtools.properties",
                        "features.memory.desc",
                    ), FTL.TextElement(' <a data-l10n-name="learn-more">'),
                    MESSAGE_REFERENCE("features-learn-more"),
                    FTL.TextElement("</a>"))),
            FTL.Message(id=FTL.Identifier("welcome-message"),
                        value=REPLACE(
                            "devtools/startup/aboutdevtools.properties",
                            "welcome.message",
                            {"%S": VARIABLE_REFERENCE("shortcut")}))
        ])
def migrate(ctx):
    """Bug 1438375 - Migrate Extension Controlled settings in Preferences to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('extension-controlled-homepage-override'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.homepage_override2', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name'))
                    })),
            FTL.Message(
                id=FTL.Identifier('extension-controlled-new-tab-url'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.newTabURL2', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name'))
                    })),
            FTL.Message(
                id=FTL.Identifier('extension-controlled-default-search'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.defaultSearch', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name'))
                    })),
            FTL.Message(
                id=FTL.Identifier('extension-controlled-privacy-containers'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.privacy.containers', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name'))
                    })),
            FTL.Message(
                id=FTL.Identifier(
                    'extension-controlled-websites-tracking-protection-mode'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.websites.trackingProtectionMode', {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name'))
                    })),
            FTL.Message(
                id=FTL.Identifier('extension-controlled-proxy-config'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.proxyConfig', {
                        '%1$S':
                        CONCAT(
                            FTL.TextElement('<img data-l10n-name="icon"/> '),
                            EXTERNAL_ARGUMENT('name')),
                        '%2$S':
                        MESSAGE_REFERENCE('-brand-short-name'),
                    })),
            FTL.Message(
                id=FTL.Identifier('extension-controlled-enable'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'extensionControlled.enable', {
                        '%1$S':
                        FTL.TextElement('<img data-l10n-name="addons-icon"/>'),
                        '%2$S':
                        FTL.TextElement('<img data-l10n-name="menu-icon"/>'),
                    })),
            FTL.Message(
                id=FTL.Identifier('network-proxy-connection-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'connectionDesc.label', {
                        '%S': MESSAGE_REFERENCE('-brand-short-name'),
                    })),
        ])
def migrate(ctx):
    """Bug 1445084 - Migrate search results pane of Preferences to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('search-input-box'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('style'),
                        CONCAT(
                            FTL.TextElement('width: '),
                            COPY(
                                'browser/chrome/browser/preferences/preferences.dtd',
                                'searchField.width')),
                    ),
                    FTL.Attribute(
                        FTL.Identifier('placeholder'),
                        FTL.Pattern([
                            FTL.Placeable(
                                FTL.SelectExpression(
                                    expression=FTL.CallExpression(
                                        callee=FTL.Identifier('PLATFORM')),
                                    variants=[
                                        FTL.Variant(
                                            key=FTL.VariantName('windows'),
                                            default=False,
                                            value=COPY(
                                                'browser/chrome/browser/preferences/preferences.properties',
                                                'searchInput.labelWin')),
                                        FTL.Variant(
                                            key=FTL.VariantName('other'),
                                            default=True,
                                            value=COPY(
                                                'browser/chrome/browser/preferences/preferences.properties',
                                                'searchInput.labelUnix'))
                                    ]))
                        ])),
                ]),
            FTL.Message(
                id=FTL.Identifier('search-results-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'paneSearchResults.title')),
            FTL.Message(
                id=FTL.Identifier('search-results-sorry-message'),
                value=FTL.Pattern(elements=[
                    FTL.Placeable(expression=FTL.SelectExpression(
                        expression=FTL.CallExpression(
                            callee=FTL.Identifier('PLATFORM')),
                        variants=[
                            FTL.Variant(
                                key=FTL.VariantName('windows'),
                                default=False,
                                value=REPLACE(
                                    'browser/chrome/browser/preferences/preferences.properties',
                                    'searchResults.sorryMessageWin',
                                    {'%S': FTL.TextElement("<span></span>")},
                                )),
                            FTL.Variant(
                                key=FTL.VariantName('other'),
                                default=True,
                                value=REPLACE(
                                    'browser/chrome/browser/preferences/preferences.properties',
                                    'searchResults.sorryMessageUnix',
                                    {'%S': FTL.TextElement("<span></span>")},
                                ))
                        ]))
                ]),
            ),
            FTL.Message(
                id=FTL.Identifier('search-results-need-help'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/preferences.properties',
                    'searchResults.needHelp3',
                    {
                        '%S':
                        CONCAT(
                            FTL.TextElement('<a>'),
                            REPLACE(
                                'browser/chrome/browser/preferences/preferences.properties',
                                'searchResults.needHelpSupportLink',
                                {
                                    '%S':
                                    MESSAGE_REFERENCE('-brand-short-name'),
                                },
                            ),
                            FTL.TextElement('</a>'),
                        ),
                    },
                ),
            ),
        ])
def migrate(ctx):
    """Bug 1419547 - Migrate Preferences::Containers to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(
                id=FTL.Identifier('containers-back-link'),
                value=COPY('browser/chrome/browser/preferences/containers.dtd',
                           'backLink2.label')),
            FTL.Message(
                id=FTL.Identifier('containers-header'),
                value=COPY(
                    'browser/chrome/browser/preferences/preferences.dtd',
                    'paneContainers.title',
                )),
            FTL.Message(
                id=FTL.Identifier('containers-add-button'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/containers.dtd',
                            'addButton.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/containers.dtd',
                            'addButton.accesskey')),
                ]),
            FTL.Message(
                id=FTL.Identifier('containers-preferences-button'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/containers.dtd',
                            'preferencesButton.label')),
                ]),
            FTL.Message(
                id=FTL.Identifier('containers-remove-button'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/containers.dtd',
                            'removeButton.label')),
                ]),
        ])

    ctx.add_transforms('browser/browser/preferences/containers.ftl', 'browser/browser/preferences/containers.ftl', [
        FTL.
        Message(
            id=FTL.Identifier('containers-window-new'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('title'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'window.title',
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('style'),
                    CONCAT(
                        FTL.
                        TextElement('width: '),
                        COPY(
                            'browser/chrome/browser/preferences/containers.dtd',
                            'window.width',
                        ),
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-window-update'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('title'),
                    REPLACE(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.updateContainerTitle',
                        {'%S': EXTERNAL_ARGUMENT('name')},
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('style'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'window.width',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-window-close'),
            attributes=[
                FTL.
                Attribute(
                    FTL
                    .Identifier('key'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'windowClose.key',
                    ),
                ),
            ],
        ),
        FTL.
        Term(
            id=FTL.Identifier('-containers-labels-style'),
            value=CONCAT(
                FTL.
                TextElement('min-width: '),
                COPY(
                    'browser/chrome/browser/preferences/containers.properties',
                    'containers.labelMinWidth',
                ),
            ),
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-name-label'),
            value=COPY(
                'browser/chrome/browser/preferences/containers.dtd',
                'name2.label',
            ),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('accesskey'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'name2.accesskey',
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('style'),
                    CONCAT(MESSAGE_REFERENCE('-containers-labels-style'), )),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-name-text'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('placeholder'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'name.placeholder',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-label'),
            value=COPY(
                'browser/chrome/browser/preferences/containers.dtd',
                'icon2.label',
            ),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('accesskey'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'icon2.accesskey',
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('style'),
                    CONCAT(MESSAGE_REFERENCE('-containers-labels-style'), )),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-label'),
            value=COPY(
                'browser/chrome/browser/preferences/containers.dtd',
                'color2.label',
            ),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('accesskey'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'color2.accesskey',
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('style'),
                    CONCAT(MESSAGE_REFERENCE('-containers-labels-style'), )),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-button-done'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'button.ok.label',
                    ),
                ),
                FTL.
                Attribute(
                    FTL.
                    Identifier('accesskey'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.dtd',
                        'button.ok.accesskey',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-remove-alert-title'),
            value=COPY(
                'browser/chrome/browser/preferences/preferences.properties',
                'removeContainerAlertTitle',
            ),
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-remove-alert-msg'),
            value=PLURALS(
                'browser/chrome/browser/preferences/preferences.properties',
                'removeContainerMsg', EXTERNAL_ARGUMENT('count'), lambda text:
                REPLACE_IN_TEXT(text, {'#S': EXTERNAL_ARGUMENT('count')}))
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-remove-ok-button'),
            value=COPY(
                'browser/chrome/browser/preferences/preferences.properties',
                'removeContainerOkButton',
            ),
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-remove-cancel-button'),
            value=COPY(
                'browser/chrome/browser/preferences/preferences.properties',
                'removeContainerButton2',
            ),
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-blue'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.blue.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-turquoise'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.turquoise.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-green'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.green.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-yellow'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.yellow.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-orange'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.orange.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-red'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.red.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-pink'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.pink.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-color-purple'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.purple.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-fingerprint'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.fingerprint.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-briefcase'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.briefcase.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-dollar'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.dollar.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-cart'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.cart.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-circle'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.circle.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-vacation'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.vacation.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-gift'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.gift.label',
                    ),
                ),
            ],
        ),
        FTL.
        Message(
            id=FTL.Identifier('containers-icon-food'),
            attributes=[
                FTL.
                Attribute(
                    FTL.
                    Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.food.label',
                    ),
                ),
            ],
        ),
        FTL.Message(
            id=FTL.Identifier('containers-icon-fruit'),
            attributes=[
                FTL.Attribute(
                    FTL.Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.fruit.label',
                    ),
                ),
            ],
        ),
        FTL.Message(
            id=FTL.Identifier('containers-icon-pet'),
            attributes=[
                FTL.Attribute(
                    FTL.Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.pet.label',
                    ),
                ),
            ],
        ),
        FTL.Message(
            id=FTL.Identifier('containers-icon-tree'),
            attributes=[
                FTL.Attribute(
                    FTL.Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.tree.label',
                    ),
                ),
            ],
        ),
        FTL.Message(
            id=FTL.Identifier('containers-icon-chill'),
            attributes=[
                FTL.Attribute(
                    FTL.Identifier('label'),
                    COPY(
                        'browser/chrome/browser/preferences/containers.properties',
                        'containers.chill.label',
                    ),
                ),
            ],
        ),
    ])
Example #25
0
def migrate(ctx):
    """Bug 1415733 - Migrate the "Search" section of Preferences to the new Localization API, part {index}"""

    ctx.add_transforms(
        'browser/browser/preferences/preferences.ftl',
        'browser/browser/preferences/preferences.ftl', [
            FTL.Message(id=FTL.Identifier('search-bar-header'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'searchBar.label')),
            FTL.Message(
                id=FTL.Identifier('search-bar-hidden'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'searchBar.hidden.label'))
                ]),
            FTL.Message(
                id=FTL.Identifier('search-bar-shown'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'searchBar.shown.label'))
                ]),
            FTL.Message(id=FTL.Identifier('search-engine-default-header'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'defaultSearchEngine.label')),
            FTL.Message(id=FTL.Identifier('search-engine-default-desc'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'chooseYourDefaultSearchEngine2.label')),
            FTL.Message(
                id=FTL.Identifier('search-suggestions-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'provideSearchSuggestions.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'provideSearchSuggestions.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('search-show-suggestions-url-bar-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'showURLBarSuggestions2.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'showURLBarSuggestions2.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier(
                    'search-show-suggestions-above-history-option'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'showSearchSuggestionsAboveHistory.label')),
                ]),
            FTL.Message(
                id=FTL.Identifier('search-suggestions-cant-show'),
                value=REPLACE('browser/chrome/browser/preferences/search.dtd',
                              'urlBarSuggestionsPermanentPB.label', {
                                  '&brandShortName;':
                                  MESSAGE_REFERENCE('-brand-short-name')
                              }),
            ),
            FTL.Message(id=FTL.Identifier('search-one-click-header'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'oneClickSearchEngines.label')),
            FTL.Message(id=FTL.Identifier('search-one-click-desc'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'chooseWhichOneToDisplay2.label')),
            FTL.Message(
                id=FTL.Identifier('search-choose-engine-column'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'engineNameColumn.label')),
                ]),
            FTL.Message(
                id=FTL.Identifier('search-choose-keyword-column'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'engineKeywordColumn.label')),
                ]),
            FTL.Message(
                id=FTL.Identifier('search-restore-default'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'restoreDefaultSearchEngines.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'restoreDefaultSearchEngines.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('search-remove-engine'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'removeEngine.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY('browser/chrome/browser/preferences/search.dtd',
                             'removeEngine.accesskey'))
                ]),
            FTL.Message(id=FTL.Identifier('search-find-more-link'),
                        value=COPY(
                            'browser/chrome/browser/preferences/search.dtd',
                            'findMoreSearchEngines.label')),
            FTL.Message(id=FTL.Identifier('search-keyword-warning-title'),
                        value=COPY(
                            'browser/chrome/browser/engineManager.properties',
                            'duplicateTitle')),
            FTL.Message(
                id=FTL.Identifier('search-keyword-warning-engine'),
                value=REPLACE(
                    'browser/chrome/browser/engineManager.properties',
                    'duplicateEngineMsg', {'%S': EXTERNAL_ARGUMENT('name')}),
            ),
            FTL.Message(id=FTL.Identifier('search-keyword-warning-bookmark'),
                        value=COPY(
                            'browser/chrome/browser/engineManager.properties',
                            'duplicateBookmarkMsg')),
        ])
Example #26
0
def migrate(ctx):
    """Bug 1451992 - Migrate Preferences::Subdialogs::ClearSiteData to Fluent, part {index}."""

    ctx.add_transforms(
        'browser/browser/preferences/clearSiteData.ftl',
        'browser/browser/preferences/clearSiteData.ftl', [
            FTL.Message(
                id=FTL.Identifier('clear-site-data-window'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('title'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'window.title')),
                    FTL.Attribute(
                        FTL.Identifier('style'),
                        CONCAT(
                            FTL.TextElement('width: '),
                            COPY(
                                'browser/chrome/browser/preferences/clearSiteData.dtd',
                                'window.width')))
                ]),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-description'),
                value=REPLACE(
                    'browser/chrome/browser/preferences/clearSiteData.dtd',
                    'window.description', {
                        '&brandShortName;':
                        MESSAGE_REFERENCE('-brand-short-name')
                    })),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-close-key'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('key'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'windowClose.key'))
                ]),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-cookies-info'),
                value=COPY(
                    'browser/chrome/browser/preferences/clearSiteData.dtd',
                    'clearSiteData.description')),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-cache-info'),
                value=COPY(
                    'browser/chrome/browser/preferences/clearSiteData.dtd',
                    'clearCache.description')),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-cancel'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'button.cancel.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'button.cancel.accesskey'))
                ]),
            FTL.Message(
                id=FTL.Identifier('clear-site-data-clear'),
                attributes=[
                    FTL.Attribute(
                        FTL.Identifier('label'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'button.clear.label')),
                    FTL.Attribute(
                        FTL.Identifier('accesskey'),
                        COPY(
                            'browser/chrome/browser/preferences/clearSiteData.dtd',
                            'button.clear.accesskey'))
                ])
        ])
Example #27
0
def migrate(ctx):
    """Bug 1498448 - Migrate Certificate Manager Dialog to use fluent for localization, part {index}."""

    ctx.add_transforms(
        "security/manager/security/certificates/certManager.ftl",
        "security/manager/security/certificates/certManager.ftl",
        transforms_from(
"""
certmgr-title =
    .title = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.title") }

certmgr-tab-mine =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.tab.mine") }

certmgr-tab-people =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.tab.others2") }

certmgr-tab-servers =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.tab.websites3") }

certmgr-tab-ca =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.tab.ca") }

certmgr-mine = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.mine2") }
certmgr-people = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.others2") }
certmgr-servers = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.websites3") }
certmgr-ca = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.cas2") }

certmgr-detail-general-tab-title =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.detail.general_tab.title") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.detail.general_tab.accesskey") }

certmgr-detail-pretty-print-tab-title =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.detail.prettyprint_tab.title") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.detail.prettyprint_tab.accesskey") }

certmgr-pending-label =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.pending.label") }

certmgr-subject-info-label =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.subjectinfo.label") }

certmgr-issuer-info-label =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.issuerinfo.label") }

certmgr-period-of-validity-label =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.periodofvalidity.label") }

certmgr-fingerprints-label =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.fingerprints.label") }

certmgr-cert-detail =
    .title = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.title") }
    .buttonlabelaccept = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.close.label") }
    .buttonaccesskeyaccept = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.close.accesskey") }

certmgr-cert-detail-cn =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.cn") }

certmgr-cert-detail-o =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.o") }

certmgr-cert-detail-ou =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.ou") }

certmgr-cert-detail-serialnumber =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.serialnumber") }

certmgr-cert-detail-sha256-fingerprint =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.sha256fingerprint") }

certmgr-cert-detail-sha1-fingerprint =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certdetail.sha1fingerprint") }

certmgr-edit-cert-edit-trust = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.editcert.edittrust") }

certmgr-edit-cert-trust-ssl =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.editcert.trustssl") }

certmgr-edit-cert-trust-email =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.editcert.trustemail") }

certmgr-cert-name =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certname") }

certmgr-cert-server =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.certserver") }

certmgr-override-lifetime
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.override_lifetime") }

certmgr-token-name =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.tokenname") }

certmgr-begins-label =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.begins") }

certmgr-expires-label =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.expires") }

certmgr-email =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.email") }

certmgr-serial =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.serial") }

certmgr-view =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.view2.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.view2.accesskey") }

certmgr-edit =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.edit3.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.edit3.accesskey") }

certmgr-export =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.export.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.export.accesskey") }

certmgr-delete =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.delete2.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.delete2.accesskey") }

certmgr-delete-builtin =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.delete_builtin.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.delete_builtin.accesskey") }

certmgr-backup =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.backup2.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.backup2.accesskey") }

certmgr-backup-all =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.backupall2.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.backupall2.accesskey") }

certmgr-restore =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.restore2.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.restore2.accesskey") }

certmgr-details =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.details.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.details.accesskey") }

certmgr-fields=
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.fields.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.fields.accesskey") }

certmgr-hierarchy =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.hierarchy.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.hierarchy.accesskey2") }

certmgr-add-exception =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.addException.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "certmgr.addException.accesskey") }

exception-mgr =
    .title = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.title") }

exception-mgr-extra-button =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.exceptionButton.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.exceptionButton.accesskey") }

exception-mgr-supplemental-warning = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.supplementalWarning") }

exception-mgr-cert-location-url =
    .value = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.certlocation.url") }

exception-mgr-cert-location-download =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.certlocation.download") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.certlocation.accesskey") }

exception-mgr-cert-status-view-cert =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.certstatus.viewCert") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.certstatus.accesskey") }

exception-mgr-permanent =
    .label = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.permanent.label") }
    .accesskey = { COPY("security/manager/chrome/pippki/certManager.dtd", "exceptionMgr.permanent.accesskey") }

pk11-bad-password = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PK11BadPassword") }
pkcs12-decode-err = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12DecodeErr") }
pkcs12-unknown-err-restore = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12UnknownErrRestore") }
pkcs12-unknown-err-backup = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12UnknownErrBackup") }
pkcs12-unknown-err = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12UnknownErr") }
pkcs12-info-no-smartcard-backup = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12InfoNoSmartcardBackup") }
pkcs12-dup-data = { COPY("security/manager/chrome/pipnss/pipnss.properties", "PKCS12DupData") }

choose-p12-backup-file-dialog = { COPY("security/manager/chrome/pippki/pippki.properties", "chooseP12BackupFileDialog") }
file-browse-pkcs12-spec = { COPY("security/manager/chrome/pippki/pippki.properties", "file_browse_PKCS12_spec") }
choose-p12-restore-file-dialog = { COPY("security/manager/chrome/pippki/pippki.properties", "chooseP12RestoreFileDialog2") }
file-browse-certificate-spec = { COPY("security/manager/chrome/pippki/pippki.properties", "file_browse_Certificate_spec") }
import-ca-certs-prompt = { COPY("security/manager/chrome/pippki/pippki.properties", "importCACertsPrompt") }
import-email-cert-prompt = { COPY("security/manager/chrome/pippki/pippki.properties", "importEmailCertPrompt") }

delete-user-cert-title =
    .title = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteUserCertTitle") }

delete-ssl-cert-title =
    .title = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteSslCertTitle3") }

delete-ca-cert-title =
    .title = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteCaCertTitle2") }

delete-email-cert-title =
    .title = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteEmailCertTitle") }

delete-user-cert-confirm = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteUserCertConfirm") }
delete-user-cert-impact = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteUserCertImpact") }
delete-ssl-cert-confirm = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteSslCertConfirm3") }
delete-ssl-cert-impact = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteSslCertImpact3") }
delete-ca-cert-confirm = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteCaCertConfirm2") }
delete-ca-cert-impact = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteCaCertImpactX2") }
delete-email-cert-confirm = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteEmailCertConfirm") }
delete-email-cert-impact = { COPY("security/manager/chrome/pippki/pippki.properties", "deleteEmailCertImpactDesc") }

cert-verified = { COPY("security/manager/chrome/pippki/pippki.properties", "certVerified") }

not-present =
    .value = { COPY("security/manager/chrome/pippki/pippki.properties", "notPresent") }

verify-ssl-client =
    .value = { COPY("security/manager/chrome/pipnss/pipnss.properties", "VerifySSLClient") }

verify-ssl-server =
    .value = { COPY("security/manager/chrome/pipnss/pipnss.properties", "VerifySSLServer") }

verify-ssl-ca =
    .value = { COPY("security/manager/chrome/pipnss/pipnss.properties", "VerifySSLCA") }

verify-email-signer =
    .value = { COPY("security/manager/chrome/pipnss/pipnss.properties", "VerifyEmailSigner") }

verify-email-recip =
    .value = { COPY("security/manager/chrome/pipnss/pipnss.properties", "VerifyEmailRecip") }

cert-not-verified-cert-revoked = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_CertRevoked") }
cert-not-verified-cert-expired = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_CertExpired") }
cert-not-verified-cert-not-trusted = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_CertNotTrusted") }
cert-not-verified-issuer-not-trusted = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_IssuerNotTrusted") }
cert-not-verified-issuer-unknown = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_IssuerUnknown") }
cert-not-verified-ca-invalid = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_CAInvalid") }
cert-not-verified_algorithm-disabled = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_AlgorithmDisabled") }
cert-not-verified-unknown = { COPY("security/manager/chrome/pippki/pippki.properties", "certNotVerified_Unknown") }

add-exception-invalid-header = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionInvalidHeader") }
add-exception-domain-mismatch-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionDomainMismatchShort") }
add-exception-domain-mismatch-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionDomainMismatchLong2") }
add-exception-expired-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionExpiredShort") }
add-exception-expired-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionExpiredLong2") }
add-exception-unverified-or-bad-signature-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionUnverifiedOrBadSignatureShort") }
add-exception-unverified-or-bad-signature-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionUnverifiedOrBadSignatureLong2") }
add-exception-valid-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionValidShort") }
add-exception-valid-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionValidLong") }
add-exception-checking-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionCheckingShort") }
add-exception-checking-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionCheckingLong2") }
add-exception-no-cert-short = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionNoCertShort") }
add-exception-no-cert-long = { COPY("security/manager/chrome/pippki/pippki.properties", "addExceptionNoCertLong2") }
""")
)

    ctx.add_transforms(
    "security/manager/security/certificates/certManager.ftl",
    "security/manager/security/certificates/certManager.ftl",
    [
        FTL.Message(
            id=FTL.Identifier("edit-trust-ca"),
            value=REPLACE(
                "security/manager/chrome/pippki/pippki.properties",
                "editTrustCA",
                {
                    "%S": VARIABLE_REFERENCE("certName")
                },
            )
        ),

            FTL.Message(
                id=FTL.Identifier("cert-with-serial"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("value"),
                        value=REPLACE(
                            "security/manager/chrome/pippki/pippki.properties",
                            "certWithSerial",
                            {
                                "%1$S": VARIABLE_REFERENCE("serialNumber")
                            },
                        )
                    )
                ]
            ),

            FTL.Message(
                id=FTL.Identifier("cert-viewer-title"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("title"),
                        value=REPLACE(
                            "security/manager/chrome/pippki/pippki.properties",
                            "certViewerTitle",
                            {
                                "%1$S": VARIABLE_REFERENCE("certName")
                            },
                        )
                    )
                ]
            ),

            FTL.Message(
                id=FTL.Identifier("add-exception-branded-warning"),
                value=REPLACE(
                    "security/manager/chrome/pippki/pippki.properties",
                    "addExceptionBrandedWarning2",
                    {
                        "%S": TERM_REFERENCE("-brand-short-name")
                    },
                )
            ),

            FTL.Message(
                id=FTL.Identifier("certmgr-edit-ca-cert"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("title"),
                        value=COPY(
                                "security/manager/chrome/pippki/certManager.dtd",
                                "certmgr.editcacert.title",
                            )
                        ),
                    FTL.Attribute(
                        id=FTL.Identifier("style"),
                        value=CONCAT(
                            FTL.TextElement("width: 48em;"),
                        )
                    )
                ]
            ),

            FTL.Message(
                id=FTL.Identifier("certmgr-delete-cert"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("title"),
                        value=COPY(
                                "security/manager/chrome/pippki/certManager.dtd",
                                "certmgr.deletecert.title",
                            )
                        ),
                    FTL.Attribute(
                        id=FTL.Identifier("style"),
                        value=CONCAT(
                            FTL.TextElement("width: 48em; height: 24em;"),
                        )
                    )
                ]
            ),

            FTL.Message(
                id=FTL.Identifier("certmgr-begins-value"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("value"),
                        value=FTL.Pattern(
                            elements=[
                                FTL.Placeable(
                                    expression=MESSAGE_REFERENCE("certmgr-begins-label.label")
                                )
                            ]
                        )
                    )
                ]
            ),

            FTL.Message(
                id=FTL.Identifier("certmgr-expires-value"),
                attributes=[
                    FTL.Attribute(
                        id=FTL.Identifier("value"),
                        value=FTL.Pattern(
                            elements=[
                                FTL.Placeable(
                                    expression=MESSAGE_REFERENCE("certmgr-expires-label.label")
                                )
                            ]
                        )
                    )
                ]
            ),
        ]
    )