Localization of Business Applications
# Localization of Business Applications
TALXIS Business applications are being localized in an external tool named Localazy. Localazy is integrated to our build pipelines to ease everything up. In case of localizing customer specific solutions, Localazy is not used, and the localization happens in the repository directly without additional overhead.
# Basics
Every label or phrase is stored in a .resx
file. All these files are then uploaded to Localazy (if possible), where anyone with access can translate them. If the translations are approved, they're published for the next release.
# How to ...
These guides are ordered chronologically from a new Dataverse solution being introduced to a localized release. If something is not clear or not working, contact jan.kostejn@me.com please.
# Get Solution's Resource File
Solution's .resx
file contains all the phrases as already mentioned. This file is automatically generated by merge to develop
branch to avoid mistakes. However, you need to introduce it first to trigger this whole process.
- Build a solution you want to localize.
- Find the build output and use SolutionPackager (opens new window) to extract the resource file with
/localize
and/sourceLoc:1033
arguments.
- Add generated
.resx
file to the solution in the repository. - Prepare content of the folder for merge.
- Leave only
./en-US/resources.en-US.resx
. - Delete phrases from the file to make sure no one will be making translations in the repository.
- Leave only
# Create a Localazy Project
Every solution has a project in Localazy. Translators can then go and localize the solution in a friendly UI without any technical knowledge.
- Create a project inside NETWORG Localazy organization.
- Set Project name to solution's display name.
- Set URL Slug to solution's unique name.
- Set Source Language to
en_US
# Add Localazy Secrets to Azure Key Vault
Since we want to automatically push new phrases to the Localazy project and pull newest translations from it, we need to authenticate against Localazy in our pipelines. We use Azure Key Vault for Localazy secrets.
- Get the secrets from the Localazy.
- You can quickly access them through previously inputted URL Slug. Just visit this link -
https://localazy.com/p/{ URL Slug }/settings#access-keys
- There are two keys, one is for read and the second for write. You'll need both of them.
- You can quickly access them through previously inputted URL Slug. Just visit this link -
- Add the secrets to the Azure Key Vault.
- Open int0006-pipelines Key Vault's secrets (opens new window).
- Add Localazy read key following this convention -
localazy-readKey-{ solution's unique name }
where non-alphanumeric characters are removed. - Add Localazy write key following this convention -
localazy-writeKey-{ solution's unique name }
where non-alphanumeric characters are removed.
# Merge the Solution's Resource File to 'develop'
If everything above was done, now you need to get your phrases into your new Localazy project. This step has been automated with merge to develop
branch.
- Commit the resource file.
- Open a pull request to develop.
- Wait for approval.
- Make sure that the phrases appear in the Localazy project after successful build. If not, something is wrong and you need to investigate.
# Localize the Solution
The biggest strength of this approach is that anyone can translate the phrases without any technical background. Suggested translations also improve the experience a lot.
- Login to Localazy
- Make sure that you're part of the NETWORG organization.
- Make sure that you have access to the Localazy project you wish to localize.
- Translate.
# Publish a Localized Release
Cherry on top.
- Approve translations in the Localazy project.
- If translations are not approved, they won't be released.
- Trigger a release in Azure DevOps (
master
build).