Translation Tool - Easy translate into multiple languages

Discuss and distribute tools and methods for modding.
BrainFooLong
Posts: 5
Joined: Tue Mar 06, 2018 8:10 pm

Translation Tool - Easy translate into multiple languages

Postby BrainFooLong » Tue Mar 06, 2018 8:16 pm

Hi!

I like this game and i like to have it in my language as well.
So, challange started.

I currently started the work on the german translation here

https://github.com/brainfoolong/IntoThe ... anslations

Downloads:
German Alpha: https://github.com/brainfoolong/IntoThe ... ges/de.zip
French Alpha: https://github.com/brainfoolong/IntoThe ... ges/fr.zip

The tools are set-up and contributers can start right away by following the readme.
I am doing german currently on a daily basis.
There tons of lines to translate, so it may take a while. If you would like to help, goto github and create an issue in the tracker.

If you want translate into another language, create an issue in the tracker.
I can create a single .po file for your language that contains almost all translation keys from the game, 1500+ currently.

The tools provide 2 way setup for developers:
1. Convert game files (Lua scripts with language keys in it) into the required .po file.
2. Convert the edited .po file back into the game files and create a downloadable zip package out of it.

For translators the work is easy. Edit your language .po file and push the change requests to the original repository.
Periodically it will automatically generate the downloadable mods/packages. You can do that also yourself with the provided tools.
Last edited by BrainFooLong on Mon Mar 12, 2018 7:54 am, edited 1 time in total.
leper911
Posts: 3
Joined: Sat Mar 03, 2018 12:25 pm

Re: Translation Tool - Easy translate into multiple languages

Postby leper911 » Thu Mar 08, 2018 1:29 pm

In any our script we can detect current Windows locale and switch language.

hire is ugly test code what return locale number from regedit

Code: Select all

function shellExecute(cmd, Output)
   if (Output == nil) then Output = true end
   local file = assert(io.popen(cmd, 'r'))
   if (Output == true) then
      local cOutput = file:read('*all')
      file:close()
      return cOutput
   else
      file:close()
      return
   end
end
function mysplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end


Command = shellExecute("reg query hklm\\system\\controlset001\\control\\nls\\language /v Installlanguage")
status = Command:gsub("\r",""):gsub("\n","")
LCode = string.sub(status, -4)
LOG(LCode)

Language Code

Code: Select all

