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


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 functionality
How to use the Localization Editor
Automatic translation with Google API
Some background info

Last edited Sep 17, 2009 at 11:19 AM by EPT, version 14