Benutzer:M.koehn: Unterschied zwischen den Versionen

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „==Sonderrecht für Gruppen erstellen== In der Anleitung werden exemplarisch 2 Sonderrechte für das Testmodul (siehe Einbinden eigener Module) erstellt. <u…“)
 
Zeile 28: Zeile 28:
 
==Übersetzungsdatei für die deutsche Sprache erstellen und verwenden==
 
==Übersetzungsdatei für die deutsche Sprache erstellen und verwenden==
 
Bei der Entwicklung sollten alle zur Ausgabe gebrachten Texte in Englisch programmiert werden.
 
Bei der Entwicklung sollten alle zur Ausgabe gebrachten Texte in Englisch programmiert werden.
Für die deutschen Übersetzungen erstellt man eine Übersetzungsdatei.
+
Für die deutschen Übersetzungen erstellt man eine Übersetzungsdatei.<br>
 +
Allgemeine Syntax ist.<br>
 +
<tt>msgid  "Suchtext"</tt><br>
 +
<tt>msgstr "Ersetzungstext"</tt><br>
 
Zwei Möglichkeiten der Definition stehen zur Wahl.
 
Zwei Möglichkeiten der Definition stehen zur Wahl.
 
<rootpre>mcedit /opt/iserv/user/locale/de/test.po</rootpre>
 
<rootpre>mcedit /opt/iserv/user/locale/de/test.po</rootpre>
Zeile 35: Zeile 38:
 
msgstr "Verwaltung des Testmoduls"
 
msgstr "Verwaltung des Testmoduls"
 
msgid  "Extended View - show all details"
 
msgid  "Extended View - show all details"
msgstr ":Erweitere Ansicht - zeige alle Details"
+
msgstr "Erweitere Ansicht - zeige alle Details"
 
</filepre>
 
</filepre>
 
{{Hinweis|Falls in einer der Übersetzungsdateien schon die Übersetzung existiert kommt es zu einem Fehler der das Duplikat meldet. Dies kann man beheben in dem man das Duplikat aus der eigenen Definition löscht oder wie nachfolgend gezeigt anpasst.}}
 
{{Hinweis|Falls in einer der Übersetzungsdateien schon die Übersetzung existiert kommt es zu einem Fehler der das Duplikat meldet. Dies kann man beheben in dem man das Duplikat aus der eigenen Definition löscht oder wie nachfolgend gezeigt anpasst.}}

Version vom 19. April 2012, 13:50 Uhr

Sonderrecht für Gruppen erstellen

In der Anleitung werden exemplarisch 2 Sonderrechte für das Testmodul (siehe Einbinden eigener Module) erstellt.

  • Verwaltung des Testmoduls
  • Erweitere Ansicht - zeige alle Details
root
mcedit /usr/share/iserv/priv/test

In dieser Datei werden die Sonderrechte wie folgt definiert:

datei
test_manage:
module       Testmodul
description  Manage Testmodul
assign       admins

test_extendedview:
module       Testmodul
description  Extended View - show all details
assign       admins,testgruppe
test_manage:interner Name des Sonderechts im Programmcode
moduleangezeigter Name des Moduls für dass das Recht verwendet wird
descriptionangezeigter Name des Sonderechts
assignSonderecht als Standard für die Gruppe(n) / kann man auch leerlassen wenn man keine Vorauswahl will

Übersetzungsdatei für die deutsche Sprache erstellen und verwenden

Bei der Entwicklung sollten alle zur Ausgabe gebrachten Texte in Englisch programmiert werden. Für die deutschen Übersetzungen erstellt man eine Übersetzungsdatei.
Allgemeine Syntax ist.
msgid "Suchtext"
msgstr "Ersetzungstext"
Zwei Möglichkeiten der Definition stehen zur Wahl.

root
mcedit /opt/iserv/user/locale/de/test.po
datei
msgid  "Manage Testmodul"
msgstr "Verwaltung des Testmoduls"
msgid  "Extended View - show all details"
msgstr "Erweitere Ansicht - zeige alle Details"
Information Falls in einer der Übersetzungsdateien schon die Übersetzung existiert kommt es zu einem Fehler der das Duplikat meldet. Dies kann man beheben in dem man das Duplikat aus der eigenen Definition löscht oder wie nachfolgend gezeigt anpasst.
datei
msgid  "test:Manage Testmodul"
msgstr "test:Verwaltung des Testmoduls"
msgid  "test:Extended View - show all details"
msgstr "test:Erweitere Ansicht - zeige alle Details"

Folgender Aufruf erneuert die Definition.

root
/opt/iserv/sbin/chklocale

Der Aufruf kann mit der Funktion _() oder _c() erfolgen. Die Ausgabe der _c()-Funktion bibt nur die Zeichenkette nach dem Doppelpunkt zurück. Sollten die Funktionen keine Übersetzung finden wird der als Parameter übergebene Text zurückgegeben.

datei
<?
echo _("Manage");                 //Version 1 "Verwaltung" wird aus einer der IServ-Dateien gelesen
echo _("Manage Testmodul");       //Version 1 "Verwaltung des Testmoduls"
echo _c("test:Manage Testmodul"); //Version 2 "Verwaltung des Testmoduls"
?>

Sonderrecht für Gruppen abfragen

Die Abfrage des Sonderrechts erfolgt mit der Funktion secure_privilege("NameDesSonderechts"). Exemplarisch hier den Einbau in die Navigation.

root
mcedit /usr/share/iserv/www/nav/info/main/05test.mod
datei
if (secure_privilege("test_manage"))
  TreeNode(_c("test_manage:Manage Testmodul"), "info/test/manage.php", "manage");
elseif (secure_privilege("test_extendedview"))
  TreeNode(_c("test_manage:Extended View - show all details"), "info/test/eview.php", "dlg-info");
else
  TreeNode(_c("test:Testmodul"), "info/test/index.php", "new");   
Information Die Überprüfung der Sonderrechte sollte auch in den aufgerufenen Dateien(manage.php;eview.php) erfolgen!