Italia
Foro

Multilanguage in DLL

 
- Page 1 -



Stephan
Sonneborn
Hallo zusammen,

hat jemand von Euch Erfahrungen mit Multilanguage-DLL? Ich habe in einem Programm das bisher mit komplett unterschiedlichen DLL gelöst (also eine mit Texten in deutsch, eine in englisch, eine in ...) Das ist von der Verwaltung her sehr aufwendig.
In den DLL 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 per englisch x verschiedene Impostazioni della lingua, welche sollte man in die DLL stellen?

Kann man auch in einem deutschen Windows englische Texte verwenden?

82 kB
Hochgeladen:04.10.2011
Downloadcounter190
Download
 
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. »

- Page 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
Downloadcounter260
Download
 
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  
 



 
- Page 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 per Eure Aiuto, 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  
 



 
- Page 2 -



Detlef
Jagolski
Aus der API Aiuto 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))e>

Saluto

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-Sostegno, also ein LoadStringEx. Gibts aber leider nicht.

Darum empfehle ich schon fast, unterschiedliche ID's per Sprachentexte zu verwenden, z.B . ab 1000 per deutsche Texte, ab 2000 per 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 per Sprachentexte zu verwenden, z.B . ab 1000 per deutsche Texte, ab 2000 per 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
nyDll&

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

16 kB
Hochgeladen:11.10.2011
Downloadcounter210
Download
 
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
Downloadcounter260
Download
 
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 Argomenti-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-File 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 Argomenti-Titel ist ein Schreibfehler! Wenn jemand folglich nach "Multilanguage" sucht wird nichts gefunden. [/OFFTOPIC]




Danke per 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  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

18.756 Views

Untitledvor 0 min.
Kutsche27.02.2020
Stephan Sonneborn31.10.2019
Walter06.02.2018
Boroberto22.04.2016
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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