Translations: Unclear strings & other problems
#61
Posted 28 July 2020 - 06:51 AM
Cheers, Markus
#62
Posted 29 July 2020 - 10:24 AM
Weter, on 27 July 2020 - 03:41 PM, said:
#: ../../Orts.Simulation/Simulation/Confirmer.cs:241 msgid "locked. Use shaft before changing gear."
What is "use shaft"?
Very good question.
The code suggests that the English text is wrong and should be:
P.S. I've raised a Bug Report to get the English changed.
Best wishes,
#63
Posted 31 July 2020 - 12:46 PM
Переключать скорости можно, только выключив контроллер.
Oh! Probably, they could mean "Loose"(not "use") shaft? in context remove all torque to protect gears from evcesive stress?
if this could be engineer's slang
#64
Posted 31 July 2020 - 05:46 PM
I like to run Russian routes and rolling stock.
For me running OR in English I do need to translate to English things such as station names and paths ect from Russian.
Regards Geoff.
#65
Posted 01 August 2020 - 02:12 AM
This work, as I understand, had to be done inside of each route individually :(
You can activate russian codepage (if You running Windows), at least to show cyrillic symbols properly in game.
If You mean only geographic names, what sence to translate them?
#66
Posted 12 August 2020 - 02:18 PM
In English version there are more "universal" words, suitable for many cases: "off"/"on"; "power" and, maybe, some else.
At Russian version, the only such words are not adequate in some contexts, as there are another words for definition of different things and/or states.
Looking a source-code of *.po-files shows me, that multiple strings has single meaning (on/off for instance), so the simplest way, that I thought, I can do-is to assign to every such string its own definition, by manual editing of code...
Am I right?
#67
Posted 12 August 2020 - 03:51 PM
Yes, that sounds like the right solution, and there are no doubt other languages besides Russian that would need control over the entire phrase.
I would be happy to put in the work, but ideally we could make this change in such a way that the existing translations are preserved. I'm sure this is possible but, not being familiar with GNU Gettext, I would need to do some research first. In the meantime I have filed a blueprint to keep this on our radar.
#68
Posted 13 August 2020 - 07:45 AM
As well, I would You to take a part on this discussion from its very beginning, as I hope, Your opinion could bring some more light to the unclear sides of translation material, and for me-not to ask the same questions one more time.
#69
Posted 13 August 2020 - 12:26 PM
Quote
For example:
i) russian words often consist of a large number of letters, and there are more "wide" letters (Ш, Щ, Ы, Ж, M, Ю) in Cyrillic, than in Latin (W, M).
This requires expanding the space for labels in fields and buttons.
So, the word "Фактически" will not fit in the column where "Actual" is placed end-to-end (F10 timetable window)
ii) if there are many "universal" words in English (on/off, power), then Russian provides a greater variety for each case, so you need to "split" the code blocks so that in the case of an electric locomotive, instead of "power" you can write "Voltage", and in the case of a diesel locomotive- "Wattage";
iii) some lines contain syntax errors and are not displayed in the translated form ("DISPATCHER : INFO" contains a colon and is taken by the program as code); and others-are not present in the template-file for translation at all (the state of auto-brakes "EQ BC BP", doors "doors") - that is, these code errors need to be corrected.
The iii has already discussed here.
#70
Posted 14 August 2020 - 03:49 AM
Weter, on 13 August 2020 - 12:26 PM, said:
For ii, the proper method is to change the relevant GetString() and GetPluralString() functions in the C# code to GetParticularString() and GetParticularPluralString() respectively, where it is possible to add a so called "context" to the translation. When I initially made the translations of certain parts of OR, I have identified some of these cases, where I knew e.g. the Hungarian term differs in different contexts, while the English one is the same. An example can be found in e.g. the Orts.Simulation/Simulation/Confirmer.cs file, like:
new string [] { GetParticularString("NonSteam", "Reverser"), GetString("reverse"), GetString("neutral"), GetString("forward"), null, null, GetString("locked. Close throttle, stop train then re-try.") } new string [] { GetParticularString("Steam", "Reverser"), GetString("reverse"), GetString("neutral"), GetString("forward"), null, null, GetString("locked. Close throttle, stop train then re-try.") }
In the above example the English term for the "Reverser" is the same, while in my language they are different. It is possible to add more of such GetParticularString()-s, but unfortunately not without breaking the existing languages' translations. The good news is, the other languages' .po files can be actually patched by using a text editor, without knowing the language. It's manual work, but for only a couple of such changes it is absolutely doable. (The actual translation in the .po files just needs to be doubled, and by using the above example, an msgctxt "NonSteam" needs to be added to the first instace, and an msgctxt "Steam" to the second, ensuring that in other languages both contexts translate to the same string.)
Search for "GetParticularString" in the C# code for more examples.