Autor Thema: Multi-Linguale Datenbanken selber machen...  (Gelesen 1458 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Multi-Linguale Datenbanken selber machen...
« am: 28.01.05 - 14:42:34 »
Seit längerem schlage ich mich rum mit einem Problem:

ich habe eine System- Schablone (Teamroom, Reservierungen, etc.) in einem multilingual installierten Server.

Wenn man aus dieser Schablone eine Datenbank generiert, dann hat die Datenbank immer alle verfügbaren Sprachen, anstatt zu Fragen (wie bei der Mail): Welche Sprache möchtest Du denn haben wie im angefügten Bild.

Nun hatte ich die Schnauze voll und habe mal eine Mail- Datenbank auf HERZ UND NIEREN geprüft, um herauszufinden, wo die Sprachwahl versteckt ist.
Und Ihr werdet es nicht glauben: Sie steckt im Design- Element für das Datenbank- Symbol....
Im Feld "$LANGUAGE" des Design- Elements stehen alle zur Verfügung stehenden Sprachen.

Wenn Ihr also eine Datenbank manuell mehrsprachig machen wollt, dann müsst Ihr nur alle Design- Elemente mehrsprachig halten und dann folgende Schritte durchführen:

1. Datenbanksymbol- Eigenschaften öffnen und die UNID auslesen (das könnt Ihr auch per NotesPEEK machen, da könnt Ihr die UNID gleich kopieren.
2. Einen Agenten schreiben, der folgenden Code enthält:

   Dim ses As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Dim langs( 1 ) As String
   
   Set db = ses.CurrentDatabase
   Set doc = db.GetDocumentByUNID( "325BE77F5A822FF3C1256F970036D9BB" )
   
   langs( 0 ) = "en"
   langs( 1 ) = "de"
   
   Call doc.ReplaceItemValue( "$LANGUAGE" , langs )
   Call doc.Save( True, True )

Fertig...

gegebenenfalls kommt man über die Datenbank- Design Klasse auch ohne abschreiben der ID an das Design- Dokument, aber das war mir jetzt zu aufwändig, das zu testen.
EDIT:
Das mit dem Automatismus klappt wirklich.

Use "DBDesign" '<<<- diese Scriptlib gibts in der Sandbox

   Dim ses As New NotesSession
   Dim db As NotesDatabase
   Dim dbdesign As DatabaseDesign
   Dim doc As notesdocument
   Dim ret As Variant
   Dim langs( 1 ) As String
   
   Set db = ses.CurrentDatabase
   Set dbDesign = createDatabaseDesign( db)
   ret = dbDesign.IconDocuments
   Set doc = ret( 0 )
   
   langs( 0 ) = "en"
   langs( 1 ) = "de"
   
   Call doc.ReplaceItemValue( "$LANGUAGE" , langs )
   Call doc.Save( True, True )


Vielleicht braucht's ja mal jemand...

Gruß
Tode
« Letzte Änderung: 28.01.05 - 15:19:52 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz