V10lator / NUSspli

NUS simple packet loader/installer
GNU General Public License v3.0
471 stars 17 forks source link

Improved German translation #331

Closed H0mebrewL0ver closed 1 month ago

H0mebrewL0ver commented 2 months ago

I have considered the feedback in PR https://github.com/V10lator/NUSspli/pull/139. I assume you understand German, so I will go into more detail.

I have noticed that some strings are not included in the localization file. "Online updates", "Operation:" and "Logs" are missing. I have added them with the format of other strings. Please clarify if this works.

There are also some strings that seem to use placeholders (line 125) and I am not sure I have accounted for everything. I would also like to get some context for:

Please leave feedback for any other things you have noticed!

V10lator commented 1 month ago

Thanks for this. I like some of the changes while others I dislike. For example you might be right with the hypen between some words but I guarantee you every german citizen will understand what Online updates means, so it has not been added to the translation to save space and make it more simple to maintain. Same goes for "Logs" and here I even like it more than "Protokoll" cause who the f** says for example "Serverprotokoll" in german IT these days, for example?

There are also some strings that seem to use placeholders (line 125)

Line 125 of what file? At https://github.com/V10lator/NUSspli/blob/master/data/locale/German.json it's an empty line (should help getting an overview, not a placeholder). At https://github.com/V10lator/NUSspli/blob/master/meta/baselocale.json it's a line which is indeed translated in the german translation, so also not a placeholder.

line 25

Empty line in both files: https://github.com/V10lator/NUSspli/blob/master/data/locale/German.json https://github.com/V10lator/NUSspli/blob/master/meta/baselocale.json Are you talking about line 24? If so what exactly do you want to know? This string is used here, for example: grafik And there's also something weird in your translation: All looks good on that screen except Drücke (X) zur SD-Karte zu wechseln ... Not sure if there's still enough space for a um. Also it's called SD everywhere, you changed just this single entry to SD-Karte.

Rest with line numbers I won't reply to until clarification about what file we're even talking.

what is MCP?

A very big program doing a lot of administrative tasks in the operation system(s) (yes, it runs partly on CafeOS and partly on IOUS) Nintendo created for the Wii U. Seeing what it does I guess Nintendo devs watched too much Tron and this stands indeed for Master Control Program. NUSspli utilises MCP for various things, including the title installations itself.

Do not start to change anything on this PR for now, please. I will give more replies later, so wait for them. please. :)

V10lator commented 1 month ago

BTW: You can find test builds including your translation here: https://github.com/V10lator/NUSspli/actions/runs/10006277161

V10lator commented 1 month ago

One last thing then I'll go into individual points of your changes (which needs more time) : This Protokoll vs. Logs thing: We should just accept that languages change and that german language incooperates words like these. One example is "Hast du die Logs schon durchgesehen?" in german IT. Same goes btw the other round: "What kind of kindergarden is this" is a valid english sentence, even if Kinder is a german word not used in english anywhere else (and Kind even has a completey different meaning in engish and in german).

H0mebrewL0ver commented 1 month ago

I guarantee you every german citizen will understand what Online updates means

While it's true that every German citizen would understand that, it could still be a problem for other languages. Furthermore, this argument could be made for every change in this PR. Everyone would understand it without these changes, they did it for years, but now it would be grammatically correct.

Same goes for "Logs" and here I even like it more than "Protokoll" cause who the f** says for example "Serverprotokoll" in german IT these days, for example? [...] This Protokoll vs. Logs thing [...]

My intention was to provide a translation that anyone could understand immediately, even if they aren't familiar with the topic. This menu option is displayed at the start of the app, but only experienced users would benefit from it. There are great guides for homebrewing the Wii U console and/or using this software (NUSspli), so basically anyone who isn't necessarily familiar with such terms could do it. This is just the explanation of my intention, of course we can change it back to "Logs".

Rest with line numbers I won't reply to until clarification about what file we're even talking.

I referred to the line numbers of this PR. I will use the old german.json from now on. This would be

Also it's called SD everywhere, you changed just this single entry to SD-Karte.

Line 125 (old .json file) says "Your SD card might be write locked." (SD-Karte is part of the German translation). That's why I have added -Karte in line 21 as well. I can't find any other strings with SD in this file.

Master Control Program

Thank you for the clarification. I guess, it should be vom MCP instead of von MCP

It might be a real good idea to split this big PR into multiple smaller ones

I have no idea how to do that.

eku commented 1 month ago

May I suggest shortening the translations if necessary, if they are longer, to maintain the arrangement of the text elements.

H0mebrewL0ver commented 1 month ago

I have made the first adjustments. I used the build as mentioned in https://github.com/V10lator/NUSspli/pull/331#issuecomment-2241075060.

eku commented 1 month ago

zu bekommen -> erhalten ?

H0mebrewL0ver commented 1 month ago

Some more adjustments

zu bekommen -> erhalten ?

