What is the Localization Editor module?
The Localization Editor is a DNN module that allows you to open up editing of language files (resx files) to other users. The goal is to help you coordinate/manage/delegate translation of DNN stuff. In the settings screen you specify which locales are editable and which resources. The latter is a list of modules and 'the core'. So you can also use this to provide access to core translations.
When do you want to use Localization Editor ?
The module was developed to help 'country/locale leaders' delegate the translation effort. After discussions with various European colleagues it emerged that the pace of DNN releases + their own workload was preventing them from keeping up with language pack releases. It would be a lot easier if these people could create a central DNN site and give access to a group of translators that work on this. It was designed to provide quick overviews of all texts side-by-side so you see what still needs to be done.
What are the goals of the Localization Editor?
- Allow delegation of translation to individual users based on user X can translate module Y/core into locale Z.
- Packs are created on the fly based on the latest translations.
- Proper version management of texts and translations. We must be able to edit an old pack and download old packs.
- Support for generic languages. A user can do the translation for ‘fr’ and those translations will download into the fr-FR pack.
- Allow the translation of non-installed items. The manager will upload a new version of module X/core into the module and the module will extract the resources.
- use automatic translation to improve productivy, see Automatic translation with Google API
Solution
It quickly became clear that editing resx files online was not a forward bound solution. What was needed was to break out the data from the resource files and start managing them in a database. You have texts in the original files that have a resource key, an original (i.e. en-US) text, a filename of the resx file, and a version of the module/core. For each text there are x translations for the various locales in the translations table. Finally there are 2 more support tables, one for the objects (modules/core/etc) and one for permissions (who can edit which locale for which object).
Further reading
Overview of functionalityHow to use the Localization EditorAutomatic translation with Google API Some background infoCredits