Einführung
Heimdall ist ein leicht zu bedienender Konfigurator mit dem Sie leicht Variablen extern in eine Datei speichern bzw. auslagern können. Eine Konfigurationsdatei kann über den Basic-Code direkt, oder mit dem internen Dialog schnell und übersichtlich erstellt werden.
Heimdall kann aber noch mehr. Neben den eigenen Konfigurationen können sie auch direkt auf die Werte der Libre Office Umgebung zugreifen und auslesen. Wie das funktioniert, steht weiter unten beschrieben.
Ein interner ‚Resolver‘ liefert Substitutionsvariablen und reservierte Texte die mehrsprachig hinterlegt sind. Die Standardsprache ist Englisch. Eine Übersicht welche Variablen und Texte geliefert werden, finden Sie ebenfalls weiter unten.
Die Extension benötigt die Unterstützung der Gemeinschaft. Bitte schreiben Sie uns, wenn Sie denken, dass reservierte Wörter, reservierte Variablen oder Texte unbedingt mit aufgenommen werden sollen.
Für Unterstützung schreiben Sie an support@getobject.de
Exkurs: Heimdall ist eine Gottheit der germanischen Mythologie. Er bewacht die Regenbogenbrücke Bifröst.
Der Konfigurator
Der einfachste Weg eine Konfigurationsdatei zu erstellen, ist der über den internen Dialog. Sobald Sie Heimdall installiert und aktiviert haben, erscheint im Menü der Basic IDE ein neuer Menü-Eintrag "Heimdall".
Öffnen Sie das Menü, und starten Sie den Konfigurator.
Der Konfigurator startet und Sie können sofort beginnen Ihre eigene Konfigurationen zu erstellen. Die Bedienoberfläche ist recht einfach und selbsterklärend gestaltet. Im oberen Bereich befindet sich eine Suchbox. Die Verwendung ist insbesondere bei sehr großen Dateien sehr nützlich.
Unter der Suchbox befindet sich die Tabelle mit den Einträgen der Variablen. Wenn eine Konfiguration neu erstellt wird, ist die Tabelle anfangs selbstverständlich leer.
Heimdall richtet sich an Programmierer bzw. Entwickler eigener Makros / Extensions. Die eigentliche Konfiguration läuft im eigenen Code ab. Die Stärke von Heimdall ist in der API beschrieben.
Der interne Dialog dient lediglich zur Unterstützung beim Erstellen oder bearbeiten eigener Konfigurationsdateien. Er ist letztendlich nichts anderes als ein Texteditor. Man kann die Dateien auch mit notepad erstellen, allerdings kümmert sich Heimdall um die richtige Codierung der Dateien.
Wie oben geschrieben ist die Bedienung recht einfach und selbsterklärend. Um eine Variable zu entfernen oder zu ändern, muss der Eintrag in der Tabelle ausgewählt sein. Der Button "Neu" fügt eine Variable ein.
Die eigentliche Stärke von Heimdall liegt beim Resolver. Der Resolver verwaltet reservierte Wörter und Texte die vom Endanwender, dem Entwickler einer Extension, in das eigene Makro eingebunden werden können. Reservierte Texte werden in der Regel für die Ausgabe in MessageBoxen und Dialogen verwendet. Das können Exceptions, Eingabeaufforderungen oder ähnliches sein.
Sobald der Resolver startet, wird die mitgelieferte Datei constants.goc geladen. Anschließend ermittelt Heimdall die aktiv laufende Lokale Spracheinstellung von Libre Office, und aktualisiert die Texte und Substitutionsvariablen aus den Sprachpaketen constants.xx .Die Dateierweiterung xx wird durch die jeweiligen Länderkürzel ersetzt. Sollte das Sprachpaket nicht gefunden werden, bleibt Englisch als Standardsprache erhalten.
Im Grunde sind alle Variablen Substitiontionsvariablen. Heimdall verarbeitet diese intern allerdings unterschiedlich.Heimdall unterscheidet zwischen:
Bei den reservierten Wörter handelt es sich um Substitutionsvariablen die intern von Heimdall verarbeitet werden. Die entsprechenden Platzhalter werden automatisch in den reservierten Texten substituiert. Die reservierten Wörter können vom Entwickler manipuliert werden.
Zum besseren Verständnis ist folgendes Beispiel gedacht:
Sub Example_Resolver1
Dim oCfG As Object
Dim oRes As Object
oCfG= CreateHeimdallConfigurator
oRes = oCfG.getResolver()
oRes.setLanguage("en")
oRes.execute()
msgbox oRes.getrestext("GO_COMMON_5")
End Sub
Als Ergebnis wird folgender Inhalt in der MsgBox angezeigt. Der Text enthält den Platzhalter für das reservierte Wort AppName. Der Platzhalter kann nun zur Laufzeit durch den Namen Ihrer Extension, Makro oder App ersetzt werden.
getObject.de
getObject.de
Sub Example_Resolver2
Dim oCfG As Object
Dim oRes As Object
oCfG= CreateHeimdallConfigurator
oRes = oCfG.getResolver()
oRes.setLanguage("en")
oRes.execute()
oRes.setResword("AppName", "myMakroName")
msgbox oRes.getrestext("GO_COMMON_5")
End Sub
Die Anzahl der reserviertenWörter ist recht übersichtlich. Die folgende Tabelle listet die reservierten Wörter auf.
Übersicht reservierte Wörter | |
AppName | <&AppName> |
Autor | <&Autor> |
Version | <&Version> |
Extension | <&Extension> |
Website | <&Website> |
Email | <&Email> |
Supportemail | <&Supportemail> |
Company | <&Company> |
LiboVers | <&LiboVers> |
Title | <&Title> |
Local | <&Loacal> |
Wesentlich eleganter als die Variablen zur Laufzeit zu ändern,ist es, die reservierten Wörter schon bei der Konfiguration seiner Extension direkt zu laden. Das ist auch möglich, in dem man die Variablen in der eigenen Konfigurationsdatei bereits initialisiert
.
Heimdall erkennt die Variablen und setzt den Text automatisch.
Neben den reservierten Wörtern gibt es noch weitere Substitutionsvariablen. In der Regel werden diese Variablen zur Beschriftung von Kontrollelementen in Dialogen und Formularen verwendet. Man kann diese Elemente aber auch in den eigenen Texten verwenden. Zum Beispiel, wenn Sie selbst eine mehrsprachige Extension oder Makro anbieten möchten.
Um die Übersetzung in die lokale Sprache brauchen Sie sich nicht zu kümmern, das übernimmt Heimdall für Sie.
Bei der Version 1.0.0 sind die folgenden Substitutionsvariablen mit ausgeliefert worden.
[LANG_EN]
&(further) = Further
&(forward) =Forward
&(cancel) =Cancel
&(end) = End
&(add) = Add
&(remove) = Remove
&(delete) = Delete
&(new) = New
&(save_as) = Save as
&(save) = Save
&(help) = Help
&(window) = Window
&(column) = Column
&(row) = Row
&(change) = Change
&(menu) = Menu
&(edit) = Edit
&(view) = View
&(execute) = Execute
&(dialog) = Dialog
&(extras) = Extras
&(search) = Search
&(load) = Load
&(name) = Name
&(value) = Value
&(info) = Info
&(close) = Close
&(reserved) = Reserved
&(website) = Website
&(local) = Language setting
[LANG_DE]
&(further) = Weiter
&(forward) = Vorwärts
&(cancel) = Abbruch
&(end) = Ende
&(add) = Hinzufügen
&(remove) = Entfernen
&(delete) = Löschen
&(new) = Neu
&(save_as) = Speichern als
&(save) = Speichern
&(help) = Hilfe
&(window) = Fenster
&(column) = Spalte
&(row) = Zeile
&(change) = Ändern
&(menu) = Menü
&(edit) = Bearbeiten
&(view) = Ansicht
&(execute) = Ausführen
&(dialog) = Dialog
&(extras) = Extras
&(search) = Suchen
&(load) = Laden
&(close) = Schließen
Ab der Version 1.1.0 wird französisch mit ausgeliefert.
[LANG_FR]
&(further) = Plus loin
&(forward) = Avant
&(cancel) = Annuler
&(end) = Fin
&(add) = Ajouter
&(remove) = Retirer
&(delete) = Supprimer
&(new) = Nouveau
&(save_as) = Enregistrer sous
&(save) = Sauvegarder
&(help) = Aider
&(window) = Fenêtre
&(column) = Colonne
&(row) = Ligne
&(change) = Changement
&(menu) = Menu
&(edit) = Modifier
&(view) = Voir
&(execute) = Exécuter
&(dialog) = Dialogue
&(extras) = Suppléments
&(search) = Recherche
&(load) = Charger
&(name) = Nom
&(value) = Valeur
&(info) = Info
&(close) = Fermer
&(reserved) = Réservé
&(website) = Site Internet
&(local) = Paramètres de langue
Bei den Phrasen / Texten handelt es sich um komplette Sätze, die direkt an die MsgBox übergen werden können. Auch hier übernimmt Heimdall die Übersetzung. Die Texte enthalten zum Teil Platzhalter für reservierte Wörter.
Es gibt zwei Grundfunktionen die der Resolver unterstützt.
Mit der Funktion
oResolver.getSusbstitutionsValue(ValueName ) können Sie jede beliebige Variable abrufen.In diesem Fall erfolgt keine automatische Substitution der reservierten Wörter.
oResolver.GetResText(ValueName ) erfolgt eine automatische Substitution der reservierten Wörter.
[EN]
GO_COMMON_1 | <&Title> : <&AppName>, Version : <&Version>,Autor : <&Autor>, &(local) : <&Local> |
GO_COMMON_2 | An exceptional error has occurred.<br>The Extension<&Productname> requires a higher version of Libre Office than <&Version>. Please download the current version. |
GO_COMMON_3 | If you need support, write to <&Supportemail>! |
GO_COMMON_4 | <&AppName> is provided by <&Website> |
GO_COMMON_5 | Warning: <&AppName> was not terminated correctly. Theprogram can try to restore the old values. |
GO_COMMON_6 | You have not yet saved your data.<br>Do you want to exitwithout saving? |
GO_COMMON_7 | Saving is not possible. You must first select a file |
[DE]
GO_COMMON_4 | <&AppName> wird zur Verfügung gestellt von <&Website>. |
GO_COMMON_5 | Achtung: <&AppName> wurde nicht korrekt beendet. Das Programm kann versuchen die alten Werte wieder herzustellen. |
GO_COMMON_6 | Sie haben Ihre Daten noch nicht gespeichert.<br>Möchten Sie beenden ohne zu speichern? |
GO_COMMON_7 | Ein speichern ist nicht möglich. Sie müßen zuerst eine Datei auswählen. |
[FR] ab Version 1.1.0
GO_COMMON_4 | <&AppName> est fourni par <&Website>. |
GO_COMMON_5 | Avertissement: <&AppName> n'a pas été terminé correctement. Le programme peut essayer de restaurer les anciennes valeurs. |
GO_COMMON_6 | Vous n'avez pas encore enregistré vos données.<br>Voulez-vous quitter sans enregistrer? |
GO_COMMON_7 | La sauvegarde n'est pas possible. Vous devez d'abord sélectionner un fichier. |
GO_COMMON_3 | Si vous avez besoin d'aide, écrivez à <&Supportemail>! |
GO_COMMON_2 | Une erreur exceptionnelle s'est produite.<br>L'extension <&Productname> nécessite une version de Libre Office supérieure à <&Version>. Veuillez télécharger la version actuelle. |
In der Version 1.0.0 hat sich ein kleiner Fehler eingeschlichen. Die Variable active_lang wurde während der Entwicklungsphase zu Testzwecken gesetzt. Die Variable wurde bei der Auslieferung nicht gelöscht. Standardmäßig wird nun bei jedem Start eines jeden Users die Sprache DE geladen. Das sollte natürlich nicht so sein.
'*************************************************************
'* Configurator Heimdall 1.0.0 by www.getobject.de
'* Create : 01.04.2023
'* Autor : Andreas Gronemeyer
'* Fuer Auftragsprogrammierung wenden Sie sich an
'* info@getobject.de
'*************************************************************
Autor=AndreasGronemeyer
AppName=Heimdall
Extension=goConfig
Minimalversion=6.2
Website=www.getobject.de
Email=info@getobject.de
Supportemail=support@getobject.de
Count=28
HEIMDALL_ADD1=51IA4hT6jrL._SL160_.jpg;https://amzn.to/3K7kbJy;ThePragmatic Programmer
HEIMDALL_ADD2=518LhMrZ0hL._SL160_.jpg;https://amzn.to/3K4W3HE;Einstiegin Visual Basic
HEIMDALL_ADD3=51t1deO0WjL._SL160_.jpg;https://amzn.to/3z6NKEQ;LibreOffice 7.x
HEIMDALL_ADD4=SedWalgDE.jpg;https://amzn.to/3ZePW7V;RobertSedgwick - Algorithmen
HEIMDALL_ADD5=SedWalgEN.jpg;https://amzn.to/3LeIrdJ;RobertSedgewick - Algorithmen
[DE]
DE_Title=DerKonfigurator
DE_Shortdescription=Heimdallist ein leicht zu bedienender Konfigurator für Extensions. DerKonfigurator ist Multisprachfähig.
DE_Description=
[EN]
EN_Title=TheConfigurator
EN_Shortdescription=Heimdallis an easy-to-use extension configurator. The configurator ismultilingual.
EN_Description=
Version=1.0.0
addscount=5
imageurl=%origin%%dirsep%image
configurl=%origin%%dirsep%config
std_lang=en
install_lang=en,de
active_lang=de