Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.)?

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

  • Autor
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!

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

  • Autor

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.

Üblicherweise lagert man alle sprachabhängigen Ressourcen in DLLs aus. Beim Programmstart wird dann in Abhängigkeit von der Sprache eine dieser DLLs geladen und die darin enthaltenen Ressourcen verwendet.

Bei Verwendung der MFC geht das z.B. mit AfxSetResourceHandle.

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

UPS. Hast recht. War geistig noch im Delphi-Forum.

MVG

need-some-blood

  • 2 Jahre später...
  • Autor

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?

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

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.

  • Autor

Da das ganze neu für mich ist, kannst Du mir sagen, was ich da zu tun habe?

Das geht schon los mit der Erstellung einer DLL, dann die Einbindung in mein Programm, was da zu beachten ist uvm.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.