Mehrsprachiges Programm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Jozu

Betreff: Mehrsprachiges Programm

BeitragSa, Apr 16, 2011 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich mehrere Sprachen(Deutsch,Englisch) am besten in einem Programm umsetzen)

BladeRunner

Moderator

BeitragSa, Apr 16, 2011 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Alle Texte aus externen files laden und je nach gewählter Sprache das passende Sprachfile nutzen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Jozu

BeitragSa, Apr 16, 2011 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke Very Happy

Eingeproggt

BeitragSa, Apr 16, 2011 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Darf ich n bissi Eigenwerbung machen?
Ein Tool von mir, dass die gröbste Arbeit macht:
http://favouritesoft.bplaced.n...angualizer

Ich hab mich damals sehr bemüht und mir hat es gute Dienste erwiesen. Aber ich bin erst vor wenigen Monaten drauf gekommen dass es nicht 100% zur Übersetzung taugt, da die Grammatik in fremden Sprachen anders ist. Also sprich sowas:

Code: [AUSKLAPPEN]
"Punkte von "+player$


könnte man in Englisch so umschreiben (Bitte keine Diskussion um genau dieses Beispiel, das is blöd gewählt... Aber dass es grammatikalische Unterschiede gibt ist wohl klar):

Code: [AUSKLAPPEN]
player$+" score: "


Sprich die Variable ist an einer anderen Stelle, der Satzbau is halt komplett anders. Und das berücksichtigt mein Programm nicht. Außerdem wird das auch für den Programmierer um Ecken schwerer...
Aber so im großen und ganzen empfehle ich dir BladeRunners Tipp mit meinem Tool Wink

Viel Erfolg,
Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

TimBo

BeitragSa, Apr 16, 2011 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit der Grammatik ist doch einfach. Du nimmst nicht nur ein Wort sondern einfach den ganzen Satz und übersetzt ihn..
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Eingeproggt

BeitragSa, Apr 16, 2011 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja und wenn im Satz Variablen drin sind? Dann muss dem Programm auch noch gesagt werden, wo die Variable hinkommt. Sprich man braucht schon fast ne Art Skriptsprache / Metasprache.
Und das übersteigt nicht nur meine damaligen Fähigkeiten sondern wohl auch die viele Beginner (in deren Corner wir grad sind Wink ). Außerdem muss man da Nutzen-Aufwand abwägen. Oder ihr erzählt mir was einfacheres? Ich orientere mich bei meinen neusten Überlegungen an dem System von phpBB... welches ich aber noch nicht nach BB übersetzt hab bzw. mir das auch ned antun werde. Aber für interessierte Leute is das natürlich n Blick wert, wie andere das Problem lösen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Midimaster

BeitragSa, Apr 16, 2011 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe mir eine Translation-Routine gebastelt, die in den Programmzeilen den deutschen Text verwendet:

BlitzBasic: [AUSKLAPPEN]
Text 100,100,translation("Menü-Hilfe")

...und dann bei Programmstart in der Translation-INI-Tabelle jedem dieser deutschen String eine Nummer (quasi rückwärts...) zuordnet

BlitzBasic: [AUSKLAPPEN]

Function Translation$(SuchWort$)
If Left(suchwort,1).toint()>0 Then
'Print " zahl in translation gefunden !"+suchwort + "!"
Return TransIni(SuchWort,SCHNELL_VIA_NUMMER)
ElseIf suchwort<>"" Then
Return TransIni(SuchWort, MIT_SUCHEN_IM_DEUTSCH)
EndIf
End Function
......


Zitat:
[Deutsch]
1= Menü-Hilfe
2= Es gibt drei verschiedene Spiele
....


....und daraus in den Übersetzungstabellen die richtige Zeile aus den verschiedenen Sprachen auswählt:

Zitat:
....
[English]
1= Menu Help
2= There are three different lessons


war das deutsche Wort einmal gesucht und gefunden worden, wurde es unter der dazugehörenden Nummer in eine Liste aufgenommen und bei weiteren Aufrufen sehr schnell aus der Liste geholt.

Der Voteil ist, dass man im Programmcode noch ersehen kann, um welchen Text es sich an dieser Stelle handelt. Ich hatte auch schon mal ein Model wie das von Eingeproggt benutzt, es war dann aber immer schwer im Code zu lesen um welche Textstelle es sich handelt:

BlitzBasic: [AUSKLAPPEN]
Text 100, 100, lng_array$(1)


Der befürchtete Nachteil, dass dieses System zuviel Zeit benötigt, bestätigte sich gotseidank nicht.

TimBo

BeitragSa, Apr 16, 2011 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
achsoo Satzstellung, das ist natürlich knifflig(er)...
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group