Jump to content

Individual language files for everything


Recommended Posts

The idea is simple.

Scriptable version of every written things in KSP.

Maybe in XML or something similar.

For menus, for missions, for training sessions, for playable scenarios, for PARTS.

My sketch about idea:

(format taken from php, so it's not exactly the same, but similar to my idea)

GameData / Languages / English

language.cfg >

[INDENT=2]$_['direction']             = 'ltr';
$_['date_format_short'] = 'd/m/Y';
$_['date_format_long'] = 'l dS F Y';
$_['time_format'] = 'h:i:s A';
$_['decimal_point'] = '.';
$_['thousand_point'] = ',';
$_['langcode'] = 'EN';
$_['langname'] = 'English';

etc...[/INDENT]

common.xml >

[INDENT=2]$_['mainmenu']             = 'Main Menu';[/INDENT]
[INDENT=2]$_['newgame'] = 'New Game';

etc...[/INDENT]

tutorial.xml >

[INDENT=2]$_['tut1-001']             = 'Welcome to the Kerbal Space Program Orbiting tutorial';[/INDENT]
[INDENT=2]$_['tut1-002'] = 'Now you'll learn how can you reach a stable Kerbin orbit without killing Jebediah';

etc....[/INDENT]

KSP scanning folders at gamestart, and checking available languages. You can choose your game language in SETTINGS menu, by showing only available languages. If some entries not presents in your language, then using default (english) one.

For example if you set Polish, but only partial translation available on your folder (eg. because of update), the game will show the missing entry on english.

It's easy to use at (modded) parts, too:

GameData / Kotysoft/ NRAP / Parts

EN.xml >

[INDENT]
$_['title'] = 'NRAP - Medium Weight';

$_['manufacturer'] = 'Kerbonational New Rocket Assessment Programme';

$_['description'] = 'blablabla in english';
[/INDENT]


HU.xml >

[INDENT]
$_['title'] = 'NRAP - Közepes súly';

$_['manufacturer'] = 'Kerbonacionális Új Rakéta Értékelő Program';

$_['description'] = 'blablabla magyarul';
[/INDENT]


GameData / Kotysoft/ NRAP / Plugins

same format like before

So basically if you have language.cfg for your language, you can set this for whole game as your primary language. If a part or plugin or anything dont have a language file named [YourLangCode].xml then the default lang (english) will shown.

It's easy for parts, but maybe a little bit more complicated for plugins, because this change in game system will need to rewrite all plugins made earlier.

Link to comment
Share on other sites

I have always very mixed feelings when it comes up to localization of software. For someone who does not speak english or whatever the initial language used in that software is it is a godsend. But on the other side, it's extremely tricky to do it right and recently I am getting more and more sick by localized programs which are localized poorly and insist that since I am in my country, I am supposed to withstand the program's poor translation. Some even don't allow to change language selection.

One thing is the translation itself. Messages are often put out of context and while translating, people do not often realize what context applies to them which leads to mistranslation. One hilarious example is from MS windows installation which used to have "Installing volume manager" translated to my language as "Installing loudness manager" for many years and many windows versions.

Letting the translator to see the context of the message is extremely tricky and it is a lot of work.

The other thing is that different languages have different ordering of elements. Units may need to be put before or after the value, or even elements of the message need to be reordered based on the language. Message such as "You will hit [body] in [time] seconds" may need the [body] and [time] values swapped. Again, it is often implemented as "translateable" message "You will hit %s in %s seconds" which leads to either unnatural or completely wrong translation if there is no way to put these elements in the right order. That is exactly the case with e.g. Reddit translation to my language, which throws messages like "seen 5 minutes ago" translated to my language in a way which does not make sense because in my language there is no way to put that "ago" at the end of sentence. But it is there, translated literally and making sentence which is simply wrong.

And yet another thing are counters. You sure understand that message "you will die in [number] hours" does not really work if that [number] is 1 and you need to alternate between "hour" and "hours" based on what the value is. Many programs allow one word for value "1" and another word for any other value, but while that might be enough for english, it still does not suffice for other language. My language has three such steps, for instance. One word is for 1, another word for 2-4, and yet another word for 5-20. At 21 we're back to word for 1, 22-24 is the same as 2-4 and so on. So far I have met only one program which supported this level of localization.

So... yeah, I think localization is a good idea. But it should be done right.

Link to comment
Share on other sites

You might be interested in The Internationalization Project, which is currently dormant. Unfortunately, Squad does not see the value in supporting alternate languages, even if it doesn't mean writing the translations themselves. We can always hope that more support for this idea will change their minds.

Seeing as everything is probably still a placeholder, there's little sense in trying to translate it.

Let them finish the game first

Link to comment
Share on other sites

Also, localisation is usually done near the end of the development cycle. Usually the translators are not the devs, so as the devs make changes they can only update the English text, and maybe one or two others. Then the translators have to come back and do some more translating. With paid translators, it becomes expensive to keep making changes, with volunteer translators stuff gets out of date and misleading. Much better to wait for the project to be complete, then make the translations.

This of course is for a conventional dev cycle. The elephant in the room is the possibility that KSP is going to continue to see minor releases for a loooooong time, and thus waiting for near 1.0 release to do translation becomes a bit of a pain.

Link to comment
Share on other sites

Note that my link talks about internationalization, which is not the same as localization. The former is the support structure for the latter. Generally speaking, you want to do internationalization as early as possible (because the longer you go without, the harder it is to implement) and localization as late as possible (for reasons already mentioned).

Link to comment
Share on other sites

Majiir, that is EXACTLY what I'm looking for.

You speaks english much better than me, so you could explain the idea more deatiled and clear.

And YES. I don't want to ask SQUAD to translate whole game to my language (hungarian), but asking them to make it easily rewriteable/expendable in a simple script file.

In Hungary there are MANY good-quality and enthusiastic translators in younger generation (they're mostly between 12-25 yo.). They're making awesome game translations, TV-series subtitles, and rarely utility-software translations for hungarian community for free.

(an example collection of volunteer game-translations HERE, marked/chekced by green color)

Kasuha, I perfectly understand your mixed feelings and arguments. Variable reordering can be done (IMHO) an easy way if the script using absolute variables instead of reading placeholders.. For example: "You will hit %body in %time seconds" instead of "You will hit %1 in %1 seconds" .

About quality of translations...: Low-quality translations will be wear out by "natural selection". I meant, The better translation will get positive and more feedback and download meanwhile the bad one will be ignored or get negative feedback by community...

Sirrobert, as we all already said, not asking them to translate but to implement script language for volunteer translators. Earlier implement it into game, earlier available in many different languages (without effort and time needed by SQUAD), earlier pay attention of non-english-speaking players, will generate more revenue for developing stage. As I know, in Hungary people over 40+ don't speaks english and don't understand english well (because they're learned russian under russian occupation), but they're the PAYING customers/players (not the torrent-category ones like big percentage of younger generation).

As you see, I don't speak well and can't compose perfect english sentences, but fortunately I understand it well.

Link to comment
Share on other sites

About quality of translations...: Low-quality translations will be wear out by "natural selection". I meant, The better translation will get positive and more feedback and download meanwhile the bad one will be ignored or get negative feedback by community...

That does not match my experience with translated programs so far. Translating a program is rather tedious work and people who often spent a lot of time on it are not willing to look back and fix errors because that is even harder than to do the first pass.

People often either know english well enough that they don't need the translation (my case), or know english poorly and the quality of their translation corresponds to that. Note that I participated in a major translation project some time ago and I had enough of that since then.

It would probably help if software provided easy way to issue corrections, meaning anywhere in the program UI I am allowed to e.g. right-click on a dialog or message, mark the sentence as badly translated and propose fix that gets eventually propagated to appropriate translation file and place where translation of that sentence is placed and where the proposed fix can be later reviewed and submitted.

Edited by Kasuha
Link to comment
Share on other sites

There are already translation packs for mods, even though KSP doesn't have any decent support for other languages. The demand is there. I don't think quality of translations is a big enough problem to have any bearing on the decision to internationalize.

Link to comment
Share on other sites

Hmm.. I don't know... Maybe you met very complicated language-file-trees, but for example in Emergency 4 it was pretty easy: If you made typing error, just search in content by TCMD for word of "fite" (instead of "fire") or if you made linguistic error, then you know it happened on mission 1 briefing text, then open mission1.xml and edit corresponding entry...

By the way I don't know how professional translators work, but when I helped in translation of EM4, I always watched the game environment of text, because imho translating text without seeing the environment where appears makes stupid things... there are many polysemantic words/expressions in english and in hungarian, too...

Link to comment
Share on other sites

Hmm.. I don't know... Maybe you met very complicated language-file-trees, but for example in Emergency 4 it was pretty easy: If you made typing error, just search in content by TCMD for word of "fite" (instead of "fire") or if you made linguistic error, then you know it happened on mission 1 briefing text, then open mission1.xml and edit corresponding entry...

When you meet a stranger who is learning your language and he makes an error, you just tell him what error he made and explain him what he should have said instead.

Fixing translation errors should be as easy as that.

You should not need to go to the embassy of that stranger's birth country, register as authorized advisor on language problems, then return back to that stranger, make him remember what he said when you first met and take him to school run by that stranger's embassy which is the only place where you are authorized to teach that stranger your language.

Because this is how translation projects work now.

Link to comment
Share on other sites

Hmm.. I don't know... Maybe you met very complicated language-file-trees, but for example in Emergency 4 it was pretty easy: If you made typing error, just search in content by TCMD for word of "fite" (instead of "fire") or if you made linguistic error, then you know it happened on mission 1 briefing text, then open mission1.xml and edit corresponding entry...

When you meet a stranger who is learning your language and he makes an error, you just tell him what error he made and explain him what he should have said instead.

Fixing translation errors should be as easy as that.

You should not need to go to the embassy of that stranger's birth country, register as authorized advisor on language problems, complete a course on stranger's language and cultural basics so you understand why does he do such errors, then return back to that stranger, make him remember what he said when you first met and take him to school run by that stranger's embassy which is the only place where you are authorized to teach that stranger your language.

Because this is how translation projects work now. It may pay off if you are willing to do a lot of work on the project. But when you want to just fix some errors, it's just too complicated procedure.

Link to comment
Share on other sites

Kasuha, yes, you're right. "on the fly" translation and corrections would be much easier :)

I don't know how hard is to learn C# but I'll start to learn it beacause changing a string using textfield and a simple SAVE button in VBA (the only1 programming code i ever met) is pretty easy....

Link to comment
Share on other sites

Hmm.. I don't know... Maybe you met very complicated language-file-trees, but for example in Emergency 4 it was pretty easy: If you made typing error, just search in content by TCMD for word of "fite" (instead of "fire") or if you made linguistic error, then you know it happened on mission 1 briefing text, then open mission1.xml and edit corresponding entry...

By the way I don't know how professional translators work, but when I helped in translation of EM4, I always watched the game environment of text, because imho translating text without seeing the environment where appears makes stupid things... there are many polysemantic words/expressions in english and in hungarian, too...

It's not about typos

It's about excruciatingly bad grammer, and horrible out of context messages.

Both off which are the reason I NEVER play any client in my own language, I only ever use english clients

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...