Translations / XLIFF experience
One of the things which is not clear is how to include translation updates as part of the dev process. I suppose this is on the agenda already, but pls find hereby some input on some tools / processes we currently use.
PTE app development As the majority of our customers use BC in Dutch, which is the primary language of our developers, translations are included in code by the developer. (using the 'comment"nl-BE='translation'" tag)
Pro's:
- No need for extra translation effort by other colleague
- Translations can be easily reviewed as part of the PR, as they show up in code
- No conflicts on xliff files
As the developer might have forgotten some translations or did not update the xliff files, we expect the build pipelines to include a safety gate ensuring ...
- ALL translation units have actually been translated (in Dutch) (e.g. If an English caption is present and Dutch caption is missing, a warning is expected)
- ALL translations 'match' a certain set of rules (e.g. The number of placeholders % should match)
- XLIFF files are kept in sync
To achieve the above, we've integrated Xliff-Sync (https://robvanbekkum.nl/xliff-sync-overview/) in our Azure DevOps build pipelines:
- App is compiled to get the latest g.xliff file
- Xliff-Sync powershell step is added to sync the g.xliff file changes to other translation files
- Extract translations from the AL code 'comments'
- Xliff-Sync warnings are raised if translation defects have been detected
- App is recompiled is in step 2. the translation files had been changed
ISV Development For ISV development, we want to support of number of additional languages. Development is mainly performed in English. Translations are managed via an external proces.
We expect the build pipelines to include a safety gate ensuring ...
- XLIFF files are kept in sync
These XLIFF files can then be extracted from the release artifacts and be translated using external tools (e.g. PoEdit, PoEditor, ...) Ideally these updated translation files should then be imported again and merged into the master branch.
To achieve the above, we've integrated Xliff-Sync (https://robvanbekkum.nl/xliff-sync-overview/) in a specific Azure DevOps pipeline:
- Import a zip file from a public url containing xliff files
- Xliff files are replaced by the content of the zip file
- App are compiled to get the latest g.xliff file
- Xliff-Sync powershell step is added to sync the g.xliff file changes to other translation files
- App is recompiled is in step 3. the translation files had been changed
Ideally, it would be great if we can isolate the majority of the translation effort from the developer and let a consultant manage translation update, without introducing too much technical complexity including branches/PR/...
Having a front-end to manage translations working directly on the github repo - something similar to https://www.beyond-translations.de/ - would be even better !
Hi @fvet,
I'm the creator of BeyondTranslations.
I've talked to @freddydk about translations integration on the last tech days. There a few partners chaising different means to handle translations. So AL-Go will probably create a hook to allow partners to integrate their own mechanisms.
We are currently developing a similar platform to BeyondTranslations but with more features. But the way "extensions" work in GitHub you will have a different UI to GitHub. But the goal of the platform is still to be able to shift the work of translating from the developers and allow consultants or other parts of the team to do them.