Skip to content

Translation and Multi language support

Guo KK edited this page Jun 11, 2019 · 3 revisions

1. Translate

  • Goto http://translate.apkshellext.com
    • It will lead to translation project on Crowdin.com
    • Pick your language or add your language
    • Follow the translation instruction
    • Please contact me for promotion to profreader, then you can prove on your own.

2. How the Multi-language implemented.

Multi languages are supported, by applying .NET native globalization flow with a little trick.

All localize strings are defined in Resource file, by default, an English (en-US) resource (Resources.resx) is in use, alternative language strings are provided from additional resource file, such as Resources.zh-CN.resx or Resources.it-IT.resx, the language code (zh-CN/it-IT) is in the file name.

Corresponding resource will be applied according to user's environment. So if you are using Chinese system, you will see Chinese menu by default.

Each additional culture resource generates satellites dll file, laying under < build >/< lang-code >/ApkSHellext2.resources.dll besides ApkShellext2.dll, Which is I cannot bear, I would like keep a lite and green release structure instead of bunch of files, so I put the satellites dll as a resource into the main dll and extract it out on-the-fly when needed. (see code) I'm using the satellites dll now, just lay the language dll folder as it.

But under this, the build process need to do twice if the resource file got updated. The first time is for generating the satellites dll, the second time will include it into main dll. In Post-build event, the generated satellites dll is moved to resources folder.


Please let me know if you DONOT want your name and email appear on the website as contributor.