Author Topic: German translation  (Read 7984 times)

Blaubaer

  • Guest
German translation
« on: October 11, 2005, 10:45:03 pm »
Ok, im halfway through the strings.

I didnt think it would be that difficult to translate some (1300) texts and I want to finish this ;)

Strings for the menus that have a & in it should have the & at the same Position as in a common
german application, right?
So that "&File" becommes "&Datei".
So no '&' followed by a character should be double, is this right? (what have i got my self into ;) )

Same for strings like "Goto file...\tAlt-G". yikes!

Not all strings are encapsulatet in _() macros yet i guess....

The translation can be found here:
http://hidi.ath.cx/de_DE.po
http://hidi.ath.cx/de_DE.mo
(warning: slow upload)

Im using this patch to app.cpp/InitLocale() (at the top) to load the translation:

  m_locale.Init(wxLANGUAGE_GERMAN);
  wxLocale::AddCatalogLookupPathPrefix("/home/frodo/src/codeblocks/src/intl");
  m_locale.AddCatalog(wxT("de_DE"));
  m_locale.AddCatalog(wxT("de_DE.mo"));
  return;



The translation should be good german of course but a programmer should be able to read the output.
e.g: "wxSmith: Culdn't generate widget inside factory" should NOT be translated to
"wxSmith: Kann DingsBums nicht in Fabrik erzeugen"

Maybe some german speaking users can give me some hints of what they expect in the german translation
of these strings:

watch
breakpoint
target
wildcard (vorschlag: joker)
Handler
Top list
widget
shaped
sash
manifest
reentrant

regards,

Stefan

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: German translation
« Reply #1 on: October 11, 2005, 11:12:11 pm »
Quote
Not all strings are encapsulatet in _() macros yet i guess....
All translatable strings are wrapped already (we had to, for unicode compatibility).

Thanks for this contribution :)
Be patient!
This bug will be fixed soon...

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: German translation
« Reply #2 on: October 11, 2005, 11:29:32 pm »
watch
breakpoint
target
wildcard
Handler
manifest
reentrant
I think those are best left English, as those are customary technical terms. Trying to translate them at any cost gets awkward quite quickly.
For example, "Haltepunkt" which is the usual translation for breakpoint (in VC and in Dev-CPP) sounds quite stupid compared to "breakpoint", and if you told me about a "Haltepunkt", I would not know what you are talking about. Renaming "Debug" to "Fehlersuche" is very confusing, too.

"Widget" could be translated "Benutzerelement" or just "Element".
"Sash" could be called "geteilte Ansicht".
"Shaped" probably needs to be paraphrased somehow, too. In what context does it appear?
"Target", too, is best left as it is.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Blaubaer

  • Guest
Re: German translation
« Reply #3 on: October 12, 2005, 08:59:24 pm »
Thanks for the answers, i will do my best.

I just did a update of the Katalog and poedit puts out warnings like this:

---
.../contrib/wxSmith/wxsmith.cpp:68: warnung: Empty msgid. It is reserved by GNU gettext:
gettext("") return the header entry with
meta information, not the empty string.
---

I dont know what the wxWidgets implementation of _("") does, just wanted to let you know...
maybe its better to put them into wxT("")


For the strings that i thought they were not in a _() macro: they are in .xrc files.
For example Edit->Bookmarks is in main_menu.xrc:
<label>&amp;Bookmarks</label>
and so poedit cant put it in the catalog :(

if i put _("&Bookmarks") in a fake headerfile it gets translated just fine. I just hope this
is not the way to do it and there is another way.


Another thing (not of concern right now, but maybe something to think about for the future):
How do Plugins get handled? Right now im putting everything into one Catalog that
is inside the Source tree, but external Plugins cannot be handled that way.
(Plugins shipped with Code::Blocks shouldnt either i think, but i would give that a low priority)

Thumbs up! CB is getting better and better with every cvs-update i do!

Stefan
(down to 467 untranslated strings, i wonder what waits for me in the xrc files :) )

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: German translation
« Reply #4 on: October 12, 2005, 09:32:01 pm »
I dont know what the wxWidgets implementation of _("") does, just wanted to let you know...
maybe its better to put them into wxT("")
http://www.wxwidgets.org/faqcmn.htm#wxtmacro

Quote from: wxchar.h
#ifndef _T
    #if !wxUSE_UNICODE
        #define _T(x) x
    #else /* Unicode */
        #define _T(x) L ## x
    #endif /* ASCII/Unicode */
#endif /* !defined(_T) */

#define wxT(x)       _T(x)

Quote from: intl.h
#ifndef WXINTL_NO_GETTEXT_MACRO
    #define _(s)                     wxGetTranslation(_T(s))
    #define wxPLURAL(sing, plur, n)  wxGetTranslation(_T(sing), _T(plur), n)
#endif
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Blaubaer

  • Guest
Re: German translation
« Reply #5 on: October 12, 2005, 10:39:24 pm »
Quote from: intl.h
#ifndef WXINTL_NO_GETTEXT_MACRO
    #define _(s)                     wxGetTranslation(_T(s))
    #define wxPLURAL(sing, plur, n)  wxGetTranslation(_T(sing), _T(plur), n)
#endif

Yes.

What does wxGetTranslation(_T("")) put out?

The warning means that you could get a "This is gettext V3.5.18, this stŕing is empty"
instead of what you would expect, an empty string.


Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: German translation
« Reply #6 on: October 12, 2005, 10:59:17 pm »
It simply calls wxLocale::GetString(), or in case there is no locale, returns the original string.

wxLocale::GetString() returns the original string if it cannot find a translation.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."