Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major German translation rework (01/12/2024) #7612

Merged
merged 3 commits into from
Dec 19, 2024

Conversation

Wuzzy2
Copy link
Contributor

@Wuzzy2 Wuzzy2 commented Dec 1, 2024

This PR is a major translation work of the German translation. I felt this was neccessary because of many mistakes and just missing translations.

Mistakes in current German translation (that this PR fixes, hopefully) include:

  • Outright incorrect/misleading translations
  • Missing words
  • Text does not fit into widgets
  • Typos

After my first failed attempt to update the German translation (#7602), I’ve had another go under master.

I used lupdate and some manual merging of my previous work to get this done.

This was my lupdate line:

lupdate -locations none -I include plugins plugins/* plugins/*/* src/* src/*/* -ts data/locale/de.ts

This is loosely based on what I found in CMake files and I'm not sure if this line captures every string in LMMS, but it seems close. If I missed an important directory, please let me know. The line looks a bit flawed IMO. I would love to know the correct lupdate line. Unfortunately, I'm not very good in reading CMake yet.

(I intentionally removed the -no-obsolete argument because it deletes old translations. It is generally a bad idea to delete obsolete translations by default because obsolete translations can still be useful for translators to pick up similar translators. Especially if modules get moved and renamed around all the time. Qt Linguist is quite powerful in that regard. The only case where I recommend this argument is when a translation is complete or near-complete. It's only text, the few bytes you save aren't worth it IMO.)

Features:

  • New translations
  • More consistent terminology
  • Fixed various incorrect / misleading word translations
  • Fixed grammar and typos
  • Shortened translations that were too big in some UIs
  • Preserved existing translations in the TS file (as "obsolete") to not destroy previous work again

The translation is not complete, but it's about 3000/3200. There are many very difficult strings which seem to require expert knowledge. It would be nice if strings had context and/or translator comments (a core feature of the Qt translation system).

This translation was extensively tested at commit 3562bbe. Feel free to do the same.

@kawogi
Copy link

kawogi commented Dec 16, 2024

I've been asked to try a (non-official) review to get this merged more easily. While I cannot check the technical side of this XML, I could see whether the language part is ok. But given that the overall structure changes that much. My diff tools are of no use.

From skimming over the entries I only found some minor nits, such as:

  • "Pad hinzufügen" should be "Pfad hinzufügen" (typo)
  • the quotation marks shouldn't be »« (French) but „“ or "" in German
  • some multi-language words lack proper hyphenation
  • "Move &down" → "Nach &unten verschieben" do translations have to preserve the hotkey? Here it changes from d to u.

If you're just interested in a general feedback I'd say "looks benign and good". Also IMO it was well-chosen what terms shall not be translated and technical terms were translated with the subject area in mind.

If I shall help with a more thorough review I need some way to focus the actual differences this patch performs.

Hope this helps a little.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 17, 2024

Thanks for the review! Yes, this diff is large, it's probably easier to review if you just open the file in Qt Linguist because my changes went over the entire file anyway.

I would strongly recommend you compile the application to see the strings in action to catch issues like when a text is too large for a button or something like that. I did my own tests already btw.

Comments:

  • "Pad hinzufügen": fixed
  • Quotation marks. Wrong. In German, both »« and „“ are equally valid, it's a matter of style choice what you pick. "" is technically wrong tho. The translation was using the »« style perdominantely before, so I used that one. Also, French use is actually like «» IIRC. See https://en.wikipedia.org/wiki/Guillemet
  • Hyphenation. You need to point to the specific strings here. When to hyphenate and when to not do that is a little bit fuzzy and depends on a case-to-base basis on roughly how common the "foreign language word" is already used. For example, we usually write "Computerraum" instead of "Computer-Raum" since it's a common word. Generally, hyphenation makes sense when the loanword is still new or the word is harder to read without the hyphen. "Computer Raum" is completely wrong tho, if you found anything like that, please list the offending strings.
  • The &: Yes. The hotkey may be changed in locales, that's actually a core Qt feature because Qt is awesome. :-)

As for the difficult technical terms, you're correct. I tried my best to research beyond the dictionary and only picked a translation when I was sufficiently sure it was the correct translation.

@kawogi
Copy link

kawogi commented Dec 17, 2024

TIL »« are allowed in German :)

Hyphenation. You need to point to the specific strings here.

Will do. Afaik you can omit the hyphenation if both words are German or eingedeutscht. That's why I'd chose "Computerraum" as well.

I would strongly recommend you compile the application to see the strings in action to catch issues like when a text is too large for a button or something like that. I did my own tests already btw.

I don't have a lot of spare time and I don't even know the application :) I've been asked for a second opinion on the translation and I want to make sure this massive contribution can get merged soon.

I'm currently creating my own diff of the two documents to maybe assemble a complete list of errata or just green-light everything as "way better than before".

@kawogi
Copy link

kawogi commented Dec 17, 2024

BTW are <translatorcomment> supposed to be written in the target language?

@kawogi
Copy link

kawogi commented Dec 17, 2024

I like that you use proper punctuation (such as instead of - and × instead of x).

