Zum Inhalt springen

Programm an andere Sprachen anpassen


Narf!

Empfohlene Beiträge

Hallo Leute,

mein Programm soll alle europäischen Sprachen und evtl. alle anderen beherrschen.

Das beudeutet, dass ich bei Programmstart die eingestellte Systemsprache abfragen muss und jenachdem die Menüs und MessageBoxen in dieser Sprache anzeigen muss.

Wie ändert man entsprechend die Texte?

Wie funktioniert das mit anderen Schriftzeichen (z. Bsp. griechisch, tschechisch, usw.)?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie ändert man entsprechend die Texte?

Wie funktioniert das mit anderen Schriftzeichen (z. Bsp. griechisch, tschechisch, usw.)?

Autsch :D;)

Wenn du noch sooo wenig Ahnung von der Softwarelokalisierung hast, dann wuerd ich besser die Finger davon lassen. Das ist ein sehr komplexes Thema bei dem viel bedacht werden muss.

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Autsch :D;)

Wenn du noch sooo wenig Ahnung von der Softwarelokalisierung hast, dann wuerd ich besser die Finger davon lassen. Das ist ein sehr komplexes Thema bei dem viel bedacht werden muss.

Goos

Es hilft alles nichts, ich werde mich der Herausforderung stellen müssen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es hilft alles nichts, ich werde mich der Herausforderung stellen müssen!

Dann erzaehl mal naeheres. Geht es nur um das eine Programm, oder solls auch eher ne Libary zum relativ einfachen Einsatz in anderer Software sein?

Willst du deine Texte dynamisch zur Laufzeit aendern, oder nur nach nem Neustart?

Wirst du auch bei allen Buttons und sonstigen benannten Controls die Schriftgroesse berechnen und das entsprechende Control in der Groesse anpassen?

Soll die dann auch auf entsprechenden Landessprachlichen Windows Systemen laufen, oder sollte man auch auf einem sagen wir mal englischen Windows chinesische Schrift anzeigen koennen?

usw....

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Programm soll beim Starten die Systemsprache abfragen und entsprechend sind dann im Programm schon das Menü und die Messageboxen so integriert, dass sie entsprechend der gesetzten Systemsprache den entsprechenden Text enthalten.

if(Systemsprache==Englisch)

MenuText==Englisch;

Vereinfacht dargestellt.

Es soll keine Sprachumstellung im Programm geben, sondern sich nach der Systemsprache richten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du keine DLL nutzen möchtest,, kannst oder willst kannst du es dir ganz einfach machen.

Erstelle für jede Sprache jeweils eine INI-Datei. Language_d.INI;Language_gb.ini, etc.etc.

Dann schaust du beim Programmstart nach, welche Sprache eingestellt ist, und nimmst die Einträge aus der INI-Datei.

Ein kleines Beispiel:



if Systemsprache=GB then begin

  pass.FilesprachShare='C:\language_gb.ini';

end;

SprachIni:=TIniFile.Create(Pass.FileSprachShare);

  with SprachIni do begin

    Caption                       := ReadString('PASSWORT','Fenster','_');

    //Labels

    LabelPassw.Caption            := ReadString('PASSWORT','Passworteing','_');

    LabelName.Caption             := ReadString('PASSWORT','Name','_');

    LabelPasswort.Caption         := ReadString('PASSWORT','Passwort','_');

    LabelLevel.Caption            := ReadString('PASSWORT','Level','_');

    Labelpwaendern.caption        := ReadString('PASSWORT','PwAendern','-');

    labelnote1.caption            := ReadString('PASSWORT','Note1','-');

    labelnote2.caption            := ReadString('PASSWORT','Note2','-');

    labelselectlevel.caption      := ReadString('PASSWORT','Selectlevel','-');

    labelnewpw.caption            := ReadString('PASSWORT','Neues_Passwort','-');

    labelnewpwwiederholung.caption:= ReadString('PASSWORT','Passwort_Wiederholung','-');

    //Buttons

    BitBtnAnmelden.Caption        := ReadString('PASSWORT','Anmelden','_');

    BitBtnAbmelden.Caption        := ReadString('PASSWORT','Abmelden','_');

    BitBtnEnde.Caption            := ReadString('PASSWORT','Ende','_');

    BitBtnok.caption              := ReadString('PASSWORT','BtnOK','_');

    BitBtnabort.caption           := ReadString('PASSWORT','BtnAbort','_');

    BitBtnyes.caption             := ReadString('PASSWORT','BtnYes','_');

    Free;

  end;

Code ist weder geprüft noch funzt es so.soll dir das ganze nur vereinfachen.

MVG

need-some-blood

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Jahre später...

Und jetzt ist es soweit.

Ich soll mein Programm griechisch "sprechen" lassen.

Zur Zeit habe ich deutsch und englisch, was ja kein Problem ist.

Dazu habe ich eine String-Table, in der ich alle Texte drin habe und für die englische Anzeige einfach zu der ID 200 dazuzähle.


CString Text;


Text.LoadString(ID_Text_Deutsch+200); //Text ist englisch

Alle Texte wurden ins Griechische übersetzt. Jetzt wollte ich mir die Sache einfach machen und aus der Excel-Tabelle die griechischen Texte rauskopieren und in die String-Table einfügen.

Tja.

Nur kommen da statt der Schriftzeichen nur "?????". Wenn ich den selben String in den Editor kopiere, klappt es wunderbar und in Excel offensichtlich auch.

Ich habe in der Systemsteuerung bei Sprachen/Eingabeschema griechisch hinzugefügt. Ein extra Sprachpaket für das Visual Studio war nicht dabei.

Wo kann ich denn meinem Projekt beibringen, dass er mir diese Zeichen korrekt darstellt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am besten haettest gleich ein Unicode Projekt gemacht ;)

Ansonsten kannst du bei deinem Windows noch unter Einstellungen->"Regions und Sprachoptionen"->Erweitert->"Sprache fuer Programme, die Unicode nicht unterstuetzen" griechisch einstellen.

Falls dir dann nichts rechtes angezeigt wird, ist deine Uebersetzung wohl nicht passend :)

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also jezt mal ganz ehrlich... Ist dir die Mühe nicht etwas zu groß?

Wenn du das für jede Sprache machen musst die irgendwann neu dazukommt?!

Nimm dir mal 3-4 Stunden Zeit und erzeuge eine Resource Dll. In dieser brauchst du dann nur den String Table anpassen und kannst auch bequem die Dialoge so umgestalten das es passt.

Die wird am Anfang geladen und gut ist. So verstehst du dein Programm auch leichter und das hinzufügen von einer neuen Sprache (oder nur neuen Strings ) ist super simpel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...