0436 = "af;Afrikaans"
041C = "sq;Albanian"
0001 = "ar;Arabic"
0401 = "ar-sa;Arabic (Saudi Arabia)"
0801 = "ar-iq;Arabic (Iraq)"
0C01 = "ar-eg;Arabic (Egypt)"
1001 = "ar-ly;Arabic (Libya)"
1401 = "ar-dz;Arabic (Algeria)"
1801 = "ar-ma;Arabic (Morocco)"
1C01 = "ar-tn;Arabic (Tunisia)"
2001 = "ar-om;Arabic (Oman)"
2401 = "ar-ye;Arabic (Yemen)"
2801 = "ar-sy;Arabic (Syria)"
2C01 = "ar-jo;Arabic (Jordan)"
3001 = "ar-lb;Arabic (Lebanon)"
3401 = "ar-kw;Arabic (Kuwait)"
3801 = "ar-ae;Arabic (you.A.E.)"
3C01 = "ar-bh;Arabic (Bahrain)"
4001 = "ar-qa;Arabic (Qatar)"
042D = "eu;Basque"
0402 = "bg;Bulgarian"
0423 = "be;Belarusian"
0403 = "ca;Catalan"
0004 = "zh;Chinese"
0404 = "zh-tw;Chinese (Taiwan)"
0804 = "zh-cn;Chinese (China)"
0C04 = "zh-hk;Chinese (Hong Kong SAR)"
1004 = "zh-sg;Chinese (Singapore)"
041A = "hr;Croatian"
0405 = "cs;Czech"
0406 = "the;Danish"
0413 = "nl;Dutch (Netherlands)"
0813 = "nl-be;Dutch (Belgium)"
0009 = "en;English"
0409 = "en-us;English (United States)"
0809 = "en-gb;English (United Kingdom)"
0C09 = "en-au;English (Australia)"
1009 = "en-ca;English (Canada)"
1409 = "en-nz;English (New Zealand)"
1809 = "en-ie;English (Ireland)"
1C09 = "en-za;English (South Africa)"
2009 = "en-jm;English (Jamaica)"
2809 = "en-bz;English (Belize)"
2C09 = "en-tt;English (Trinidad)"
0425 = "et;Estonian"
0438 = "fo;Faeroese"
0429 = "fa;Farsi"
040B = "fi;Finnish"
040C = "fr;French (France)"
080C = "fr-be;French (Belgium)"
0C0C = "fr-ca;French (Canada)"
100C = "fr-ch;French (Switzerland)"
140C = "fr-lu;French (Luxembourg)"
043C = "gd;Gaelic"
0407 = "de;German (Germany)"
0807 = "de-ch;German (Switzerland)"
0C07 = "de-at;German (Austria)"
1007 = "de-lu;German (Luxembourg)"
1407 = "de-li;German (Liechtenstein)"
0408 = "el;Greek"
040D = "he;Hebrew"
0439 = "hi;Hindi"
040E = "hu;Hungarian"
040F = "is;Icelandic"
0421 = "in;Indonesian"
0410 = "it;Italian (Italy)"
0810 = "it-ch;Italian (Switzerland)"
0411 = "ja;Japanese"
0412 = "ko;Korean"
0426 = "lv;Latvian"
0427 = "lt;Lithuanian"
042F = "mk;FYRO Macedonian"
043E = "ms;Malay (Malaysia)"
043A = "mt;Maltese" 0414 = "no;Norwegian (Bokmal)"
0814 = "no;Norwegian (Nynorsk)"
0415 = "pl;Polish"
0416 = "pt-br;Portuguese (Brazil)"
0816 = "pt;Portuguese (Portugal)"
0417 = "rm;Rhaeto-Romanic"
0418 = "ro;Romanian"
0818 = "ro-mo;Romanian (Moldova)"
0419 = "ru;Russian"
0819 = "ru-mo;Russian (Moldova)"
0C1A = "sr;Serbian (Cyrillic)"
081A = "sr;Serbian (Latin)"
041B = "sk;Slovak"
0424 = "sl;Slovenian"
042E = "sb;Sorbian"
040A = "es;Spanish (Traditional Sort)"
080A = "es-mx;Spanish (Mexico)"
0C0A = "es;Spanish (International Sort)"
100A = "es-gt;Spanish (Guatemala)"
140A = "es-cr;Spanish (Costa Rica)"
180A = "es-pa;Spanish (Panama)"
1C0A = "es-do;Spanish (Dominican Republic)"
200A = "es-ve;Spanish (Venezuela)"
240A = "es-co;Spanish (Colombia)"
280A = "es-pe;Spanish (Peru)"
2C0A = "es-ar;Spanish (Argentina)"
300A = "es-ec;Spanish (Ecuador)"
340A = "es-cl;Spanish (Chile)"
380A = "es-uy;Spanish (Uruguay)"
3C0A = "es-py;Spanish (Paraguay)"
400A = "es-bo;Spanish (Bolivia)"
440A = "es-sv;Spanish (El Salvador)"
480A = "es-hn;Spanish (Honduras)"
4C0A = "es-ni;Spanish (Nicaragua)"
500A = "es-pr;Spanish (Puerto Rico)"
0430 = "sx;Sutu"
041D = "sv;Swedish"
081D = "sv-fi;Swedish (Finland)"
041E = "th;Thai"
0431 = "ts;Tsonga"
0432 = "tn;Tswana"
041F = "tr;Turkish"
0422 = "uk;Ukrainian"
0420 = "your;Urdu"
042A = "vi;Vietnamese"
0434 = "xh;Xhosa"
043D = "ji;Yiddish"
0435 = "zu;Zulu"
BrainFooLong
Posts: 5
Joined: Tue Mar 06, 2018 8:10 pm

Re: Translation Tool - Easy translate into multiple languages

Postby BrainFooLong » Thu Mar 08, 2018 2:48 pm

I am not exactly sure how this is related to this tool @leper911.
poxala2615
Posts: 3
Joined: Wed Jun 19, 2024 2:52 am

Re: Translation Tool - Easy translate into multiple languages

Postby poxala2615 » Tue Oct 01, 2024 4:06 am

The fact that you can create a single .po file for any language with almost all the translation keys from the game is really impressive. The two-way setup for developers is also very convenientbest free iq test