+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Lokalisierung / Translate$


(Guest) #1

Hallo,
folgendes Problem bei LL16:
Beim Aufruf mit LL.Design funktioniert die Lokalisierung, d.h. die Translatebefehle führen zur Zielsprache.
Allerdings soll auch gedruckt werden, ohne den Design-Befehl zu benutzen, also Benutzung von
LL.Print(mit LlPrintMode.Preview oder LlPrintMode.Normal oder .Export für eine Datei)
-> dann wird leider der Originaltext (szKey) angezeigt.

Vorgehensweise in allen Fällen:
Aufbau eines static-Wörterbuchs mit
LL.DesignerWorkspace.DesignerLanguages.Clear();
LL.DesignerWorkspace.DesignerLanguages.Add(designerLanguageLCID);
(designerLanguageLCID natürlich mit Wert)
LL.Dictionary.Clear();
LL.Dictionary.StaticTexts.Add(szKey,sz, designerLanguageLCID);
wobei szKey bzw sz beim Debuggen auch korrekt zugewiesen werden.

Das mitgelieferte Beispiel und das Handbuch geben zum Translate$ Befehl leider nur wenig her.
Sollte man für LL.Print etwa kein static-Wörterbuch benutzen?

Danke und Grüße
T. Bartels


(Guest) #2

Erweiterung meiner Anfrage:

wie gebe ich mit dem Translate$ die Zielsprache vor?

Konkret fülle ich z.B. ein Wörterbuch mit italienischen Ausdrücken,
( LL.Dictionary.StaticTexts.Add(szKey,
sz, designerLanguageLCID [= 16]);

aber auch beim LL.Design Befehl funktioniert die Translate$-Lokalisierung nur mit einem deutsch-Wörterbuch.


(Guest) #3

In den Projektparametern (z.B. im Designer in der Projekteigenschafts-Liste sichtbar) gibt es “Sprache für den Druck”. Da kannst Du z.B. eine Variable von Dir eintragen, die die gewünschte Sprache für den Druck definiert (m.W. auch die ISO-Sprach-Codes, also “it-it” oder “it”, oder die LCID-Zahl von Windows), oder Du kannst diesen Projektparameter “LL.PrintJobLCID” vom Code her vor dem Druck setzen (LlSetDefaultProjectParameter() oder per brute force über LlPrintSetProjectParameter()).

Paulchen


(Guest) #4

Hallo Paul,

danke für die Antwort.
Allerdings scheint LL.PrintJobLCID erst mit List&Label 17 verfügbar zu sein, wir setzen leider L&L 16 ein.

Was ich natürlich gemacht habe, ist in obigem Beispiel
LL.Language = LlLanguage.Italian;
zu setzen, allerdings ohne Erfolg.

Grüße
Thomas


(Guest) #5

Und mit der Übergabe der Sprache als Variable, zum Eintragen in die Proj-Parameter?


(Guest) #6

hallo,

also mit LL.ProjectParameters[“PrintJobLanguage”].Value = languageCode;
wobei languageCode “it” oder “de” oder …
habe ich leider noch nicht den gewünschten Erfolg.

Eigentlich hatte ich das jetzt erwartet, da laut der .NET Hilfe:
„Lokalisierungen sind in der Regel nur für den Designer notwendig und spielen für den Druck keine Rolle.
Allerdings stellen hier die StaticTexts eine Besonderheit dar und daher müssen Lokalisierungen für StaticTexts auch für den Druck angemeldet werden.“

Alle Texte sind im Static-Wörterbuch und jetzt auch angemeldet?
Trotzdem: weder Preview noch Print werden lokalisiert.

Bei Sprachen außer ‘de’ auch im Design nicht!

Grüße
Thomas


(Guest) #7

[quote=Paul Schmidt]In den Projektparametern (z.B. im Designer in der Projekteigenschafts-Liste sichtbar) gibt es “Sprache für den Druck”. Da kannst Du z.B. eine Variable von Dir eintragen, die die gewünschte Sprache für den Druck definiert (m.W. auch die ISO-Sprach-Codes, also “it-it” oder “it”, oder die LCID-Zahl von Windows), oder Du kannst diesen Projektparameter “LL.PrintJobLCID” vom Code her vor dem Druck setzen (LlSetDefaultProjectParameter() oder per brute force über LlPrintSetProjectParameter()).

Paulchen[/quote]

Hallo, ich habe LL17 auf DelphiXE installiert. Wie kann ich LCID als ISO-Sprach-Code (‘de-ch’ anstelle von 2055) eingeben? LL.ProintJobLCID gibt es nicht bei mir. Die einzige mir bekannte Möglichkeit ist LL.LLSetOption(LL_OPTION_LCID, nnn); Hier kann nur numerische LCID Code eingegeben werden.

Pavol.