Minetest_game: Translating minetest_game

Created on 31 Oct 2017  ·  18Comments  ·  Source: minetest/minetest_game

IIRC engine client-side translations arrived to master, so this can be utilised in minetest_game, but there is huge silence about this.

I will leave this open, please take over this issue.

Request / Suggestion Translation

All 18 comments

A lot of translations are readily available here:
https://hosted.weblate.org/projects/minetest/mtg_i18n/

But i'm being silent in all languages ..

Personally i'm uninterested in working on translations for MTG, but don't mind if others do. I'm also neutral about whether MTG should have translations.

Yet there's no C++ version of the "wheel re-inventing" gettext po file parser in the core - which significantly slows the interest in this feature. I'd love to see the translation coming, but I'm afraid this will have to wait for another release to translate it properly.

I believe there's a PR somewhere in the deep dark dungeons of the Minetest issue tracker which adds at least a basic toolchain for translators. I can't find it at the moment.

@Wuzzy2 I think it's https://github.com/minetest/minetest/pull/6325 which you meant. It would be great if someone could take care of it.

The priority of this should be super high!!!

Too much work for core devs to get it done before 5.0.0 though.

I think having the framework for the translations, even if the game is not translated but can be, should be an important goal before the release though.

I look forward to your PR :) I'm too busy, as are all other MTG devs.

I would like to express my sincere thanks to the game developers and their coding efforts for the excellent 5.0.1 game code. The stability and flexiblity make a joyful gaming experience.

I am aware the game developers may be reluctant and are quite occupied by the true coding of the game. However, as a non-english European citizen I favor any translation efforts. Naturally, we cannot demand such a thing but have to make happen the sometimes demanding work of both the translation and the somewhat risky adaption of code for the translation.

Please have a look at my proposal on [Mod] Internationalization Library [intllib] in the Minetest forum. My proposal should be understood as a strong support for _intllib_ and the LUA-code translation efforts.

Intllib is not an option for online multiplayer games like Minetest Game. Intllib works by translating everything at the server side. This means every player will see the same translation, namely the translation of the server. Even if the translation is incomplete. The same problems appear for any other mod-based solution. There is no way around that, sorry.

The correct way is to use Minetest's builtin translation system. Basically you would just go around all *.lua source files in Minetest Game, add the boilerplate (local S = minetest.get_translator("modname")) and enclose all user-facing strings in S("string"). The problem is that somebody has to do it (not me!).

@Wuzzy2

Intllib is not an option for online multiplayer games like Minetest Game.

I tend to oppose and IMHO the LUA-code mod Intllib is a helpful and realiable tool.

@kaeza and all:
Please refer to the forum topic game_intllib - Re: [Mod] Internationalization Library [intll] for my little games_intllib project and first results. Currently, this WIP introduced the appropriate S("string") enclosures to about 400 user-facing strings in compliance to the _GNU gettext toolchain_ and covers 36 LUA-code files of the game mods tree of the current _minetest_game-5.0.1_ code already.

@Wuzzy2

The problem is that somebody has to do it (not me!).

Sorry, IMHO this looks more like a complaint and blaming but may not be that much of a contribution.

@Wuzzy2 and all:
Please also note the option one may disable the _game_intllib_ and may ignore the _intllib_ mod but could continue in using the locale folder and the umbrella _template.pot_ as well as the more appropriate _PO-files_ (e.g., _fr.po_, _de.po_, _ru.po)_ for a client translation solution independantly. The same would apply to most if not all external mod files too, I presume. MT is a FOSS project and one should be open and have fun too hopefully.

Please have a look at my fork and I have already successfully changed about 400 lines of code of the existing mods by introduction of a S("string") enclosure as contribution in support of the MT game translation efforts. The 'game_intllib' mod may be not optimal but allows a MT translation with the current MT core and game software in a pragmatic way.

Please consider a visit at:

  • My fork and new branch game_intllib on Github
  • my 2d8d7f4 commit and report for details

For a view on first GUI results please consider to look at my recent contribution in the MT forum.

Unfortunately, there are some minor deviations due to unwanted changes to the code basis which have to be corrected by me again like the 'group'/'default' issue in the 'doors' mod at:
@@ -788,42 +786,42 @@ function doors.register_fencegate(name, def)

In addition there are some minor slips in the accompanying files like README.md and the need of an update to the documentation.

I will irregularily check the code and seek to gradually improve my contribution before a pull request. Any advice from the MT developers would be welcome.

Thank you and happy hacking.

So you deliberately ignore the fact that you will basically force all clients on the same translation that the server has. But you keep pushing your approach very hard for … reasons? I don't get it. You are not making sense.
You DO realize you are working against your own stated goal of “freedom to enjoy MT in your language of choice.”, right? Your approach will give users exactly no choice, so you're not helping.

Let me also remind you that you're not the first one who attempted this and failed. MTG devs have already (and rightfully) rejected another attempt to push basically the exact same idea into MTG:

https://github.com/minetest/minetest_game/pull/1556

Your approch is exactly the same. Therefore it is going to fail.

However, the part of your commits that add the S()es might still be useful in some way, but it would still need lots of repairing to make it compatible with the native translation system (minetest.get_translator).

We need fresh air, some friendly thoughts and a more open attitude.

There is always the chance of failure but this should not matter most.

2466

EDIT: Merged. Closing as translation is now underway and wil be an ongoing process.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Fixer-007 picture Fixer-007  ·  6Comments

TekhnaeRaav picture TekhnaeRaav  ·  5Comments

paramat picture paramat  ·  6Comments

benrob0329 picture benrob0329  ·  4Comments

FeXoR-o-Illuria picture FeXoR-o-Illuria  ·  4Comments