DNN Blogs

Written for the Community, by the Community

A Central Hub for Language Packs

Written By Peter Donker

The DNN Platform has strong support for internationalization. You can install so-called language packs that ensure the UI can be seen in another language and you can make fully multilingual sites using the "content localization" feature. The latter allows you to create alternative content for different languages and is not the subject of this blog post. This post is all about the former: showing texts baked into your DNN system in other languages than English.

Language Packs

The aforementioned language packs are no more than a zip file with one or more resx files (in XML format) and a DNN manifest file that explains to DNN where to put these resx files. At runtime, DNN will merge these resx files with the original (English) resx files to give the best possible rendering to non-English speaking users.

You may be aware that DNN has maintained 5 "Core" (i.e. meant for the core platform) language packs for over a decade by now: German, Dutch, French, Italian and Spanish. You can download and install these automatically in DNN by going to the Extensions control panel and selecting "Language Packs" on the "Available Extensions" tab. These language packs are maintained by native speakers of those languages and are currently hosted on Github under the DNNSoftware account (https://github.com/dnnsoftware).

Although this goes a long way to satisfy the demand for localized DNN in the world, it obviously begs the question: what about other languages? And also: what about language packs for components other than the core platform? This has long been a problem that, although firmly on my radar, was left unresolved. The current practice is "Google it" and hope you find something. Or ask the vendor of the component. Let's say you need a French pack for 2Sexy Content. You'd probably contact the kind people of 2Sic to see if they have it.

The Language Pack Manager

For a number of years I have been pushing a vision for language packs that revolves around a central registry. A place where we could ingest packs and serve them to the community. The idea is that those creating packs can easily get them into this system. And that end users can easily find the packs they need to make their DNN installation fully localized. Many years ago I created a module to facilitate online editing of resource files called the "DNN Europe Localization Editor". It included a language pack management part that did what I describe above. Unfortunately it gained little traction, probably because it was hosted on our European (later DNN Connect) website.

Recently I have rewritten this module and focused it entirely on the management aspect of language packs: The "Language Pack Manager". It has lived a relatively quiet life on the DNN Connect website for a year or so, but now we've decided to move this to the main community site and begin pushing the idea of a central language pack hub. The module can be found here:


Note that finding a language pack remains a fairly technical affair. You'll need to know what specific locale (language and region) you need, which component and which version of that component. This can still be quite cumbersome which is why a few people will be looking in the coming months to see if the UI can be improved.

Screenshot 2024-02-15 at 21.26.10

For Translators

If you'd like to contribute translations, please reach out to me so I can get see what your needs are. There are several ways to get language packs into this module. The first is in the same way as the core language packs: through a Github repository with releases. The second way is that you send the language pack to me by email and I'll upload it. Finally I can also give you access to upload yourself once we're comfortable that you understand how it works and how this should be done.

I will round off with a shout out to this: There is a translation tool called the "DNN Translator" (https://github.com/DNN-Connect/DNN-Translator) which is a project I also maintain. This is a Windows Desktop program that you can point to a locally installed DNN installation and it will load up the various resource files in easy to edit grids for you. It also supports using Google translate to help you be more productive. I plan to do a video presentation of this tool in the near future to help you get started. In the Docs folder of the repo there is a Word document that is a brief guide on how to use it.

Screenshot 2024-02-15 at 21.28.55

Total: 6 Comment(s)
Awesome news Peter! Thanks for all your efforts on Localization! The tutorial you mention will help a lot of people
Monday, February 19, 2024 ·
Great! :-)
Thursday, February 22, 2024 ·
Saturday, February 24, 2024 ·
Peter, we are looking at shipping more locales with the forums module and I have been looking at the DNN connect translation tool to jump-start that process. In addition to google, the tool targets “bing” (Microsoft translator v2) which uses XML. Microsoft is now using v3 under the Azure cognitive services umbrella, and it now uses JSON rather than XML. I cloned the repository, left the Bing stuff there and added azure as a separate translation service. I also changed the local copy of the smith html editor to use a Nuget package. Do you want those changes as a GitHub pull request?
Wednesday, May 15, 2024 ·
Yesyes. Love to see that as a PR.
Thursday, May 16, 2024 ·
PR submitted :) It includes the Azure API updates. I reverted the changes I made for the Smith HTML Editor, as I couldn't get it to work due to dependency issues with MSHTML interoperability.
Thursday, May 16, 2024 ·

Would you like to help us?

Awesome! Simply post in the forums using the link below and we'll get you started.

Get Involved