- Mitglied seit
- 04. Sep 2008
- Beiträge
- 2.341
- Punkte für Reaktionen
- 14
- Punkte
- 84
Ich zeige euch hier am Beispiel vom DDNS updater wie man leicht seine eigene Hilfe in die DSM 3 Hilfe integriert.
Als erstes überlegen wir uns den strukturellen Aufbau unserer Hilfe, welche Baumstruktur wir benötigen und was dort hinein soll.
Und schon gehts los...
1. Voraussetzungen
2. JSON Konfiguration (helptoc.conf) erstellen
Die Datei befindet sich im Anwendungsverzeichnis und enhält die Hilfekonfiguration. Der Indexer bekommt diese automatisch durch das DSM Paketmanagement bei der Installation, Aktualisierung und Deinstallation per Kommandozeile übergeben.
Wir erstellen uns eine Datei "helptoc.conf" im root Verzeichnis unserer Anwendung und gestalten den Inhalt entsprechend unserer zuvor überlegten Baumstruktur.
Stellt euch den Hilfebaum als eine Verzeichnisstruktur vor, die nodes wären dort die Verzeichnisse. Jeder nodes Eintrag enthält title und contents Einträge und kann weitere nodes Einträge beinhalten.
Die blau:rot hervorgehobenen Texte sind Abschnitt:Variablen, die der Indexer beim Erstellen/Ändern der Indiezes mit den Texten der entsprechenden Sprache ersetzt (siehe 2. Sprachdateien (strings) erstellen).
Achtet beim Schreiben der Datei darauf, das für jede { auch eine } existiert. Das gleiche gilt für die []. Der Indexer ist da sehr empfindlich und quittiert den Aufruf dann mit einem "Failed to load".
Erklärung der Schlüsselwörter:
app: Name der Applikation, bei 3rdparty Apps immer SYNO.SDS._ThirdParty.App. + Paketname (Name wie er in der Datei INFO hinter "package=" steht)
title: Der Titel eines Eintrags/Zweiges
toc: Hier beginnt der Inhalt des Hilfebaumes (Table of Contents)
content: Inhalt, Pfad zur HTML-Datei, relativ zum Verzeichnis /usr/syno/synoman/webman/help/<Sprachkürzel>.
nodes: Beginn eines Zweiges im Hilfebaum
Fassen wir zusammen:
3. Sprachdateien (strings) erstellen
Die Texte befinden sich in einer Datei "strings" im Verzeichnis /usr/syno/synoman/webman/texts. In diesem Verzeichnis existiert für jede Sprache ein Unterverzeichnis, in dem dann eine Datei "strings" mit den Texten liegt. Beispiel für deutsch: /usr/syno/synoman/webman/texts/ger/strings
Damit wir die Original Dateien nicht für unsere Zwecke anpassen müssen und Synology dies mit grosser Wahrscheinlichkeit nicht für 3rdparty Anwendungen vorgesehen hat, habe ich einen kleine Modifikation geschrieben, die den Indexer so modifiziert, dass er auch mit Dateien von anderen Orten zurecht kommt (siehe Init_3rdpartyHelp_1.0.spk). Der Indexer wird nur beim Hinzufügen/Aktualisieren/Entfernen vom Hilfeindex benötigt.
Der Aufbau einer strings-Datei sieht folgendermaßen aus:
Der Text [helptoc] bezeichnet einen Abschnitt. Es können beliebig viele Abschnitte innerhalb der Datei definiert werden, die Bezeichnung [helptoc] habe ich nur als Referenz zur Synology Datei beibehalten. Es kann auch jeder andere Bezeichner benutzt werden, achtet aber darauf, dass der Bezeichner dem Teil der Variablen im Baum entspricht, der vor dem : steht.
Erstellt nun ein Verzeichnis "help", danach in diesem Ordner für jede unterstützte Sprache ein neues Verzeichnis (siehe Sprachkürzeltabelle), in der sich dann die Datei "strings" befindet. Beispiel: help/ger/strings
In der Datei "strings" müssen dann zu allen Platzhalter/Variablen aus dem obigen Beispiel die passenden Texte in der gewünschten Sprache enthalten sein. Findet der Indexer beim Erzeugen/Ändern keinen passenden Text, wird "null" an diese Stelle geschrieben, was dann einem nicht vorhandenen Text entspricht.
Sprachkürzeltabelle:
ger = german
enu = english US
chs = chinese simplified
csy = czech
jpn = japanese
krn = korean (Danke Matthieu)
dan = danish
fre = french
ita = italian
nld = dutch
nor = norwegian
plk = polish
rus = russian
spn = spanish
sve = swedish
hun = hungarian
trk = turkish
ptg = portuguese european
Fassen wir zusammen:
Als erstes überlegen wir uns den strukturellen Aufbau unserer Hilfe, welche Baumstruktur wir benötigen und was dort hinein soll.
Und schon gehts los...
1. Voraussetzungen
- installiertes Paket Init_3rdpartyHelp_1.0.spk
- HTML-Kenntnisse
2. JSON Konfiguration (helptoc.conf) erstellen
Die Datei befindet sich im Anwendungsverzeichnis und enhält die Hilfekonfiguration. Der Indexer bekommt diese automatisch durch das DSM Paketmanagement bei der Installation, Aktualisierung und Deinstallation per Kommandozeile übergeben.
Rich (BBCode):
{
"app": "SYNO.SDS._ThirdParty.App.ddnsupdater",
"title": "DDNS updater",
"content": "DDNSupdater/ddnsupdater_desc.html",
"toc": [{
"title": "helptoc:ddnsupdater_use",
"content": "DDNSupdater/ddnsupdater_use.html",
"nodes": [{
"title": "helptoc:ddnsupdater_add",
"content": "DDNSupdater/ddnsupdater_add.html"
}, {
"title": "helptoc:ddnsupdater_edit",
"content": "DDNSupdater/ddnsupdater_edit.html"
}, {
"title": "helptoc:ddnsupdater_del",
"content": "DDNSupdater/ddnsupdater_del.html"
}, {
"title": "helptoc:ddnsupdater_customprovider",
"content": "DDNSupdater/ddnsupdater_customprovider.html"
}]
}, {
"title": "helptoc:ddnsupdater_options",
"content": "DDNSupdater/ddnsupdater_options.html",
"nodes": [{
"title": "helptoc:ddnsupdater_interval",
"content": "DDNSupdater/ddnsupdater_interval.html"
}, {
"title": "helptoc:ddnsupdater_forceupdate",
"content": "DDNSupdater/ddnsupdater_forceupdate.html"
}, {
"title": "helptoc:ddnsupdater_ssl",
"content": "DDNSupdater/ddnsupdater_ssl.html"
}, {
"title": "helptoc:ddnsupdater_desktop",
"content": "DDNSupdater/ddnsupdater_desktop.html"
}, {
"title": "helptoc:ddnsupdater_offlineip",
"content": "DDNSupdater/ddnsupdater_offlineip.html"
}, {
"title": "helptoc:ddnsupdater_offlinescript",
"content": "DDNSupdater/ddnsupdater_offlinescript.html"
}]
}, {
"title": "helptoc:ddnsupdater_provider",
"content": "DDNSupdater/ddnsupdater_provider.html"
}]
}
Stellt euch den Hilfebaum als eine Verzeichnisstruktur vor, die nodes wären dort die Verzeichnisse. Jeder nodes Eintrag enthält title und contents Einträge und kann weitere nodes Einträge beinhalten.
Die blau:rot hervorgehobenen Texte sind Abschnitt:Variablen, die der Indexer beim Erstellen/Ändern der Indiezes mit den Texten der entsprechenden Sprache ersetzt (siehe 2. Sprachdateien (strings) erstellen).
Achtet beim Schreiben der Datei darauf, das für jede { auch eine } existiert. Das gleiche gilt für die []. Der Indexer ist da sehr empfindlich und quittiert den Aufruf dann mit einem "Failed to load".
Erklärung der Schlüsselwörter:
app: Name der Applikation, bei 3rdparty Apps immer SYNO.SDS._ThirdParty.App. + Paketname (Name wie er in der Datei INFO hinter "package=" steht)
title: Der Titel eines Eintrags/Zweiges
toc: Hier beginnt der Inhalt des Hilfebaumes (Table of Contents)
content: Inhalt, Pfad zur HTML-Datei, relativ zum Verzeichnis /usr/syno/synoman/webman/help/<Sprachkürzel>.
nodes: Beginn eines Zweiges im Hilfebaum
Fassen wir zusammen:
- Datei "helptoc.conf" im Anwendungsverzeichnis erstellen
- Inhalt entsprechend unserer zuvor überlegten Baumstruktur erzeugen
3. Sprachdateien (strings) erstellen
Die Texte befinden sich in einer Datei "strings" im Verzeichnis /usr/syno/synoman/webman/texts. In diesem Verzeichnis existiert für jede Sprache ein Unterverzeichnis, in dem dann eine Datei "strings" mit den Texten liegt. Beispiel für deutsch: /usr/syno/synoman/webman/texts/ger/strings
Damit wir die Original Dateien nicht für unsere Zwecke anpassen müssen und Synology dies mit grosser Wahrscheinlichkeit nicht für 3rdparty Anwendungen vorgesehen hat, habe ich einen kleine Modifikation geschrieben, die den Indexer so modifiziert, dass er auch mit Dateien von anderen Orten zurecht kommt (siehe Init_3rdpartyHelp_1.0.spk). Der Indexer wird nur beim Hinzufügen/Aktualisieren/Entfernen vom Hilfeindex benötigt.
Der Aufbau einer strings-Datei sieht folgendermaßen aus:
Rich (BBCode):
[helptoc]
ddnsupdater_use = "Einträge verwalten"
ddnsupdater_add = "Hinzufügen"
ddnsupdater_edit = "Bearbeiten"
ddnsupdater_del = "Löschen"
ddnsupdater_customprovider = "Selbsterstellte Anbieter"
ddnsupdater_options = "Einstellungen"
ddnsupdater_interval = "Überprüfungsintervall"
ddnsupdater_forceupdate = "Erzwingen der Aktualisierung"
ddnsupdater_ssl = "SSL-Verbindung"
ddnsupdater_desktop = "Desktopsymbol"
ddnsupdater_offlineip = "Offline IP"
ddnsupdater_offlinescript = "Offline Skript"
ddnsupdater_provider = "Unterstützte Anbieter"
Erstellt nun ein Verzeichnis "help", danach in diesem Ordner für jede unterstützte Sprache ein neues Verzeichnis (siehe Sprachkürzeltabelle), in der sich dann die Datei "strings" befindet. Beispiel: help/ger/strings
In der Datei "strings" müssen dann zu allen Platzhalter/Variablen aus dem obigen Beispiel die passenden Texte in der gewünschten Sprache enthalten sein. Findet der Indexer beim Erzeugen/Ändern keinen passenden Text, wird "null" an diese Stelle geschrieben, was dann einem nicht vorhandenen Text entspricht.
Sprachkürzeltabelle:
ger = german
enu = english US
chs = chinese simplified
csy = czech
jpn = japanese
krn = korean (Danke Matthieu)
dan = danish
fre = french
ita = italian
nld = dutch
nor = norwegian
plk = polish
rus = russian
spn = spanish
sve = swedish
hun = hungarian
trk = turkish
ptg = portuguese european
Fassen wir zusammen:
- Verzeichnis "help" im Anwendungsverzeichnis erstellen
- für jede zu unterstützende Sprache ein Verzeichnis unterhalb vom Ordner "help" erstellen (siehe Sprachkürzeltabelle)
- Datei "strings" mit Texten zu allen Platzhalter/Variablen, entsprechend dem definiertem Baum, in der gewünschten Sprache erzeugen
Zuletzt bearbeitet: