Deutsch
Forum

Multilanguage in DLLs

 
- Seite 1 -



Stephan
Sonneborn
Hallo zusammen,

hat jemand von Euch Erfahrungen mit Multilanguage-DLLs? Ich habe in einem Programm das bisher mit komplett unterschiedlichen DLLs gelöst (also eine mit Texten in deutsch, eine in englisch, eine in ...) Das ist von der Verwaltung her sehr aufwendig.
In den DLLs kann man ja eine Sprache mitgeben. Wie kann ich die dann im Programm zuordnen? Ich denke, das wird Windows automatisch machen: ein englisches Windows wird dann die englischen Texte lesen. Aber es gibt ja allein für englisch x verschiedene Spracheinstellungen, welche sollte man in die DLL stellen?

Kann man auch in einem deutschen Windows englische Texte verwenden?

82 kB
Hochgeladen:04.10.2011
Ladeanzahl190
Herunterladen
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
04.10.2011  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 2 -



Andreas
Miethe


Das Umstellen auf eine andere Sprache ist eigentlich recht simpel.
Danach ist das Laden der Resourcen immer gleich, egal welche Sprache.

Hier mal ein Beispiel (funktioniert nur auf NT-Systemen )

Download

530 kB
Hochgeladen:15.10.2011
Ladeanzahl260
Herunterladen
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
15.10.2011  
 



 
- Seite 1 -



Detlef
Jagolski
Und ich dachte die Lösung von Andreas erklärt sich durch

The MAKELANGID macro is defined as follows:

#define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))


von alleine.
 
XProfan X2
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
09.10.2011  
 




Stephan
Sonneborn
Hallo Detlef, hallo Andreas,
vielen Dank für Eure Hilfe, aber irgendwie stehe ich immer noch aufm Schlauch:
Ich hab eine DLL gebastelt mit einer STRING-Resource in den Sprachcodes Neutral, GERMAN und ENGLISH.

In allen dreien habe ich Texte hinterlegt:
100,Neutral; 100,Deutsch; 100,English

Mittels
KompilierenMarkierenSeparierenwollte ich dann auf die Texte zugreifen.Wie müsste denn der Pointer "PointerAufID" aussehen?
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
10.10.2011  
 



 
- Seite 2 -



Detlef
Jagolski
Aus der API Hilfe von FindResourceEX:

Points to a null-terminated string specifying the name of the resource. For more information, see the Remarks section.

KompilierenMarkierenSeparieren
var PointerAufID$ = "Name der Resource" + Chr$(0)
FindResourceEX(DllName&, ~RT_STRING,Addr(PointerAufID$), MAKELANGID(~Neutral, ~SUBLANG_Neutral))

Gruß

Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
11.10.2011  
 



Anstelle des Strings lieber die Resource-ID verwenden, also einfach die Zahl hinschreiben.
Nachdem die Resource gefunden ist, ist noch LoadResource() und LockResource() nötig, dann steht im zurückgegebenen Speicher der Unicode(?? bin ich jetzt so ausm Kopf überfragt)-Text, allerdings als Text-Bank. mit bis zu 16 Strings oder so. Du musst also im Speicher noch die Position des richtigen Strings errechnen. Alles in allem also nicht so einfach.
Was in der API fehlt ist sowas wie LoadString mit Language-Support, also ein LoadStringEx. Gibts aber leider nicht.

Darum empfehle ich schon fast, unterschiedliche ID's für Sprachentexte zu verwenden, z.B . ab 1000 für deutsche Texte, ab 2000 für englische usw. und dann normal mit XProfanfunktionen einzulesen. Ist auf jeden Fall einfacher, wenn auch nicht so... cool.
 
11.10.2011  
 




Stephan
Sonneborn
Frabbing (11.10.11)

Darum empfehle ich schon fast, unterschiedliche ID's für Sprachentexte zu verwenden, z.B . ab 1000 für deutsche Texte, ab 2000 für englische usw. und dann normal mit XProfanfunktionen einzulesen. Ist auf jeden Fall einfacher, wenn auch nicht so... cool.


