Sprachumstellung

Anfängerfragen zum Programmieren mit PureBasic.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Sprachumstellung

Beitrag 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
pogi02
Beiträge: 131
Registriert: 30.10.2004 00:52
Wohnort: Österreich
Kontaktdaten:

Beitrag 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)
MfG pogi02

- www.apware.net
Aktuelles Projekt:
-
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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"
..
..
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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.
Zuletzt geändert von HoDam am 15.07.2005 13:05, insgesamt 1-mal geändert.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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)
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag von HoDam »

Jo, sowas was DarkDragon geschrieben hat, stell ich mir vor

Erst mal danke

lasse von mir hören
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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?.
Zuletzt geändert von HoDam am 15.07.2005 13:55, insgesamt 1-mal geändert.
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag 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.
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Antworten