pomigrate2(1)
π pomigrate2 β the manual, but make it cute π
okay so bestie, this is pomigrate2(1) from the Translate Toolkit 1.3.0 era. yes she's an elder but she still ATE. let's get into it π«Ά
β¨ NAME β¨
pomigrate2 β migrates PO files from an old version using new POT files. that's the whole job. iconic. π
πΈ SYNOPSIS πΈ
pomigrate [options] from to new-templates
so like, quick vocab check, because the args are giving main character energy:
fromβ a directory of existing PO files (your old stuff, the before pic πΈ)toβ the directory where the migrated PO files will be stored (the glow-up destination β¨)new-templatesβ the directory that contains the PO Template files (the blueprint, the vision board π)
π¦ DESCRIPTION π¦
so pomigrate2 is literally built to move an existing translation onto a new version based on updated PO Template files β automatically, without user intervention. no hand-holding, no babysitting, she just goes π
which means she's ideal for when you're migrating a whole pile of languages at once, or when you're migrating between related-but-divergent products β like, the example it gives is Mozilla to Firefox. cousins. sisters even. but not the same girl. π§
π OPTIONS π
-F,--use-fuzzy-matchingβ uses fuzzy algorithms when merging to attempt to match strings. she's guessing, but make it algorithmically β¨-C,--use-compendiumβ creates and uses a compendium built from the migrating files. homegrown, farm-to-table π-C,--use-compendium=some-compendium.poβ uses an external compendium during the migration. bringing your own snack to the party π--no-wrapβ do not wrap long lines. let them be long. let them breathe. π--localeβ sets the locale for newly born files πΆπΈ-q,--quietβ suppresses most output. she's not gonna yap. π€«-p,--pot2poβ usespot2po(1)instead ofmsgmerge(1)to migrate. > β οΈ heads up bestie: you cannot use compendia with this one. pick a lane π
π OPERATION π
so here's the tea β pomigrate2 leans on the Gettext tools msgmerge or the Translate Toolkit's pot2po to do all its merging tasks. it doesn't do the heavy lifting herself, she delegates. queen behavior π
step one: she finds all the files with the same name and same location in the from directory as in the new-template directory, and copies those over to the to directory. matching names, matching spots, no drama. β¨
step two, and this is the part where she gets resourceful: if there's no file in the from directory to match one that the new-template directory needs, she'll msgcat(1) all the files in the from directory that have the same name, and copy them to the correct destination inside the to directory. π«Ά
step three: and if all of that fails? msginit(1) is used to initialise any missing PO files. starting fresh, no shame in it, we all begin somewhere π
lastly, all the files in <to> get merged using msgmerge(1) or pot2po(1). this is the process that updates the files to match the layout and messages in new-templates. π
and optionally β by using --use-compendium β a compendium of all the translations in from can be created, to be used in that final merge process. optional but lowkey delicious π
π BUGS π
None known
not a single one. she's flawless, she's unbothered, she's never been wrong in her LIFE ππ
and that's the whole page, bestie!! π this was pomigrate2(1) from Translate Toolkit 1.3.0 β go migrate something and slay β¨π¦πΈ
π¦ where this page comes from
- debian bookworm: translate-toolkit 3.8.4-1 Β· GPL-2.0-or-later
- debian trixie: translate-toolkit 3.15.1-1 Β· GPL-2.0-or-later
- fedora 43: translate-toolkit 3.15.6-3.fc43 Β· GPL-2.0-or-later
- fedora 43: translate-toolkit 3.16.1-1.fc43 Β· GPL-2.0-or-later
- fedora 44: translate-toolkit 3.18.0-2.fc44 Β· GPL-2.0-or-later
- ubuntu jammy: translate-toolkit 3.6.0-2 Β· GPL-2.0-or-later
- ubuntu noble: translate-toolkit 3.12.2-1ubuntu1 Β· GPL-2.0-or-later
- ubuntu questing: translate-toolkit 3.15.1-1
- ubuntu resolute: translate-toolkit 3.18.1-1 Β· GPL-2.0-or-later
- ubuntu stonking: translate-toolkit 3.19.5-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms