www.mikrocontroller.net

Forum: PC-Programmierung Fragen zu: Projekt lokalisieren (übersetzen)


Autor: lixx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich bastle an nem OpenSource Projekt und möchte es lokalisieren.

Frage 1:
Ich schreib die Texte in einem für mich verständlichen English. Ich 
hoffe, dass irgendwann mal ein Muttersprachler das korrigiert. Läßt man 
dazu alle Texte im Quellcode in "Programmierer-Englisch" und legt ne 
eigene Resource in korrektem an ?

Frage 2:
Ich habe viele Wörter, die oft vorkommen wie: "Name"
Nimmt man da dann üblicherweise Platzhalter ? Sonst steht das ja zig mal 
in der Datei, die der Übersetzter bearbeiten muss. Und ich will dem die 
Arbeit natürlich erleichtern.

Euer Lixx mit xx

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Übersetzter wird dir normalerweise sowieso etwas husten, wenn du 
ihm die Texte quer über 25 Source Code Files verstreust.

Die Texte werden alle an einer Stelle gesammelt. Und nur diese eine 
Stelle bekommt der Übersetzter zur Bearbeitung. Zusammen mit Hinweisen, 
an welchen Teilen des Textes er sich nicht vergreifen darf, bzw. wo du 
im Programm in die Texte noch Ausgaben vonm Programm aus einsetzen wirst 
(also zb. Format Strings in C oder C++)

Autor: lixx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu Frage 2 nochmals:
ich meinte, ob man bei:

Label1.setText("Name");
[..]
Table2.setCaption("Name");
[..]
Field3.setHint("Name");

.. anstatt dem "Name" nicht einen Platzhalter wie _NAME nehmen sollte.
Also für die Strings, die mehr als ein mal vorkommen.

Wie machst Du das ?

Lixx

Autor: Michael Rathmair (dj_motionx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !
Ich mach so lokalisierungen immer mit GNU Gettext. Hat immer noch gut 
funktioniert und ist in Windors sowie natürlich auch für Linux 
verfübgar.

http://www.gnu.org/software/gettext/


L.g. Michael

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lixx schrieb:
> zu Frage 2 nochmals:
> ich meinte, ob man bei:
>
> Label1.setText("Name");
> [..]
> Table2.setCaption("Name");
> [..]
> Field3.setHint("Name");
>
> .. anstatt dem "Name" nicht einen Platzhalter wie _NAME nehmen sollte.
> Also für die Strings, die mehr als ein mal vorkommen.
>
> Wie machst Du das ?

Für grundsätzliches alles werden Platzhalter benutzt.
Es spielt keine Rolle, ob der Text nur einmal vorkommt oder mehrmals.

Autor: Markus V. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Lixx,

ein möglicher Ansatz ist der, dass für jeden zu lokalisierenden Text 
eine eigene Ressource verwendet wird. In Deinem Fall gäbe es also zwei 
verschiedene Ressourcen-Schlüssel die jeweils den Wert "Name" hätten. 
Dieser Ansatz verfolgt das Ziel, keine Abhängigkeiten zwischen einzelnen 
Dialogteilen zu haben. Stelle Dir vor, jemand kommt auf die Idee, "Name" 
in "Bezeichnung" zu ändern, weil das in einem Dialog einfach besser ist. 
In einem anderen Dialog wird die gleiche Ressource aber nochmals 
verwendet, hier ist "Bezeichnug" aber völliger Blödsinn...

Gruß
Markus

Autor: lixx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus
>.. hier ist "Bezeichnug" aber völliger Blödsinn ...
stimmt. Du hast Recht. So hab ich das noch gar nicht gesehen. Dann wäre 
meine Frage 1 also beantwortet: Ich nehme lieber 2x einen gleichen Text 
auf, da er an verschiedenen Stellen doch unterschiedliche Bedeutung 
haben könnte. ggf füge ich für den Übersetzen 2 unterschiedlich 
Kommentare hinzu.

@kbuchegg
>Für grundsätzliches alles werden Platzhalter benutzt.
natürlich nicht.

@Michael.
Ja - ich benutze auch GNU GetText. Vor allem, weil ich's auf launchpad 
veröffentliche möchte und dort wird mit *.po gearbeitet.

Bisher hatte ich mit XCode bzw Eclipse->ExternalizeStrings gearbeitet. 
Ich habe die Texte dann  mit Kommentaren aufbereitet, in ein Office 
Dokument kopiert und mir das vom Lektoriat übersetzen lassen. (Englisch, 
Spanisch, Französisch, Italienisch). Die Texte waren aber immer recht 
kurz (max. 3 Seiten pro Sprache), so dass ich mir immer die Arbeit 
gemacht habe, und habe das korrigierte Englisch im Quelltext verwendet 
und MEIN Englisch rausgeschmissen.

Ich trau mir zwar Englisch so gut zu, dass andere das verstehen und in 
Ihre Muttersprache übersetzen können, aber ich habe auch so Wörter wie 
"holidays" benutzt und der englische Übersetzten hat das gegen 
"vacations" ausgetauscht, weil die doch unterschiedliche Bedeutungen 
haben.

Aber nochmals Frage 2:

Ich habe "holidays" in meinem Quelltext stehen.

Der Deutsche Übersetzer sagt
"holidays" -> "Urlaub"
Der englische Übersetzer sagt:
"holidays" -> "vacations".


macht Ihr dann:
DE:
"holidays" -> "Urlaub"
EN + default:
"holidays" -> "vacations"


oder ändert Ihr nachträglich den Quelltext:
DE:
"vacations" -> "Urlaub"
EN + default:
"vacations" -> "vacations"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.