AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Übersetzungen mit XML -> So?

Ein Thema von torud · begonnen am 12. Jul 2011 · letzter Beitrag vom 12. Jul 2011
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 07:05
Hallo,

da ich gerade ein Programm schreibe, welches in der Datenausgabe mehrsprachig arbeiten muss, würde ich gern wissen, ob das unten stehende Modell so trgbar ist oder wie man es besser machen könnte.

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<translations>
 <item>
  <Item>goal_diff_long</Item>
  <German>Tordifferenz</German>
  <English>Goal difference</English>
  <Polish>bilans bramek</Polish>
 </item>
 <item>
  <Item>coach</Item>
  <German>Trainer</German>
  <English>Coach</English>
  <Polish>trener</Polish>
 </item>
 <item>
  <Item>referee</Item>
  <German>Schiedsrichter</German>
  <English>Referee</English>
  <Polish>sedzia</Polish>
 </item>
 <item>
 <item>
  <Item>missed_next_match</Item>
  <German>Nächstes Spiel gesperrt</German>
  <English>Missed next match</English>
  <Polish>pauzuje w nastepnym meczu</Polish>
 </item>
</translations>
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.180 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 07:40
Möglich ist alles (bis auf das doppelte <item>, da unten)

Code:
<item name="goal_diff_long">
  <german>Tordifferenz</german>
  <english>Goal difference</english>
  <polish>bilans bramek</polish>
</item>
via XPath bekommt man dann über "item[name=goal_diff_long]" alle Sprachen
und mit "item[name=goal_diff_long]\German" geziehlt an eine Übersetzung.

oder
Code:
<goal_diff_long>
  <german>Tordifferenz</german>
  <english>Goal difference</english>
  <polish>bilans bramek</polish>
</goal_diff_long>

Ich würde mich aber konsequent für eine Schreibweise entscheiden ... entweder alles Großgeschrieben oder kleingeschrieben.
<ITEM><GERMAN> (OK, das sieht blöd aus)
<Item><German>
<item><german>
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (12. Jul 2011 um 07:43 Uhr)
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#3

AW: Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 08:14
Schade, das das Schema geändert werden muss, wenn eine Sprache dazukommt.

So ginge es auch:
XML-Code:
<item name="goal_diff_long">
  <translations>
    <translation language="german">Tordifferenz</translation>
    <translation language="english">Goal difference</translation>
    <translation language="polish">bilans bramek</translation>
  <translations>
</item>
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 12:36
Ich persönlich würde es in einzlene Dateien aufsplitten, d.h. je Sprache eine Datei. Dann würde eine Datei so aussehen:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<translations language="german">
    <item name="goal_diff_long">Tordifferenz</item>
    <item name="coach">Trainer</item>
    <item name="referee">Schiedsrichter</item>
</translations>
So ließe sich auch sehr leicht eine Weiche im Programm einbauen, ohne mit XPath arbeiten zu müssen etc. Und wenn man eine Sprache nachliefern will, bedarf es nur einer weiteren Datei im "language"-Ordner, keinerlei Änderungen bestehender Dateien.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 13:12
Ich persönlich würde es in einzlene Dateien aufsplitten, d.h. je Sprache eine Datei. Dann würde eine Datei so aussehen:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<translations language="german">
    <item name="goal_diff_long">Tordifferenz</item>
    <item name="coach">Trainer</item>
    <item name="referee">Schiedsrichter</item>
</translations>
So ließe sich auch sehr leicht eine Weiche im Programm einbauen, ohne mit XPath arbeiten zu müssen etc. Und wenn man eine Sprache nachliefern will, bedarf es nur einer weiteren Datei im "language"-Ordner, keinerlei Änderungen bestehender Dateien.
Mit dem Nachteil, dass wenn mal neue Elemente hinzukommen, die Übersetzt werden müssen, X Dateien bearbeitet werden müssen...
Ich persönlich würde (und habe in der Vergangenheit) den Vorschlag nach Art von FredlFesl umsetzen.

Du kannst natürlich auch ein kleines Tool schreiben, welche das erstellen von Übersetzungs-XML-Dateien vereinfacht. Dann wäre es meiner Meinung nach auch möglich der Vorschlag von s.h.a.r.k umzusetzen.

Leider darf ich meine Klassen und Programme zu diesem Thema nicht freigeben (closed source), aber es sollte auch nicht schwer sein sowas selber zu basteln.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Übersetzungen mit XML -> So?

  Alt 12. Jul 2011, 13:17
Du kannst natürlich auch ein kleines Tool schreiben, welche das erstellen von Übersetzungs-XML-Dateien vereinfacht. Dann wäre es meiner Meinung nach auch möglich der Vorschlag von s.h.a.r.k umzusetzen.
Das mit dem Tool ist imho ein absolutes Muss, da man sonst ja vor allem bei großen Dateien ewige Zeiten rumfrickeln muss, wenn Änderungen anstehen. Hab das einfach mal vorausgesetzt, dass sowas da ist bzw. implementiert wird
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf