Seite 1 von 2

Sprachumstellung

Verfasst: 15.07.2005 12:22
von HoDam
Hallo,

ich möchte ein Programm in Abhängigkeit der der Spracheinstellung laufen lassen.

Wenn deutsch eingestellt ist auf Deutsch, sonst Englisch.
Wie kann ich die Spracheinstellung abfragen?.

Wenn die Spracheinstellung definiert ist, wie kann ich jetzt dem Programm sagen das er jetzt den entsprechenden String benutzen soll.
Die Strings (Variablen) für jede Sprache sind definiert.

Beispiel:

Text_DE01$= Hallo
Text_DE02$ = Tschüss
Text_EN01$= Hello
Text_En02$= Good bye

Es kommt ein Willkommensfenster

MessageRequester("Info:",Text01$,#PB_MessageRequester_Ok)

Wie schaffe ich jetzt, die Zuordnung der Variable Text01$ in Abhängigekeit der Spracheinstellung , also Text_DE01$ bzw.r Text_EN01$

Gibt es eine Möglichkeit?

In Excel würde ich es über einen Verweis machen. Gibt es sowas auch in PB

Ich hoffe, das ihr versteht, was ich möchte

Dankeschön

Verfasst: 15.07.2005 12:38
von pogi02
Hallo


Das ist zimlich einfach mach einfach 2 TXT-Dateien in die eine machst du alle Englischen und in die andere alle Deutschen Sätze.

Am Anfang prüfst du welche Sprache der Benutzer verwendet und ladest dann die jeweilige Srachdatei z.B.:

If sprache="deutsch"
Openfile (0, "deutsch.txt")
Else
Openfile (0, "englisch.txt")
EndIf

Danach muss du das programm halt immer die jeweiligen variblen auslesen lassen.


text1$= ReadString()
text2$= ReadString()

Natürlich kannst du das auch in einer schleife machen.

Dann ist jede variable entweder Deutsch oder Englisch

MessageRequester("Info:",Text1$,#PB_MessageRequester_Ok)
MessageRequester("Info:",Text2$,#PB_MessageRequester_Ok)

Verfasst: 15.07.2005 12:41
von bobobo
zu 1

Code: Alles auswählen

For i=1 To 12
buff_loc$=Space(256)
buff_user$=Space(256)
GetLocaleInfo_( #LOCALE_SYSTEM_DEFAULT ,i,buff_loc$,256)
GetLocaleInfo_( #LOCALE_USER_DEFAULT ,i,buff_user$,256)
Debug buff_loc$+"   - "+buff_user$
Next i
zu 2

Die Variablen im Programm haben immer denselben (!) Namen.
Nur am ProgrammAnfang checkst Du auf die jeweilige Sprache und wählst danach die entsprechende Sprachenausgestaltung aus.
Die Sprachenausgestaltung hast Du in externen Datei(en) liegen nach Schema

Code: Alles auswählen

[deutsch]
Var1.s="ich bin deutsch"
Var2.s="die Eiche"
..
..
[english]
Var1.s="i'm so british"
Var2.s=2the oak"
..
..

Verfasst: 15.07.2005 13:03
von HoDam
Erst einmal ein Dankeschön.

Ich möchte nicht unbedingt externe Text-Dateien haben.

Kann ich solche Bereiche auch direkt im Programm integrieren.

Sind jeweils nur ca. 30 Strings pro Sprache.

Soll nur auf Windows (XP, W2k) laufen.

Verfasst: 15.07.2005 13:04
von DarkDragon
Warum Dateien? Er kann ja auch nen 2Dimensionalen Array nehmen:

Code: Alles auswählen

Dim Language.s(1, 1)
Language(0, 0) = "Hallo"
Language(0, 1) = "Tschüss"

Language(1, 0) = "Hello"
Language(1, 1) = "Bye"

Lang.l = 0                     ;Deutsch = 0; Englisch = 1
Debug Language(Lang, 0)
Debug Language(Lang, 1)

Verfasst: 15.07.2005 13:09
von HoDam
Jo, sowas was DarkDragon geschrieben hat, stell ich mir vor

Erst mal danke

lasse von mir hören

Verfasst: 15.07.2005 13:12
von Batze
Oder das hier?

Code: Alles auswählen

DataSection
English:
Data.s Malen.s, Bauen.s, Rennen.s
Deutsch:
Data.s draw.s, build.s, race.s
EndDataSection
Restore English
;restore Deutsch

Read Text1.s
Read Text2.s
MessageRequester("Info:",Text1,#PB_MessageRequester_Ok)
MessageRequester("Info:",Text2,#PB_MessageRequester_Ok)
Ist ohne Datei! :allright:

Verfasst: 15.07.2005 13:29
von HoDam
Ein Frage zur Sprachenerkennung.

Warum Loc und User abfragen.
Ist denn nicht immer loc=user?

Welche von den Strings ist denn am sinnvollsten

0407
Deutsch(Deutschland)
Deutsch
49
Deutschland
DEU

Danke

Verfasst: 15.07.2005 13:40
von HoDam
So habe mich für die Länderkennung 49 entschieden.
und den user ausgelesen.


Noch eine allgemeine Frage zu Arrays.

Bleiben die im Speicher erhalten, oder kann man das Array wieder löschen nachdem die Zuordnung zu den Stringvariablen erfolgt ist?.

Verfasst: 15.07.2005 13:42
von benpicco
Also ich kenne keinen Befehl, wie man sie löschen könnte, warum auch (hier brauchen sie ja nicht soo viel speicher)
Wenn du das Programm beendest sind sie wieder weg ^^.
Außerdem stehen die Variablen ja im array, wen du den löschtest, wären die ja mit weg.