Frank, Du hast ja sooo Recht!!!
KompilierenMarkierenSeparieren
 $H WINDOWS.PH
VAR CompanyDLL& = USEDLL("Test.dll")
DEF MakeLangID(2) (@&(2) << 10) | @&(1)
DEF FindResourceEx(4) !"kernel32.dll", "FindResourceExA"
DEF LoadResource(2) !"kernel32.dll", "LoadResource"
CLS
print  EXTSTRING$(CompanyDLL&, 100)
print companydll&
var PointerAufID$ = "100" + Chr$(0)
print FindResourceEx(CompanyDLL&, ~RT_STRING, Addr(PointerAufID$), MAKELANGID(~LANG_GERMAN, ~SUBLANG_GERMAN))
print LoadResource(CompanyDll&, FindResourceEx(CompanyDLL&, ~RT_STRING, Addr(PointerAufID$), MAKELANGID(~LANG_GERMAN, ~SUBLANG_GERMAN)))
Waitinput
FREEDLL CompanyDll&

Dieser Code liefert mir immer nur eine 0 als Handle...

16 kB
Hochgeladen:11.10.2011
Ladeanzahl210
Herunterladen
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
11.10.2011  
 




Andreas
Miethe


Das Umstellen auf eine andere Sprache ist eigentlich recht simpel.
Danach ist das Laden der Resourcen immer gleich, egal welche Sprache.

Hier mal ein Beispiel (funktioniert nur auf NT-Systemen )

Download

530 kB
Hochgeladen:15.10.2011
Ladeanzahl260
Herunterladen
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
15.10.2011  
 




Stephan
Sonneborn
Der XProfan Doc hat wieder zugeschlagen!!!!

Danke Andreas!!!!

Es ist in der Tat recht simpel, wenn man weiß wies geht...
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
15.10.2011  
 




E.T.
Super, Andreas !!!
Da kann ich mir ja in Zukunft auch die "mehreren Dll's" sparen.

DANKE !!!
 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
15.10.2011  
 




Julian
Schmidt
Funktioniert das auch mit einer ganz normalen Exe anstatt einer DLL? Kann man diese Strings im Programm selbst Platzieren? Wenn ja fände ich das noch viel praktischer.

[OFFTOPIC]Im Themen-Titel ist ein Schreibfehler! Wenn jemand folglich nach "Multilanguage" sucht wird nichts gefunden. [/OFFTOPIC]
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
15.10.2011  
 




Andreas
Miethe


Julian57 (15.10.11)

Funktioniert das auch mit einer ganz normalen Exe anstatt einer DLL? Kann man diese Strings im Programm selbst Platzieren? Wenn ja fände ich das noch viel praktischer.


Klar, das geht mit einer Exe genauso wie mit einer Dll.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
16.10.2011  
 




Kann man diese Strings im Programm selbst Platzieren? Wenn ja fände ich das noch viel praktischer.


Der LemonEd kann das per RC oder RES-Datei einbauen, einfach den Scriptnamen in den Einstellungen zum Quellcode angeben. Download findest du auf meiner Seite oder bei Paule.

So eine RC würde dann so ähnlich aussehen:

LANGUAGE 0, SUBLANG_NEUTRAL
STRINGTABLE
{
1000, "Good morning"
1001, "How are you?"
}

LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
STRINGTABLE
{
1000, "Guten Morgen"
1001, "Wie geht es dir?"
}
 
16.10.2011  
 




Stephan
Sonneborn
Julian57 (15.10.11)


[OFFTOPIC]Im Themen-Titel ist ein Schreibfehler! Wenn jemand folglich nach "Multilanguage" sucht wird nichts gefunden. [/OFFTOPIC]




Danke für den Hinweis Julian, habs korrigiert.
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
16.10.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

18.770 Betrachtungen

Unbenanntvor 0 min.
Kutsche27.02.2020
Stephan Sonneborn31.10.2019
Walter06.02.2018
Boroberto22.04.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie