Release workflow

Localize every new build without starting over.

Scan for Changes compares the new build with your project, keeps the translations that still fit, and marks what is new or changed. Translators get only the difference, and Create Localized Files writes the localized files, by hand or from your build script.

Compare editions

New buildEXEMyApp.exe1.1Scan for Changes10,000strings20 new5 changedThe rest keepsits translations.Translators25 stringsDEFRJALocalized filesDEFRJAValidation passedThe next build: the same steps, only its own changes. New buildEXEMyApp.exe1.1Scan for Changes10,000strings20 new5 changedThe rest keepsits translations.Translators25 stringsDEFRJALocalized filesDEFRJAValidation passedThe next build: the same steps,only its own changes.
Each release
Scan for Changes keeps the translations that still fit
Work
Only new and changed strings, found by filter
Ready
Translation Readiness for each language
Automation
Command line: Professional and higher
On this page

Scan for Changes: the new build in, the translations kept.

Put the new build where the original files are and choose Project > Scan for Changes. Localizer reads the new files, keeps every translation that still fits, and lists the difference in Output: New, Updated, and Removed, with their counts.

ProjectMyApp.exe 1.0MyApp.exe 1.1DEFRScan for ChangesSourceGermanNew OrderNeue BestellungCustomer:Client:Kunde:String changedQuantity:Menge:Ship todayNoch heute versendenPrint receiptBeleg druckenGift wrapNewCreateErstellenCancelAbbrechenNeue BestellungKunde:Menge:Noch heute versendenNoch heute versendenBeleg druckenGift wrapErstellenAbbrechenOutput1 added · 1 updated · 1 removedPrint receiptTranslation memoryEXEMyApp.exe 1.1 ProjectMyApp.exe 1.0MyApp.exe 1.1DEFRSourceGermanScan for ChangesNew OrderNeue BestellungCustomer:Client:Kunde:String changedShip todayNoch heute versendenPrint receiptBeleg druckenGift wrapNewCreateErstellenEXEMyApp.exe 1.1Output1 added · 1 updated · 1 removedPrint receiptTranslation memory
  • New. The item is new in the build.
  • String changed. The source text changed; review the translation.
  • Matched by value. The item moved; its translation was found by the source text.
  • Fuzzy match. The translation comes from a similar source text; review it carefully.
  • Bounds changed. Only the size or position of the control changed.

Translations of removed items go to the translation memory of the project, in case the text comes back.

Moved and reworded strings keep their translation.

When a dialog is split in two, Localizer finds each string by its source text. A slightly different text gets the old translation as a fuzzy match, from 90% similarity by default, marked for review.

Version 1.0 New Order Customer: Quantity: Ship today Notify customer Create Cancel One dialog becomes two same text similar text Version 1.1 New Order Customer: Quantity: Shipping New Ship today Noch heute versenden By value Notify the customer Kunde benachrichtigen Fuzzy Version 1.0 New Order Customer: Ship today Notify customer Moved to a new dialog Version 1.1 Shipping New Ship today Noch heute versenden By value Notify the customer Kunde benachrichtigen Fuzzy By value same text Fuzzy similar text

Work only on what changed.

The filter Any Merge Changes shows only the items Scan for Changes touched; Needs Translation and Needs Review show what is left. Accept what still fits, translate what is new, then choose Clear Merge Status.

Prepare Translation Task sends translators only that part: its filter takes what is not Complete, plus what Scan for Changes marked new or changed.

ProjectMyApp.exe 1.1DEFRFilter<No Filter>Any Merge ChangesSourceGermanNew OrderNeue BestellungClient:Kunde:String changedQuantity:Menge:Ship todayNoch heute versendenGift wrapNewCreateErstellenCancelAbbrechenNeue BestellungKunde:Menge:Noch heute versendenGift wrapErstellenAbbrechenClient accepted; Gift wrap to translate ProjectMyApp.exe 1.1DEFRSourceGermanFilter<No Filter>Any Merge ChangesNew OrderNeue BestellungClient:Kunde:String changedShip todayNoch heute versendenGift wrapNewCreateErstellenClient accepted; Gift wrap to translate

See which language is ready to ship.

The Statistics pane shows Translation Readiness for each target language: what still needs translation, what needs review, and what is complete. The Ready for Release filter shows the items behind the number.

Project > Generate Project Report saves statistics and progress, remaining work, and the impact of Scan for Changes for the languages you choose. Locked and read-only items are not counted as work.