Some corrections and suggestions (most of them are super nit-picky - don't feel pressed to address them all):

  • %1 Bars I think the correct term would be %1 Takte
  • 16 Bit Integer has two deviating translations 16-Bit-Ganzzahlen and 16 Bit Ganzzahl (which might be ok in their respective context but looks suspicious) (same for other integer translations)
  • KBit/s should be kbit/s (was already wrong in English)
  • 75% (and all other percentages) should have a non-breaking space as separator
  • Quit has been translated to Beenden and Verlassen in different contexts
  • Carla ist ein funktionsbeladener Audio-Plugin-Host reads a little force-translated to me. Maybe voll ausgestatteter, voll funktionsfähiger, vollständiger sounds better?
  • 12.5% Tastgrad should be 12,5 % Tastgrad
  • 2x Tiefpass2× Tiefpass (only one of two occurrences)
  • 303-artiger 3-Pol-Filter mit 24dB/Oktave lacks a space before the unit 303-artiger 3-Pol-Filter mit 24 dB/Oktave
  • generally: I think oct is an accepted unit and might shorten several occurrences of Oktave
  • Ein höherer Spannungswert erzeugt vielleicht eine glattere Kurve aber schießt teilweise über. the correct term is "überschwingen". Suggestion Ein höherer Spannungswert erzeugt vielleicht eine glattere Kurve aber neigt zum Überschwingen.
  • Spektrumsanalysator should be Spektrumanalysator
  • Ein Multitap-Echo-Verzögerungs-Plugin I think Ein Multitap-Echo-Plugin reads better and is still correct
  • Ein Stereofeldvisualsator. lacks an iEin Stereofeldvisualisator.. I think Eine Stereofeld-Visualisierung might be easier to read. (otherwise I think Visualisator might be Visualisierer in German)
  • (side note: Mischungshüllkurvenanschwellzeit holy! What a reminder to never chose German for an UI :D )
  • Aktive Keymap: could be Aktive Tastenbelegung: or Aktive Tastenzuordnung: without sounding to weird
  • Nach dem Stopp zurück zum Anfang gehen could be Nach dem Stopp zurück zum Anfang springen to emphasize a transition-less jump
  • Amount Multiplicator has several translations (maybe this is ok for their respective context, though): Intensitätsfaktor, Stärkenmultiplikator, Stärkenfaktor
  • Anti-AliasingAntialiasing (no hyphenation required)
  • I still think that »« looks a little alien, but that's just an opinion ;)
  • BASE has been (maybe inconnsistently) translated to GRUN, GRUND, BASI and BASIS
  • Edit tangents mode (Shift+T) is Tangenten-Bearbeiten-Modus (Umschalt+T) but I think Tangenten-Modus bearbeiten (Umschalt+T) might me a better fit.
  • I think I wouldn't translate the abbreviation "Vol" to "Lau". I'd rather expect to keep it as "Vol" (or maybe "Ltst." or "Ltst." looks ugly as well).

I'm super sorry, but I cannot invest more time :(

My overall feedback: this is an extremely well-written translation and a huge amount of work. The author obviously has deeper domain knowledge and cares a lot for proper German localization (not just translation and grammar). Even without addressing the above points this PR will greatly improve over the status quo, mainly by adding thousands of missing translations.

(for context: I'm a German software developer who worked on an online DAW for several years)

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 18, 2024

Thank you! My domain knowledge is not actually deep, not an audio expert here. I just looked on the Internet to try to de-mystify some technical terms. I think the remaining strings I could not translate require some serious expert knowledge.

I updated this PR again and adressed most of the things except when I disagree.

  • KBit/s vs kBit/s: You're right, but you should post an issue about it since it's a source string issue
  • Keymap: I picked "Keymap" because this refers to the keys of a musical keyboard. I think it means when you change the notes that each "key" plays, it's used by the microtuner. This seems like a very specific technical meaning so I used that one. Also, some widgets require a short text, "Tastenbelegung" just won't fit
  • "Tangenten-Modus bearbeiten" ... is wrong. I'm not editing the tangent mode. I'm editing the tangents of (IIRC) Bezier curves. This string appears in the automation editor

@kawogi
Copy link

kawogi commented Dec 18, 2024

Thank you! My domain knowledge is not actually deep, not an audio expert here. I just looked on the Internet to try to de-mystify some technical terms. I think the remaining strings I could not translate require some serious expert knowledge.

Most of the technical terms looked correct to me or at least good enough to not cause confusion.

Keymap: I picked "Keymap" because this refers to the keys of a musical keyboard. I think it means when you change the notes that each "key" plays, it's used by the microtuner. This seems like a very specific technical meaning so I used that one. Also, some widgets require a short text, "Tastenbelegung" just won't fit

Ah, I didn't know the context. I agree.

"Tangenten-Modus bearbeiten" ... is wrong. I'm not editing the tangent mode. I'm editing the tangents of (IIRC) Bezier curves. This string appears in the automation editor

Looks like both languages would benefit from an associativity operator then :D

Copy link
Contributor

@sakertooth sakertooth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (I know no German). Thanks @Wuzzy2 and @kawogi 👍

@sakertooth
Copy link
Contributor

Let me know if you both are okay with merge or if it should wait a bit.

@kawogi
Copy link

kawogi commented Dec 18, 2024

All good from my side.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 19, 2024

Yes, this is ready for merge.

@sakertooth sakertooth merged commit 088a2cb into LMMS:master Dec 19, 2024
1 check passed
sakertooth added a commit that referenced this pull request Dec 20, 2024
Wuzzy2 added a commit to Wuzzy2/lmms that referenced this pull request Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants