Revision control
Copy as Markdown
Other Tools
# Any copyright is dedicated to the Public Domain.
import re
from fluent.migratetb import COPY, COPY_PATTERN
from fluent.migratetb.helpers import VARIABLE_REFERENCE
from fluent.migratetb.transforms import Transform, TransformPattern
import fluent.syntax.ast as FTL
def migrate(ctx):
source = "mail/chrome/messenger/messenger.dtd"
dest = "mail/messenger/messenger.ftl"
ctx.add_transforms(
dest,
dest,
[
FTL.Message(
id=FTL.Identifier("menu-edit-delete-folder"),
attributes=[
FTL.Attribute(
id=FTL.Identifier("label"), value=COPY(source, "deleteFolderCmd.label")
),
FTL.Attribute(
id=FTL.Identifier("accesskey"),
value=COPY(source, "deleteFolderCmd.accesskey"),
),
],
),
FTL.Message(
id=FTL.Identifier("menu-edit-delete-messages"),
attributes=[
FTL.Attribute(
id=FTL.Identifier("label"),
value=Transform.pattern_of(
FTL.SelectExpression(
selector=VARIABLE_REFERENCE("count"),
variants=[
FTL.Variant(
key=FTL.Identifier("one"),
value=COPY(source, "deleteMsgCmd.label"),
),
FTL.Variant(
key=FTL.Identifier("other"),
default=True,
value=COPY(source, "deleteMsgsCmd.label"),
),
],
)
),
),
FTL.Attribute(
id=FTL.Identifier("accesskey"),
value=COPY(source, "deleteMsgCmd.accesskey"),
),
],
),
FTL.Message(
id=FTL.Identifier("menu-edit-undelete-messages"),
attributes=[
FTL.Attribute(
id=FTL.Identifier("label"),
value=Transform.pattern_of(
FTL.SelectExpression(
selector=VARIABLE_REFERENCE("count"),
variants=[
FTL.Variant(
key=FTL.Identifier("one"),
value=COPY(source, "undeleteMsgCmd.label"),
),
FTL.Variant(
key=FTL.Identifier("other"),
default=True,
value=COPY(source, "undeleteMsgsCmd.label"),
),
],
)
),
),
FTL.Attribute(
id=FTL.Identifier("accesskey"),
value=COPY(source, "undeleteMsgCmd.accesskey"),
),
],
),
FTL.Message(
id=FTL.Identifier("mail-context-undelete-messages"),
attributes=[
FTL.Attribute(
id=FTL.Identifier("label"),
value=Transform.pattern_of(
FTL.SelectExpression(
selector=VARIABLE_REFERENCE("count"),
variants=[
FTL.Variant(
key=FTL.Identifier("one"),
value=COPY(source, "undeleteMsgCmd.label"),
),
FTL.Variant(
key=FTL.Identifier("other"),
default=True,
value=COPY(source, "undeleteMsgsCmd.label"),
),
],
)
),
)
],
),
],
)