StatisticsDEDEFRFRJAJATranslation ReadinessRemaining WorkNeeds translation0Needs review0Complete10,000Needs translation0Needs review25Complete9,975Needs translation25Needs review0Complete9,975Project · stringsGermanReady for ReleaseFrench25 to reviewJapanese25 to translateBefore the release StatisticsDEDEFRFRJAJATranslation ReadinessRemaining WorkNeeds translation0Needs review0Complete10,000Needs translation0Needs review25Complete9,975Needs translation25Needs review0Complete9,975Project · stringsBefore the releaseGermanReady for ReleaseFrench25 to reviewJapanese25 to translate

Create Localized Files writes the localized build.

Localizer writes the localized files itself. For a Win32 or .NET build, that means the localized EXE and DLL files or the satellite assemblies, ready to run and test. By default they go next to the originals, in a folder for each language.

New build EXE MyApp.exe DLL Core.dll no source code + Project Dialogs Menus String Table DE FR JA = 新規注文 Nouvelle commande Neue Bestellung Kunde: Menge: Erstellen Run and test right away New build · no source code EXE DLL MyApp.exe Core.dll + Project Complete DE FR JA = Neue Bestellung Kunde: Erstellen Run and test right away
Default output patterns and the file they give for German (Germany)
FileFor German (Germany)
Win32 localized filede-DE\MyApp.exe
MFC resource-only DLLMyAppDEU.dll
.NET resource fileForm1.de-DE.resx
PO filede_DE\messages.po

Each format has its output pattern, for the project or for a single file. Set an output folder such as $(ProjectDir)\Localized to keep the localized files apart from the build.

Before the files are written, validation can stop them while a format string is broken; Run Localized Application starts the result in the target language.

The same steps in one line of your build script.

Professional and higher

localizer.com runs the same operations without the window: scan the new build, validate every language, create the localized files, save the project. The exit code is not zero when validation finds issues or an operation fails, so the build stops there.

Build server> localizer.com MyApp.loc -scan -lang:all -validate -create -saveScanning for changes...Parsing ".\Build\MyApp.exe" using Win32/MFC/Delphi Binary [Dialogs\Shipping\Notify the customer] has been merged using fuzzy matchValidating... Language: German - Germany Language: French - France Language: Japanese - JapanValidation passed.Creating localized files...Finished creating localized files.Saving project...>Localized filesEXEde-DE\MyApp.exeEXEfr-FR\MyApp.exeEXEja-JP\MyApp.exeExit code 0 Build server> localizer.com MyApp.loc -scan -lang:all -validate -create -saveScanning for changes...Validating... Language: German - Germany Language: French - France Language: Japanese - JapanValidation passed.Creating localized files...Finished creating localized files.Saving project...>Localized filesEXEde-DE\MyApp.exeEXEfr-FR\MyApp.exeEXEja-JP\MyApp.exeExit code 0
  • Translation tasks. -sendltp, -sendkit, -sendxliff, and -sendcsv create the task with the settings saved in the project; the -receive switches import the results.
  • Memory and terminology. -importtmx, -translate, and -duplicate fill what can be filled; -terminology in Enterprise.
  • A fixed order. The switches run in one order, whatever their order on the line. To validate after an import, run it twice.
  • No dialogs. A question gets a preset answer, reported as a warning unless you add -silent.
  • Settings from a file. -settings applies project settings from a JSON file.

The Command Line License is included with Professional and higher, with no separate automation license to buy. Not in Standard. In the trial, the command line runs in Enterprise mode with the trial limitations, so you can test your build. Syntax: command-line reference in Help.

One application under several names: Brands.

Enterprise

Brands add a second dimension to languages: the same application under several product, device, or customer names, each in several languages. A terminology list holds the terms that differ between brands, such as product names, and a target brand can show only the items whose original text it changes.

What Release workflow does and does not promise.

Lingobit updates the project and writes the localized files; your build, installer, and release stay yours.

What Lingobit helps with

  • Updating the project from each new build
  • Keeping the translations that still fit, also for moved and reworded strings
  • Finding new and changed items by filter
  • Translation Readiness for each language
  • Writing the localized files
  • The same steps from a build script

What remains project-side

  • Building the application and the installer
  • Toolchain steps such as Qt lrelease or gettext msgfmt
  • Loading the language at run time
  • Testing the localized application and signing off the release

Matching depends on the format: in HTML and CHM files, changed text comes back as Removed and New.

  • MigrationStart the project from the localized files you already have.
  • Translation workflowSend translators and proofreaders only the changes, and bring their work back by status.
  • Translation assistanceTranslation memory, terminology, and machine translation for the new strings.
  • Localization QAValidation before the files are written, and Crash Finder.
  • Compare editionsCommand line, Brands, and the formats in each edition.

Localize the next build without starting over.

Scan for Changes, the filters, Translation Readiness, Create Localized Files, and the command line: the same steps for every release.