Mehrsprachiges Formular

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
patch(o)uli
Beiträge: 33
Registriert: 23.01.2013, 12:21

Mehrsprachiges Formular

Beitrag von patch(o)uli » 29.05.2013, 12:54

Hallo,
nachdem ich mir nun schon seit Tagen die Augen müde schaue zu dem Thema „mehrsprachige Formulare“ gebe ich auf – ich verstehe es einfach nicht.
Ich weiß jetzt allerdings in der Theorie, wie mein Formular am Ende funktionieren soll:
1. mithilfe eines Dropdown soll die Sprache ausgewählt werden (de/en)
2. alle Begriffe sollen in Abhängigkeit der eingestellten Sprache erscheinen

Eine Lösung scheint mir:
jedem deutschen Feldnamen einen entsprechenden englischen Namen zuordnen
Also: Wenn „deutsch“ dann „Kunde“
wenn „englisch dann „Customer“
Hier habe ich gesehen, dass das mithilfe von Scripten sehr elegant gelöst werden kann. Leiderhabe ich von Scripten nicht wirklich eine Ahnung.
Außerdem habe ich auch ein Beispiel gefunden, bei dem unsichtbar eine Übersetzungstabelle im Formular selbst beinhaltet war.
Leider verstehe ich nicht, wie so etwas aufgebaut wird.

Ich hänge mal eine abgespeckte Version meiner Datei an.

Kann mir jemand dazu helfen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Mehrsprachiges Formular

Beitrag von armine » 31.05.2013, 09:25

Hallo patch(o)uli,

ich glaube, dir kann geholfen werden. Bei Textfeldern ist es einfach. Die werden – abhängig von der gewählten Sprache – initialsiert. Bei einem Sprachwechsel macht man das wieder.
Text und die Masterseiten werden von der Suchroutine leider ignoriert. Die kann man direkt ändern (siehe "Formular1.Deckblatt.DatenKunde.Sprachwahl.Sprache::change") oder ein Textfeld zur Mitarbeit überreden.

Am Coden solltest du dank copy and paste nicht scheitern. Die Änderungen sind nur eine Flleißarbeit.

Die Pagina erledigt den Sprachwechel alleine.

Noch Fragen?

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

patch(o)uli
Beiträge: 33
Registriert: 23.01.2013, 12:21

Mehrsprachiges Formular

Beitrag von patch(o)uli » 04.06.2013, 13:01

Super - vielen Dank,
ich komme ganz gut damit zurecht.
Einzig die Texte (Textfelder sind kein Problem) bereiten mir noch Schwierigkeiten.
Es wird wohl an der Position liegen, an der ich das Script einfüge???

Die Texte erscheinen doppelt oder ich kann sie dann in meiner datei im LCD nicht mehr sehen ???
Gibt es da noch einen Tip?

Macht echt richtig Spaß, warum muss ich eigentlich noch andere Dinge tun? :-)
Dankbare Grüße
patch(o)uli

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Mehrsprachiges Formular

Beitrag von armine » 04.06.2013, 13:26

Schau dir [font=courier new]Formular1.Deckblatt.DatenKunde.email::initialize - (JavaScript, client)[/font] an. Da wird auch "Text" geändert.
Generell ist es günstig, erst "Text" abzuarbeiten und sich erst zum Schluss dem eigentlichen Feld zuzuwenden. Im Beispiel ist die Codefolge egal, aber wenn du den Wert (this.rawValue bzw. $) setzt, dann muss das am Schluss geschehen.

patch(o)uli
Beiträge: 33
Registriert: 23.01.2013, 12:21

Mehrsprachiges Formular

Beitrag von patch(o)uli » 06.06.2013, 12:35

Danke Armine,
wie Du schon schreibst


Text und die Masterseiten werden von der Suchroutine leider ignoriert.


. . . ich kämpfe um ein einziges Textfeld auf der Masterseite 2.
Es will mir einfach nicht gehorchen :-)
. . . soll es doch nur aus dem Wort Projektnummer das Wort Number machen - ????

Ansonsten bin ich wirklich gut durch mein Formular gekommen - vielen Dank.

Gruß patch(o)uli

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Mehrsprachiges Formular

Beitrag von armine » 06.06.2013, 13:40

Hi,

du hast sicher die "Pagina" von der "Master_Seite1" auf die "Master_Seite2" kopiert.
Lass sie das miterledigen.

[font=courier new]Formular1.#pageSet[0].Master_Seite2.Pagina::calculate - (JavaScript, client)

if (Deckblatt.DatenKunde.Sprachwahl.Sprache.deutsch.rawValue) {
    ProjNummer.caption.value.text.value = "Projektnummer" ;
    this.rawValue = "Seite " + xfa.layout.page(this) + " von " + xfa.layout.pageCount()
} else {
    ProjNummer.caption.value.text.value = "Number" ;
    this.rawValue = "page " + xfa.layout.page(this) + " of " + xfa.layout.pageCount()
}[/font]

Danke für dein positives Feedback.
Ist doch schön, wenn jemand sein Problem erkennt, präzise beschreibt und die zugehörige Datei beistellt. Zu guter Letzt setzt er die Gebrauchsanleitung auch noch um!

vg armine


Antworten