Seite 1 von 1

Dialog auf aktuelle Sprache (locale) prüfen?

Verfasst: So, 17.04.2011 11:05
von ohei2
Wie kann ich bei einem selbsterstellten, laufenden Dialog - unter Calc, wenn das wichtig ist - die aktuelle Sprache feststellen?

Ich habe jetzt zwei Nachmittage intensives Suchen und Lesen der Dokumentation hinter mir. Zuletzt habe ich das XRay Tool installiert, aber ich komme einfach nicht weiter.

Problem ist folgendes: Ich habe ein Dialogmodul auf mehrsprachig umgestellt, insgesamt fünf Sprachen und habe für jede Sprache im Dialogentwurf die Beschriftungen und Auswahlen übersetzt. Soweit so gut und kein Problem.

Nun hat aber mein Basic-Modul auch noch ein paar 'msgbox' und einen Daten-Export. Ich möchte nun die aktuelle Sprache des Nutzers feststellen, damit ich die Sprache der Meldungen ('msgbox') und der Daten für den Export entsprechend einstellen kann, also in der Art

Code: Alles auswählen

oSpracheDesDialogs = ???
if oSpracheDesDialogs = "de" then
    msgbox "Danke"
elseif oSpracheDesDialogs = "fr" then
    msgbox "Merci"
else
    msgbox "Thank you"
endif
Das muss doch irgendwie gehen, der Dialog selber kann es ja offensichtlich auch feststellen.

Alles, was ich in der Dokumentation gefunden habe, ist ::com::sun::star::lang::Locale, aber als relativer OOBasic Frischling habe ich keine Ahnung, wie ich darauf zugreifen kann. Von sich aus scheinen Dialoge diese Methode nicht zu unterstützen soweit ich die Ausgabe des XRayTools verstehe.

Meine erste Idee war einfach die Labels oder den Inhalt einer Listbox auszulesen, aber das funktioniert nach einer Umstellung auf Mehrsprachigkeit nicht mehr, da die Beschriftungen und Inhalte durch Tags ersetzt werden wie z.B. "&1.Dialog1.Title" .

Wer hat sowas schon mal gemacht und kann mir hier weiterhelfen?
Schon mal danke für's Durchlesen.

Re: Dialog auf aktuelle Sprache (locale) prüfen?

Verfasst: So, 17.04.2011 11:57
von turtle47
Hallo ohei2,
ohei2 hat geschrieben:Ich möchte nun die aktuelle Sprache des Nutzers feststellen
Die bekommst Du mit:

Code: Alles auswählen

Sub Check_Language
	Dim oParameter(0) As New com.sun.star.beans.PropertyValue
	sProvider = "com.sun.star.configuration.ConfigurationProvider"
	oConfigProvider = createUnoService(sProvider)
	OOo_Language = oConfigProvider.Locale.Language 
	print OOo_Language
End Sub

Viel Erfolg.

Jürgen