This does not answer my initial question @eku

V10lator commented 1 month ago

it could still be a problem for other languages.

Each translator decides for himself what to translate and what not. NUSspli doesn't have a rule here but the translators should do whatever fits best to the language.

This menu option is displayed at the start of the app, but only experienced users would benefit from it.

This is true no matter how we call the option as the logs are for experienced users / debugging purposes only. ;)

111-127 (especially line 122 "Willst du wirklich [I guess something will be inserted here] von deinem Laufwerk löschen?")

You can always search the sourcecodes for the english strings to see where and how they are used. For line 111 this would be:

$ grep -r "Downloading" src/
src/downloader.c:                strcpy(toScreen, localise("Downloading"));
src/downloader.c:    debugPrintf("Downloading title... tID: %s, tVer: %s, name: %s, folder: %s", tid, titleVer, titleEntry->name, folderName);
src/menu/predownloadMenu.c:    debugPrintf("Downloading TMD...");
src/menu/predownloadMenu.c:                    "Downloading to NAND is dangerous,\n"

So let's look into src/downloader.c and search for that: https://github.com/V10lator/NUSspli/blob/master/src/downloader.c#L621-L624 What this does is indeed building a string with the localised text, then a space and then a variable (the file name in this case), which you could call using a placeholder. Finally it writes this created string to the screen.

Will do the same for the string at line 122 now, then leave the rest up to you:

$ grep -r "Do you really want to uninstall" src/
src/menu/insttitlebrowserMenu.c:        strcpy(toFrame, localise("Do you really want to uninstall"));

https://github.com/V10lator/NUSspli/blob/master/src/menu/insttitlebrowserMenu.c#L458-L473 Now we see this builds a larger string, using a lot more things... It creates something like this:

Do you really want to uninstall
[NAME OF THE TITLE OR TITLE ID AS FALLBACK]
from your [PLACEHOLDER] drive?

(A) Yes || (B) No

Using line 122, line 123, maybe line 47, line 124, line 184 and line 185 from https://github.com/V10lator/NUSspli/blob/master/data/locale/German.json

I guess, it should be vom MCP instead of von MCP

While being grammatically correct on first glance this somehow sounds unintuitive / weird to me. Will need to think some more about that I guess.

I have no idea how to do that.

You do that by creating new branches, then doing just some of the work in each branch, then doing PRs for each new branch you created (to the master branch). It's not strictly needed but makes reviewing so much simpler + allows us to already merge some things while still talking about others.

Could you please show the whole sentence? I don't know why zu bekommen is relevant.

You know how to do this now but one more time:

$ grep -r "from MCP" src/
src/installer.c:                sprintf(toScreen, "%s \"%s\" %s: %#010x", localise("Error getting info for"), path, localise("from MCP"), data.err);

We don't even need to open the file this time as we already see what#s going on, even if pretty crypted for a none-programmer. The "%s \"%s\" %s: %#010x" says write [PLACEHOLDER STRING] "[PLACEHOLDER STRING]" [PLACEHOLDER STRING]: [PLACEHOLDER HEXADECIMAL VALUE WITH 10 DIGITS, PREFIX WITH 0s IF NECESSARY]. After that it follows what to use as placeholders: localise("Error getting info for"), path, localise("from MCP"), data.err. So the final string this creates will look something like this: Error getting info for "/some/path" from MCP: [ERROR CODE IN HEX].

because Nintendo

I really don't think we have to follow Nintendos wording. I mean we're not affiliated with them and what other homebrew does this? Want to hear the opinion of the other translators on this through as this would be something they have to follow, too, if we decide to go that route.

H0mebrewL0ver commented 1 month ago

You can always search the sourcecodes for the english strings to see where and how they are used.

Thanks for the explanation. I'm not a programmer and only use the web version of GitHub. I'm only familiar with translation tools like Crowdin and Weblate. Doing something like this is completely new to me, hence all the questions :)

While being grammatically correct on first glance this somehow sounds unintuitive / weird to me. Will need to think some more about that I guess. Error getting info for "/some/path" from MCP: [ERROR CODE IN HEX]

I think it sounds weird to you because of the abbreviation (MCP) vom = von dem [Program(m)] The whole sentence could be Fehler bei der Informationsabfrage für "/some/path" vom MCP: [ERROR CODE IN HEX]

I really don't think we have to follow Nintendos wording.

The general consensus for translations is to use the wording of the source (in this case Wii U OS). There are two main goals: consistency and the fact that the user already knows the terms. This improves the user experience because the user is already used to this wording

Never heared that before and it really sounds weird to me.

I will use the word with E then

Handshake/Handschlag

Which version do you prefer?

You do that by creating new branches, then doing just some of the work in each branch, then doing PRs for each new branch you created (to the master branch). It's not strictly needed but makes reviewing so much simpler + allows us to already merge some things while still talking about others.

I will try. My plan is to create three PRs

I will close this PR :)