Texte übersetzen mit Hilfe von Steuerdateien?

18/03/2010 - 08:59 von Christian | Report spam
Guten Tag allerseits,

Word 2007 WinXP SP3

Ich gestalte Formulare in verschiedenen Sprachen, Fragebögen
beispielsweise.
Bisher gab es jeweil pro Sprache ein Dokument.
Habe mal bei einem Dokument ein Makro per Rekorder aufzeichnen lassen,
das beispielsweise alle englischen Begriffe durch Suchen und Ersetzen
in deutsche wandelt.
Zweites Makro der selben schlichten Strickart macht das in die andere
Richtung.
Das funktioniert, der Code wird aber lang, unübersichtlich und
unflexibel.

Kennt von Euch vielleicht jemand ein fertiges Tool oder Makro, was die
zu ersetzenden Begriffe aus, beispielsweise einer Excel-Tabelle
ausliest? Die Idee ist in etwa: "Ersetze mir im aktuellen Dokument
alle Begriffe der Excel-Tabelle soundso Spalte A gegen Spalte B.
Damit könnte man für diese Übersetzungen übersichtliche und leicht zu
pflegende Steuerdateien verwenden.

Hoffentlich habe ich mich verstàndlich genug ausgedrückt.
Wàre eine feine Sache hier einen Stups in die richtige Richtung zu
bekommen, eine Google Suche hat nix gebracht.

Danke im Voraus und viele Grüße

Christian.
 

Lesen sie die antworten

#1 Christian Freßdorf
18/03/2010 - 09:42 | Warnen spam
Hallo Christian,

Ich gestalte Formulare in verschiedenen Sprachen, Fragebögen



vorab: was sind bei Dir Formulare? Userforms, oder Formfularfelder?

Für eine Userform hatte ich vor Jahren mal soetwas gebastelt, wo man die
Beschriftungssprache der einzelnen Controls umschalten konnte (D-GB)

Die jeweiligen Übersetzungen wurden dabei in einer INI-Datei gespeichert:

[1031]
0=Testform
1=Ihr &Name
2=Zeige &Infos
3=&Straße
4=Optionsfeld
5=Dieses ist ein Text in einem Textfeld
6=Beenden
7=Tag-Werte
8=Schließen
9=Systemsprache
10=2. Userform
11=INI bearbeiten
12=Textfeld auf der 2. Userform

[1033]
0=My test-form
1=Your &Name
2=Show &infos
3=&Street
4=Option button
5=This is a text in a text box
6=Quit
7=List Tags
8=Close
9=System language
10=2nd Form
11=Edit INI
12=Text box on the 2. form

die Auswertung erfolgt über die SprachID, womit auch die Systemsprache
ermittelt werden kann:

'Default system locale.
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
'Default user locale.
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

Die INI-Datei wird mittels der APIs
GetPrivateProfileSection
GetPrivateProfileSectionNames

ausgelesen.
Das Umschalten erfolgt durch Aufruf der jeweiligen SpachID:
modMultiLanguage.fkt_SwitchLang "1031", Me
o.a.

aber das gilt nur für die Userform.
Für ein Formularfeld-Formular muss eine entsprechende Anpassung vorgenommen
werden.

Das komplette Beispiel kann ich leider nicht hochladen. GGf. per Mail bei
mir melden (Betreff: NG: Testdatei)

Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

Ähnliche fragen