Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Auslesen der 2. Sprache

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Auslesen der 2. Sprache (697 mal gelesen)
schippe
Mitglied
Entwicklung & Konstruktion


Sehen Sie sich das Profil von schippe an!   Senden Sie eine Private Message an schippe  Schreiben Sie einen Gästebucheintrag für schippe

Beiträge: 40
Registriert: 19.10.2005

erstellt am: 02. Mai. 2006 10:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


STULZ_ContentSheet_vbs.txt

 
Hallo,

zur erstelung eines inhaltsverzeichnisses möchte ich unter anderem gern die 2. oder 3. sprache, per script, aus der sprachdatenbank auslesen. bin in vbs noch nicht sehr bewandert, daher meine bitte an euch, mir zu helfen. habe mal das bestehende script mit angehängt.
anstelle von
text_description_A = 48 'zweite Sprache (Texttype 40, Sprache 2 (/2))
text_description_B = 501 'dritte Sprache (Texttype 40, Sprache 3 (/4))
(zeile 34 und 35)

möchte ich einfach, wenn möglich, per parameter "/2" bzw. "/3" die 2. und 3. Sprache des ttypen 40 auslesen.

wer kann mir ein lösungsbeispiel geben?

gruß

Schippe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Eldorado
Mitglied



Sehen Sie sich das Profil von Eldorado an!   Senden Sie eine Private Message an Eldorado  Schreiben Sie einen Gästebucheintrag für Eldorado

Beiträge: 73
Registriert: 12.06.2004

erstellt am: 02. Mai. 2006 21:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für schippe 10 Unities + Antwort hilfreich

Sorry, es gibt leider keinen direkten Weg, die 2., 3. oder sonstige zusätzliche Übersetzung eines bestimmten Text-Tokens mit einem einfachen Aufruf zu ermitteln. Du kannst dir aber auf folgenden Wegen Abhilfe schaffen:

1.) die Textdatenbank lesen
2.) ein Token mit der Endung /<x> in den Text schreiben und die Übersetzung wieder auslesen

Die erste Möglichkeit ist komplizierter. Dazu muss man SQL-Statements formulieren. Außerdem sollte dann noch E³ gefragt werden, welche Sprachen aktuell überhaupt im Projekt gesetzt sind damit die erzeugte Liste auch wirklich den Gegebenheiten zum Zeitpunkt des Scriptablaufs entspricht. Diese Möglichkeit lasse ich jetzt mal außen vor.
Die zweite funktioniert wie folgt:

Code:
oldtxt = txt.GetInternalText
token = txt.GetLanguageId
txt.SetText "&#" & token & ";/1": t1 = txt.GetText
txt.SetText "&#" & token & ";/2": t2 = txt.GetText
txt.SetText "&#" & token & ";/4": t3 = txt.GetText
txt.SetText oldtxt

Im ersten Statement wird der aktuelle Textinhalt gesichert damit wir ihn nach der ganzen Aktion wieder restaurieren können. Dann wird die sog. "LanguageId" ausgelesen. Das ist schlicht eine Nummer, die den übersetzbaren Text repräsentiert. In den dann folgenden drei Zeilen wird jeweils ein String der Form "&#<num>;/<n>" generiert und in das Textfeld geschrieben. &#<num>; weist E³ an, dass zur Darstellung des Textfeldes immer ein übersetzbares Token (nämlich das mit der Nummer <num> ) verwendet werden soll. "/1", "/2" und "/4" unmittelbar nach dem Strichpunkt geben (bit-codiert) an, welche Sprachen (in diesem Fall die 1., 2. und 3.) jeweils dargestellt werden soll. Die Übersetzung in der jeweiligen Sprache wird dann wieder mit GetText() ausgelesen.

Wenn du allerdings in E³ im Normalfall nur einsprachig arbeitest und nur für die Liste diesen einen Text mehrsprachig ausgeben möchtest, dann sollte doch die erste Lösung gewählt werden. Melde dich hierzu ggf. einfach wieder.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

schippe
Mitglied
Entwicklung & Konstruktion


Sehen Sie sich das Profil von schippe an!   Senden Sie eine Private Message an schippe  Schreiben Sie einen Gästebucheintrag für schippe

Beiträge: 40
Registriert: 19.10.2005

erstellt am: 03. Mai. 2006 09:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Eldorado,

erstmal recht herzlichen dank für die prompte antwort. Wir arbeiten schon mehrsprachig mit E³. Es ist so, dass wir zur erstellung des inhaltsverzeichnisses, nacheinander, blatt für blatt, immer wieder den texttype 40 auslesen möchten. allerdings dann jeweils 3-sprachig (/1, /2, /4). wäre super, wenn du dir den script einmal anschauen könntest. Kann ihn dir auch gern direkt per email zuschicken.

gruß

schippe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Eldorado
Mitglied



Sehen Sie sich das Profil von Eldorado an!   Senden Sie eine Private Message an Eldorado  Schreiben Sie einen Gästebucheintrag für Eldorado

Beiträge: 73
Registriert: 12.06.2004

erstellt am: 05. Mai. 2006 20:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für schippe 10 Unities + Antwort hilfreich

Ich hatte mir dein Script schon angesehen - bin aber davon ausgegangen, dass du mein kleines Snipplet dort auch selbst sinngemäß reinbringen kannst.

Ist eigentlich ganz einfach: Wirf die zweite der folgenden Zeilen deines Scripts weg:

Code:
if Text.GetTypeId = text_description and not Description_1_found then
  Text_Description_1_found  = Text.GetInternalText
und ersetze sie durch meinen Abschnitt (wobei du dann allerdings statt 'txt' immer 'text' schreiben musst weil deine Objektvariable eben 'text' und nicht wie bei mir 'txt' heißt). In den Variablen t1, t2 und t3 stehen jetzt die die Texte jeweils in der 1., 2. und 3. Sprache. Was du mit diesen Texten machen willst, weiß ich leider nicht...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

schippe
Mitglied
Entwicklung & Konstruktion


Sehen Sie sich das Profil von schippe an!   Senden Sie eine Private Message an schippe  Schreiben Sie einen Gästebucheintrag für schippe

Beiträge: 40
Registriert: 19.10.2005

erstellt am: 08. Mai. 2006 09:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Eldorado,

besten Dank, für deine Hilfe. Sorry, habe noch keine vbs-Kenntnisse. Kann wohl erst nach kompletter E³-Einführung zur Schulung gehen ;-), bitte um Nachsicht.
Habe nun mal deinen Part in mein Script eingefügt und angepasst. Es läuft zumindest auch durch und das Blatt "Inhaltsverzeichnis" wird geöffnet. Allerdings ist es leer. Im Ausgabefenster von E³ erscheint 9 mal folgende Meldung:

"W - Text '#0' konnte in der Datenbank nicht gefunden werden."

Muss ich evtl. weiter unten noch die Textausgabe anpassen?

Gruss

Schippe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz