Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule/Kundenindividuelle Beziehungsbezeichnungen: Unterschied zwischen den Versionen
(Beginn ab Überschriftebene 2) |
K (Bot: WT-Anwendungsnamen durch Vorlage ersetzen) |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
=== Benutzerdefinierte Beziehungen === | === Benutzerdefinierte Beziehungen === | ||
Der Beziehungs-Deskriptor '''RELA''', der im Beziehungs-Merkmal ('''ASSO''', Beziehung zu einer Person) verwendet wird, soll basierend auf dem GEDCOM 5.5.1 Datei-Format Freitext sein. | Der Beziehungs-Deskriptor '''RELA''', der im Beziehungs-Merkmal ('''ASSO''', Beziehung zu einer Person) verwendet wird, soll basierend auf dem GEDCOM 5.5.1 Datei-Format Freitext sein. {{WT-Name}} unterstützt jedoch nur eine Auswahlliste von Beziehungen, die im Source-Code fest hinterlegt ist. Daher muss man tatsächlich den zugrunde liegenden PHP Code ändern, um eine Beziehung, die nicht in der Liste vordefiniert ist, hinzuzufügen. Glücklicherweise ist dies recht einfach, auch wenn Sie keinen Programmierer sind, solange Sie Zugriff auf Ihre Installation und die zugehörigen Quelldateien haben. Möglicherweise müssen Sie auch die '''Sprach'''-Dateien bearbeiten, um die neu hinzugefügten '''Beziehungen''' in anderen Sprachen zu unterstützen. | ||
Siehe Allgemeine_Leitlinien für einige Hinweise zum Anpassen von | Siehe Allgemeine_Leitlinien für einige Hinweise zum Anpassen von {{WT-Name}} bei der Änderung des Quellcodes. Insbesondere können Ihre Änderungen von zukünftigen Updates überschrieben oder nicht in der gleichen Weise in zukünftigen Versionen unterstützt werden, je nachdem wie sich der Code entwickelt. In der Tat hat {{WT-Name}} nach der Abspaltung von der Original '''PHPGedView''' Code-Basis die Unterstützung für Kontext-sensitive Geschlechts-Bezeichnungen bei '''Beziehungen''' hinzugefügt. Das hat vorangegangene Änderungen überflüssig gemacht und erforderte, wieder welche einzuprogrammieren. Siehe auch Benutzerdefinierte_Merkmale für mehr Warnungen und eine allgemeine Übersicht. Die Methode, wie Sie ein benutzerdefiniertes Merkmal hinzufügen, ist sehr ähnlich dazu, wie Sie eine Beziehung hinzufügen. Aber im Gegensatz zu benutzerdefinierten Merkmalen werden zusätzliche Beziehungen gefördert und vom Standard erlaubt. Es ist nur diese Programm-Implementierung, die sie einschränkt. | ||
Wenn Sie denken, dass Ihre Anpassungen zum Systemkern gehören, sollten Sie das im Forum besprechen. | Wenn Sie denken, dass Ihre Anpassungen zum Systemkern gehören, sollten Sie das im Forum besprechen. | ||
Zeile 41: | Zeile 41: | ||
===== Rela.php getValue() Funktion bearbeiten ===== | ===== Rela.php getValue() Funktion bearbeiten ===== | ||
{{WT-Name}} ist in U.S. Englisch geschrieben und verwendet U.S. Englisch intern. Also wird Text, der für Benutzer sichtbar sein soll, standardmäßig auf Basis der englischen Version kodiert. {{WT-Name}} unterstützt viele Sprachen, einige mit kontext-abhängigen Geschlechter-Abhängigkeiten. Also den Text für das '''ASSO'''ciate (Partner) Merkmal '''RELA'''tionships (Beziehungen) zu definieren, ist ein wenig komplizierter, als wahrscheinlich zuerst vermutet. Daher sehen Sie einige der Geschlechter switch-case-Anweisungen in der Code-Basis mit einigen Beziehungs-Namen. | |||
Die '''getValue()'''-Funktion ist einfach eine große switch-case-Anweisung. Betrachten Sie es als eine "Auswahl". Bei Eingabe eines Matrix-Eintrags oder Code-Werts erzeugt sie einen Aufruf einer Text-Übersetzungs-Funktion für diesen Wert. Wenn Sie einen Eintrag in die Matrix oben hinzufügen, müssen Sie also einen '''case'''-Einstiegspunkt in die '''switch'''-Anweisung hinzufügen. | Die '''getValue()'''-Funktion ist einfach eine große switch-case-Anweisung. Betrachten Sie es als eine "Auswahl". Bei Eingabe eines Matrix-Eintrags oder Code-Werts erzeugt sie einen Aufruf einer Text-Übersetzungs-Funktion für diesen Wert. Wenn Sie einen Eintrag in die Matrix oben hinzufügen, müssen Sie also einen '''case'''-Einstiegspunkt in die '''switch'''-Anweisung hinzufügen. | ||
Zeile 61: | Zeile 61: | ||
Der Aufruf der Funktion '''WT_I18N::translate()''' führt zur Sprach-Übersetzung und sucht das passende Wort in der Sprachdatei. Eine Variante des Aufrufs führt das Geschlecht als ersten Parameter. | Der Aufruf der Funktion '''WT_I18N::translate()''' führt zur Sprach-Übersetzung und sucht das passende Wort in der Sprachdatei. Eine Variante des Aufrufs führt das Geschlecht als ersten Parameter. | ||
Beachten Sie, dass der Parameter innerhalb der Klammern die englische Form der Beziehung darstellt und nicht den Codewert, der in der vorangehenden case-Anweisung verwendet wird. Deshalb werden innerhalb der einfachen Anführungszeichen auch Leerzeichen und Groß- und Kleinschreibung akzeptiert. Die Code-Namen in der Matrix werden ausschließlich innerhalb der PHP-Code switch-Anweisung verwendet, um die Matrix zu indizieren. Der Name, der an die '''WT_I18N::translate()'''-Funktion übergeben wird, ist die englische Grundform, die benutzt wird, um die Sprachdateien und die übersetzte Version zu finden. Es ist nur diese letztere Form, die Sie in der Benutzeroberfläche von | Beachten Sie, dass der Parameter innerhalb der Klammern die englische Form der Beziehung darstellt und nicht den Codewert, der in der vorangehenden case-Anweisung verwendet wird. Deshalb werden innerhalb der einfachen Anführungszeichen auch Leerzeichen und Groß- und Kleinschreibung akzeptiert. Die Code-Namen in der Matrix werden ausschließlich innerhalb der PHP-Code switch-Anweisung verwendet, um die Matrix zu indizieren. Der Name, der an die '''WT_I18N::translate()'''-Funktion übergeben wird, ist die englische Grundform, die benutzt wird, um die Sprachdateien und die übersetzte Version zu finden. Es ist nur diese letztere Form, die Sie in der Benutzeroberfläche von {{WT-Name}} oder in der GEDCOM-Datei-Ausgabe sehen werden. | ||
==== Lokale Sprachdateien anpassen ==== | ==== Lokale Sprachdateien anpassen ==== | ||
Zeile 74: | Zeile 74: | ||
Der GEDCOM 5.5.1 Standard definiert '''ASSO'''ciate als Merkmal der Stufe 1, das nur in einem Personen Datensatz (oberste Ebene) verfügbar ist. Es soll eine Person mit einer anderen Person direkt verbinden. Tatsächlich kennt das '''ASSO'''ciate Merkmal die '''Xref_ID''' einer Person ('''INDI''') als Parameter. Dies ist ein gangbarer Weg, um Menschen anders als mit dem '''FAMI'''lien-Datensatz zu verknüpfen. | Der GEDCOM 5.5.1 Standard definiert '''ASSO'''ciate als Merkmal der Stufe 1, das nur in einem Personen Datensatz (oberste Ebene) verfügbar ist. Es soll eine Person mit einer anderen Person direkt verbinden. Tatsächlich kennt das '''ASSO'''ciate Merkmal die '''Xref_ID''' einer Person ('''INDI''') als Parameter. Dies ist ein gangbarer Weg, um Menschen anders als mit dem '''FAMI'''lien-Datensatz zu verknüpfen. | ||
Viele Programme, | Viele Programme, {{WT-Name}} eingeschlossen, erlauben das '''ASSO'''ciate Merkmal auch innerhalb von Ereignis-Merkmalen ('''EVEN''') in Personen- ('''INDI''') und '''FAMI'''lien-Datensätzen. Einige sogar innerhalb von Quellen ('''SOUR''') und anderen Top-Level-Datensätzen. Wo immer von {{WT-Name}} erlaubt, wird das '''ASSO'''ciate Merkmal in der entsprechenden GEDCOM-Datei an dieser Stelle gezeigt. Also achten Sie darauf, dass diese Verbindungen außer als Top-Level-Merkmal in einem Personen-Datensatz möglicherweise nicht in andere Programme übernommen werden können, obwohl die Verbindungen in diesem Programm an diesen zusätzlichen Stellen unterstützt werden. | ||
Die Verbindungs-Beschreibung ('''RELA''') innerhalb des '''ASSO'''ciate-Merkmals ist als ein Freitextfeld definiert und nicht als computerlesbarer Name. Obwohl fester Bestandteil im | Die Verbindungs-Beschreibung ('''RELA''') innerhalb des '''ASSO'''ciate-Merkmals ist als ein Freitextfeld definiert und nicht als computerlesbarer Name. Obwohl fester Bestandteil im {{WT-Name}} Code, haben die vordefinierten Namen keine besondere Bedeutung im Programm. Es ist ein reiner Deskriptor, um die Verbindung zu einer anderen Person zu beschreiben. Da es ein Deskriptor ist, wurde die Liste vordefiniert, so dass er für die Schnittstelle in andere Sprachen richtig übersetzt werden kann. | ||
Die häufigste Verwendung des '''ASSO'''ciate Merkmals liegt in traditionellen religiösen Ereignissen wie Taufe, Konfirmation/BarMitzvah/Najote und Hochzeit. Das Merkmal erlaubt es, Paten, Sponsoren und Hochzeitsgäste anzugeben. Vor allem für die Ehe ist die Liste, so wie heute im Programm definiert, für die meisten Traditionen in gängigen Religionen nicht vollständig. Daher muss ergänzt werden, was in einer Beziehung erlaubt ist. | Die häufigste Verwendung des '''ASSO'''ciate Merkmals liegt in traditionellen religiösen Ereignissen wie Taufe, Konfirmation/BarMitzvah/Najote und Hochzeit. Das Merkmal erlaubt es, Paten, Sponsoren und Hochzeitsgäste anzugeben. Vor allem für die Ehe ist die Liste, so wie heute im Programm definiert, für die meisten Traditionen in gängigen Religionen nicht vollständig. Daher muss ergänzt werden, was in einer Beziehung erlaubt ist. | ||
Zeile 82: | Zeile 82: | ||
Beachten Sie, dass '''ASSO'''ciates Verbindungen in einer Richtung sind. Das bedeutet, wenn Sie einen Patenonkel im Tauf-Datensatz eines Kindes (Einzelperson) angeben, gibt es keine Möglichkeit, dies zu erfahren, wenn man etwas anderes als den Kind-Datensatz betrachtet. Sie müssen ein '''ASSO'''ciate Merkmal im Patenonkel-Datensatz (Einzelpersonen) anlegen, um festzulegen, wer das Patenkind ist, damit die Verbindung bidirektional und bei beiden Personen sichtbar wird. | Beachten Sie, dass '''ASSO'''ciates Verbindungen in einer Richtung sind. Das bedeutet, wenn Sie einen Patenonkel im Tauf-Datensatz eines Kindes (Einzelperson) angeben, gibt es keine Möglichkeit, dies zu erfahren, wenn man etwas anderes als den Kind-Datensatz betrachtet. Sie müssen ein '''ASSO'''ciate Merkmal im Patenonkel-Datensatz (Einzelpersonen) anlegen, um festzulegen, wer das Patenkind ist, damit die Verbindung bidirektional und bei beiden Personen sichtbar wird. | ||
Beachten Sie auch, obwohl dies ein alternativer Weg ist, Personen außerhalb der Familie zu verknüpfen, dass die meisten Programme, die GEDCOM's verarbeiten, diesen Link nur für Anzeigezwecke erkennen. Daher kann z.B. das '''Beziehungs'''-Diagramm in | Beachten Sie auch, obwohl dies ein alternativer Weg ist, Personen außerhalb der Familie zu verknüpfen, dass die meisten Programme, die GEDCOM's verarbeiten, diesen Link nur für Anzeigezwecke erkennen. Daher kann z.B. das '''Beziehungs'''-Diagramm in {{WT-Name}} diese Verbindungen nicht verfolgen. Auch das '''Sammelbehälter'''-Werkzeug kann keine verknüpfte Teilmenge Ihrer Datenbank extrahieren. | ||
==== Vorhandene und vorgeschlagene Beziehungs-Werte ==== | ==== Vorhandene und vorgeschlagene Beziehungs-Werte ==== | ||
In | In {{WT-Name}} ist die folgende Liste von Beziehungen ('''RELA''') für das '''ASSO'''ciate Merkmal definiert: | ||
'attendant', 'attending', 'best_man', 'bridesmaid', 'buyer', | 'attendant', 'attending', 'best_man', 'bridesmaid', 'buyer', | ||
'circumciser', 'civil_registrar', 'employee', 'employer', 'foster_child', | 'circumciser', 'civil_registrar', 'employee', 'employer', 'foster_child', | ||
Zeile 95: | Zeile 95: | ||
In der '''PHPGedView''' Code-Basis ist auch noch definiert: | In der '''PHPGedView''' Code-Basis ist auch noch definiert: | ||
'twin', 'twin_brother', and 'twin_sister' | 'twin', 'twin_brother', and 'twin_sister' | ||
{{WT-Name}} erkennt sie jedoch automatisch. Nützliche Beziehungen, die man erwägen könnte, sind beispielsweise: | |||
'flower_girl', 'groomsman', 'maid_of_honor', 'matron_of_honor', 'officiant', 'ring_bearer', 'sponsor', and 'usher' | 'flower_girl', 'groomsman', 'maid_of_honor', 'matron_of_honor', 'officiant', 'ring_bearer', 'sponsor', and 'usher' | ||
Manchmal ist die Beziehung einem Ereignis nicht wirklich zugeordnet, sollte jedoch bei einer Person oder Familie auf oberster Ebene stehen. Dies gilt insbesondere für enge Freunde, die teilweise wichtiger als Blutsverwandte gewesen sein können. In diesem Fall kann man überlegen, Beziehungen hinzufügen wie: | Manchmal ist die Beziehung einem Ereignis nicht wirklich zugeordnet, sollte jedoch bei einer Person oder Familie auf oberster Ebene stehen. Dies gilt insbesondere für enge Freunde, die teilweise wichtiger als Blutsverwandte gewesen sein können. In diesem Fall kann man überlegen, Beziehungen hinzufügen wie: | ||
Zeile 115: | Zeile 115: | ||
* Laden Sie die neueste Version von [https://github.com/hartenthaler/hh_relation_is_descriptor/releases GitHub] herunter. | * Laden Sie die neueste Version von [https://github.com/hartenthaler/hh_relation_is_descriptor/releases GitHub] herunter. | ||
* Entpacken Sie das Erweiterungsmodul in das Verzeichnis <code>/modules_v4/hh_relation_is_descriptor</code> des webtrees-Webservers. Wenn dieses Verzeichnis bereits vorhanden ist, können Sie es einfach überschreiben. | * Entpacken Sie das Erweiterungsmodul in das Verzeichnis <code>/modules_v4/hh_relation_is_descriptor</code> des webtrees-Webservers. Wenn dieses Verzeichnis bereits vorhanden ist, können Sie es einfach überschreiben. | ||
* Melden Sie sich als Administrator bei | * Melden Sie sich als Administrator bei {{WT-Name}} an, gehen Sie zu Systemsteuerung/Module/Personenseite/Reiter und suchen Sie das Modul. Es heißt "xxx". Durch einen Klick auf den Schraubenschlüssel können sie die Einstellungen des Moduls verändern. Überprüfen Sie, ob es ein Häkchen für "Aktiviert" hat. Bearbeiten Sie diesen Eintrag, um die Zugriffsrechte für jeden Stammbaum festzulegen und den Menüpunkt nach ihren Wünschen zu positionieren. | ||
* Klicken Sie abschließend auf "Speichern", um die Konfiguration zu sichern. | * Klicken Sie abschließend auf "Speichern", um die Konfiguration zu sichern. | ||
Zeile 136: | Zeile 136: | ||
== Lizenz == | == Lizenz == | ||
* © 2022 Hermann Hartenthaler | * © 2022 Hermann Hartenthaler | ||
* abgeleitet von | * abgeleitet von {{WT-Name}} - © 2022 webtrees-Entwicklungsteam | ||
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, veröffentlicht von der Free Software Foundation, entweder in Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version, weitergeben und/oder modifizieren. | Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, veröffentlicht von der Free Software Foundation, entweder in Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version, weitergeben und/oder modifizieren. |
Aktuelle Version vom 1. Mai 2023, 00:30 Uhr
- Handbuch-Abschnitt noch im Aufbau
Abschnitt 8.10.1 - Kundenindividuelle Beziehungsbezeichnungen
<- Zu Abschnitt 8.10 - Erweiterungsmodule |
Das Modul ...
Steckbrief
- Modulname: Kundenindividuelle Beziehungsbezeichnungen (hh_relation_is_descriptor)
- Autor: Hermann Hartenthaler
- Passende webtrees-Versionen: 2.1
- Speicherort: GitHub
- Modulkategorie: Personenseite
- Modulfunktion: Reiter "Großfamilie"
Beschreibung
Alles Folgende ist aus dem alten webtrees-Wiki und muss noch bearbeitet werden. |
Benutzerdefinierte Beziehungen
Der Beziehungs-Deskriptor RELA, der im Beziehungs-Merkmal (ASSO, Beziehung zu einer Person) verwendet wird, soll basierend auf dem GEDCOM 5.5.1 Datei-Format Freitext sein. webtrees unterstützt jedoch nur eine Auswahlliste von Beziehungen, die im Source-Code fest hinterlegt ist. Daher muss man tatsächlich den zugrunde liegenden PHP Code ändern, um eine Beziehung, die nicht in der Liste vordefiniert ist, hinzuzufügen. Glücklicherweise ist dies recht einfach, auch wenn Sie keinen Programmierer sind, solange Sie Zugriff auf Ihre Installation und die zugehörigen Quelldateien haben. Möglicherweise müssen Sie auch die Sprach-Dateien bearbeiten, um die neu hinzugefügten Beziehungen in anderen Sprachen zu unterstützen.
Siehe Allgemeine_Leitlinien für einige Hinweise zum Anpassen von webtrees bei der Änderung des Quellcodes. Insbesondere können Ihre Änderungen von zukünftigen Updates überschrieben oder nicht in der gleichen Weise in zukünftigen Versionen unterstützt werden, je nachdem wie sich der Code entwickelt. In der Tat hat webtrees nach der Abspaltung von der Original PHPGedView Code-Basis die Unterstützung für Kontext-sensitive Geschlechts-Bezeichnungen bei Beziehungen hinzugefügt. Das hat vorangegangene Änderungen überflüssig gemacht und erforderte, wieder welche einzuprogrammieren. Siehe auch Benutzerdefinierte_Merkmale für mehr Warnungen und eine allgemeine Übersicht. Die Methode, wie Sie ein benutzerdefiniertes Merkmal hinzufügen, ist sehr ähnlich dazu, wie Sie eine Beziehung hinzufügen. Aber im Gegensatz zu benutzerdefinierten Merkmalen werden zusätzliche Beziehungen gefördert und vom Standard erlaubt. Es ist nur diese Programm-Implementierung, die sie einschränkt.
Wenn Sie denken, dass Ihre Anpassungen zum Systemkern gehören, sollten Sie das im Forum besprechen.
Änderung der Auswahlliste
Dies vorausgeschickt, werden die erforderlichen Änderungen, um die Liste der Beziehungs-Titel in der Auswahlliste anzupassen, in einer separaten Datei gemacht im Baum der Installationsquellen: library/WT/Gedcom/Code/Rela.php. Obwohl es eine PHP Quellcode-Datei ist, hat sie eine klare Struktur, die auch nicht-Programmierer einfach und fehlerfrei ändern können sollten. Es gibt zwei Hauptteile des hier betroffenen Codes. Die $TYPE Matrix-Definition der internen Code-Namen und die Funktion getValue(), die den gespeicherten Code-Namen für die Anzeige oder Ausgabe in Text konvertiert. Beide Bereiche müssen bearbeitet werden, um eine neue Beziehung zu aktivieren.
Rela.php $TYPES Matrix bearbeiten
private static $TYPES=array( .... );
Die Matrix wird definiert als eine Liste von Namen in einfachen Anführungszeichen, die durch Kommas getrennt sind. Da es Codenamen sind, gibt es keine Leerzeichen zwischen den einzelnen Anführungszeichen. Verwenden Sie einen Unterstrich anstelle eines Leerzeichens. Der Konvention folgend sind die Code-Namen an englische Basis-Standard-Namen angelehnt. Während die Einträge nicht in einer bestimmten Reihenfolge vorliegen und die Reihenfolge in der Matrix und der Funktion nicht übereinstimmen müssen, legt ein guter Programmierstil nahe, sie in aufsteigender alphabetischer Reihenfolge zu halten und sie so bei der Durchsicht der Datei leichter zu finden. Es sind lediglich interne Namen, die vom PHP-Quellcode verwendet werden, um die anzuzeigende Sprachversion zu finden. Code-Namen in dieser Matrix unterscheiden Groß- und Kleinschreibung (behalten Sie die gleiche Schreibweise bei allen Vorkommen bei).
Es gibt keine wirkliche Grenze für die Anzahl der durch Kommas getrennten Code-Namen in einer Zeile. Der Konvention folgend sollten Sie Ihre Ergänzungen der Liste in richtiger Reihenfolge jeweils in eine eigene Zeile mit einem nachfolgenden Kommentar eintragen, der angibt, dass Sie den Code eingefügt haben. Also, wenn wir den Code 'sponsor' einfügen würden in der vorhandenen Zeile < 'slave', 'ward', 'witness' > dann würde das vor und nach der Änderung so aussehen:
BEFORE: 'slave', 'ward', 'witness', AFTER: 'slave', 'sponsor', // Added by REH on 10/30/2011 'ward', 'witness',
Der doppelte Schrägstrich (//) kennzeichnet einen nicht zu interpretierenden Textkommentar (wie eine GEDCOM Bemerkung) bis zum Ende der Zeile.
Rela.php getValue() Funktion bearbeiten
webtrees ist in U.S. Englisch geschrieben und verwendet U.S. Englisch intern. Also wird Text, der für Benutzer sichtbar sein soll, standardmäßig auf Basis der englischen Version kodiert. webtrees unterstützt viele Sprachen, einige mit kontext-abhängigen Geschlechter-Abhängigkeiten. Also den Text für das ASSOciate (Partner) Merkmal RELAtionships (Beziehungen) zu definieren, ist ein wenig komplizierter, als wahrscheinlich zuerst vermutet. Daher sehen Sie einige der Geschlechter switch-case-Anweisungen in der Code-Basis mit einigen Beziehungs-Namen.
Die getValue()-Funktion ist einfach eine große switch-case-Anweisung. Betrachten Sie es als eine "Auswahl". Bei Eingabe eines Matrix-Eintrags oder Code-Werts erzeugt sie einen Aufruf einer Text-Übersetzungs-Funktion für diesen Wert. Wenn Sie einen Eintrag in die Matrix oben hinzufügen, müssen Sie also einen case-Einstiegspunkt in die switch-Anweisung hinzufügen.
Es gibt hier zwei Arten von Einträgen. Mögliche geschlechts-abhängige Namen und unisex oder geschlechts-unabhängige Namen. Obwohl im Englischen nicht üblich, sind geschlechts-abhängige Namen in vielen anderen Sprachen geläufig. Aber es gibt sie auch im Englischen. Ein Elternteil ist unisex, während ein Vater oder Mutter traditionell eine geschlechts-abhängige Variante ist. Ebenso ist ein Patenkind unisex, während ein Patensohn oder Patentochter geschlechts-abhängig ist. Was hier wichtig ist, ist nicht, was Tradition oder eine mögliche Ausnahme ist, die Sie unterstützen möchten, sondern was ist das übliche Konstrukt zur Verwendung in anderen Sprachen. Wenn eine Sprache traditionell Varianten auf der Grundlage von Geschlechtern verwendet, unterstützen Sie das hier im Code.
Unter Fortsetzung unseres obigen Beispiels würde der Eintrag für einen sponsor in der getValue() switch-Anweisung wie folgt aussehen:
case 'slave': switch ($sex) { case 'M': return WT_I18N::translate_c('MALE', 'Slave'); case 'F': return WT_I18N::translate_c('FEMALE', 'Slave'); default: return WT_I18N::translate ( 'Slave'); } case 'sponsor': // Added REH 10/30/2011 // no sex implied return WT_I18N::translate('Sponsor'); case 'ward': switch ($sex) {
Der Aufruf der Funktion WT_I18N::translate() führt zur Sprach-Übersetzung und sucht das passende Wort in der Sprachdatei. Eine Variante des Aufrufs führt das Geschlecht als ersten Parameter.
Beachten Sie, dass der Parameter innerhalb der Klammern die englische Form der Beziehung darstellt und nicht den Codewert, der in der vorangehenden case-Anweisung verwendet wird. Deshalb werden innerhalb der einfachen Anführungszeichen auch Leerzeichen und Groß- und Kleinschreibung akzeptiert. Die Code-Namen in der Matrix werden ausschließlich innerhalb der PHP-Code switch-Anweisung verwendet, um die Matrix zu indizieren. Der Name, der an die WT_I18N::translate()-Funktion übergeben wird, ist die englische Grundform, die benutzt wird, um die Sprachdateien und die übersetzte Version zu finden. Es ist nur diese letztere Form, die Sie in der Benutzeroberfläche von webtrees oder in der GEDCOM-Datei-Ausgabe sehen werden.
Lokale Sprachdateien anpassen
Vergleichen Sie die Seite Benutzerdefinierte Übersetzungen, wie lokale Sprachdateien angepasst werden. Wichtig ist, dass Sie die neuen Beziehungen auch in die Übersetzungs-Dateien und zum Quellcode hinzufügen. Neben der Basis-Sprachdatei können Sie sie auch zu anderen Sprachen hinzufügen. Wenn keine Sprachdateien geändert werden, wird standardmäßig einfach das Englisch, das im Quellcode einprogrammiert ist, für alle Ausgaben und Anzeigen verwendet. Die Änderung der Sprachdatei ist also nicht erforderlich, um Ihre Veränderung zu aktivieren, aber ein notwendiger Schritt, um andere Sprachen in der Benutzeroberfläche zu unterstützen.
Überprüfen Sie Ihre Änderungen
Um zu sehen, ob Ihre Veränderungen erfolgreich waren, sowohl in Bezug auf die neue Beziehung als auch auf die Unversehrtheit des Programms und der Code-Basis, sollten Sie immer die geänderte Funktionalität überprüfen.
Gehen Sie einfach zu einer Person und fügen ein ASSOciate Merkmal (Partner) hinzu oder bearbeiten ein EVENt (Ereignis) wie eine Geburt, Tod oder ähnliches und fügen ein ASSOciate Merkmal hinzu. Es gibt zwei Parameter für die Eingabe, die aktuelle ID einer anderen Person und die Beziehung zu ihr. Für jede Sprache, die Sie geändert haben, klicken Sie auf das Auswahlfeld der Beziehung, um zu sehen, ob Ihre zusätzlichen Beziehungen vorhanden sind (und die vorangegangenen ebenfalls). Sie müssen dazu geschlechtlich unterschiedliche Personen prüfen, um alle Versionen komplett zu sehen. Was hier erscheint, ist der Inhalt aus einer Sprachdatei oder, falls nicht übersetzt, der ursprüngliche englische Text, der im PHP-Code-Aufruf an die Translate-Funktion übergegeben wird.
Verwendung des ASSOciate-Merkmals
Der GEDCOM 5.5.1 Standard definiert ASSOciate als Merkmal der Stufe 1, das nur in einem Personen Datensatz (oberste Ebene) verfügbar ist. Es soll eine Person mit einer anderen Person direkt verbinden. Tatsächlich kennt das ASSOciate Merkmal die Xref_ID einer Person (INDI) als Parameter. Dies ist ein gangbarer Weg, um Menschen anders als mit dem FAMIlien-Datensatz zu verknüpfen.
Viele Programme, webtrees eingeschlossen, erlauben das ASSOciate Merkmal auch innerhalb von Ereignis-Merkmalen (EVEN) in Personen- (INDI) und FAMIlien-Datensätzen. Einige sogar innerhalb von Quellen (SOUR) und anderen Top-Level-Datensätzen. Wo immer von webtrees erlaubt, wird das ASSOciate Merkmal in der entsprechenden GEDCOM-Datei an dieser Stelle gezeigt. Also achten Sie darauf, dass diese Verbindungen außer als Top-Level-Merkmal in einem Personen-Datensatz möglicherweise nicht in andere Programme übernommen werden können, obwohl die Verbindungen in diesem Programm an diesen zusätzlichen Stellen unterstützt werden.
Die Verbindungs-Beschreibung (RELA) innerhalb des ASSOciate-Merkmals ist als ein Freitextfeld definiert und nicht als computerlesbarer Name. Obwohl fester Bestandteil im webtrees Code, haben die vordefinierten Namen keine besondere Bedeutung im Programm. Es ist ein reiner Deskriptor, um die Verbindung zu einer anderen Person zu beschreiben. Da es ein Deskriptor ist, wurde die Liste vordefiniert, so dass er für die Schnittstelle in andere Sprachen richtig übersetzt werden kann.
Die häufigste Verwendung des ASSOciate Merkmals liegt in traditionellen religiösen Ereignissen wie Taufe, Konfirmation/BarMitzvah/Najote und Hochzeit. Das Merkmal erlaubt es, Paten, Sponsoren und Hochzeitsgäste anzugeben. Vor allem für die Ehe ist die Liste, so wie heute im Programm definiert, für die meisten Traditionen in gängigen Religionen nicht vollständig. Daher muss ergänzt werden, was in einer Beziehung erlaubt ist.
Beachten Sie, dass ASSOciates Verbindungen in einer Richtung sind. Das bedeutet, wenn Sie einen Patenonkel im Tauf-Datensatz eines Kindes (Einzelperson) angeben, gibt es keine Möglichkeit, dies zu erfahren, wenn man etwas anderes als den Kind-Datensatz betrachtet. Sie müssen ein ASSOciate Merkmal im Patenonkel-Datensatz (Einzelpersonen) anlegen, um festzulegen, wer das Patenkind ist, damit die Verbindung bidirektional und bei beiden Personen sichtbar wird.
Beachten Sie auch, obwohl dies ein alternativer Weg ist, Personen außerhalb der Familie zu verknüpfen, dass die meisten Programme, die GEDCOM's verarbeiten, diesen Link nur für Anzeigezwecke erkennen. Daher kann z.B. das Beziehungs-Diagramm in webtrees diese Verbindungen nicht verfolgen. Auch das Sammelbehälter-Werkzeug kann keine verknüpfte Teilmenge Ihrer Datenbank extrahieren.
Vorhandene und vorgeschlagene Beziehungs-Werte
In webtrees ist die folgende Liste von Beziehungen (RELA) für das ASSOciate Merkmal definiert:
'attendant', 'attending', 'best_man', 'bridesmaid', 'buyer', 'circumciser', 'civil_registrar', 'employee', 'employer', 'foster_child', 'foster_father', 'foster_mother', 'friend', 'godfather', 'godmother', 'godparent', 'godson', 'goddaughter', 'godchild', 'guardian', 'informant', 'lodger', 'nanny', 'nurse', 'owner', 'priest', 'rabbi', 'registry_officer', 'seller', 'servant', 'slave', 'ward', 'witness',
In der PHPGedView Code-Basis ist auch noch definiert:
'twin', 'twin_brother', and 'twin_sister'
webtrees erkennt sie jedoch automatisch. Nützliche Beziehungen, die man erwägen könnte, sind beispielsweise:
'flower_girl', 'groomsman', 'maid_of_honor', 'matron_of_honor', 'officiant', 'ring_bearer', 'sponsor', and 'usher'
Manchmal ist die Beziehung einem Ereignis nicht wirklich zugeordnet, sollte jedoch bei einer Person oder Familie auf oberster Ebene stehen. Dies gilt insbesondere für enge Freunde, die teilweise wichtiger als Blutsverwandte gewesen sein können. In diesem Fall kann man überlegen, Beziehungen hinzufügen wie:
'friend', 'close_friend', 'best_friend', 'family_friend', 'fiance', and the like.
Es muss hier noch nicht enden; genau wie bei modernen sozialen Netzwerken. Sie können alle Arten von Klassifikationen oder Kreisen von Menschen zulassen. Vielleicht benötigen Sie:
'colleague', 'classmate', 'war_buddy' and so on.
Entscheidend ist, dass die Liste vordefiniert ist und Sie so die Flexibilität für die Forscher erhöhen, zur Erfassung von Informationen, die sie über Menschen in dieser besser verarbeitbaren Form sammeln. Die ASSOciate Beziehung ermöglicht genau das, indem man von Person zu Person über die definierten Beziehungs-Verknüpfungen navigiert.
Der größte Nachteil beim Hinzufügen von mehr Beziehungen ist, dass die Liste als eine Auswahlliste angezeigt wird. Je länger also die Liste ist, desto mehr Probleme kann ein Benutzer möglicherweise haben, die Beziehung zu finden, die er sucht. Die Liste beachtet keine Teilmengen bezogen auf den Kontext eines Ereignisses oder Datensatztyp, zu dem Sie die Beziehung hinzufügen. Für ein Taufereignis wird daher die vollständige Liste angezeigt, einschließlich 'Lodger', 'Seller' und dergleichen.
Anforderungen
Dieses Modul erfordert die webtrees-Version 2.1 oder höher.
Dieses Modul wurde mit der webtrees-Version 2.1.5 und allen verfügbaren Themen und allen anderen Erweiterungsmodulen getestet.
Installation
Bitte beachten Sie die folgenden Installationsanweisungen
- Laden Sie die neueste Version von GitHub herunter.
- Entpacken Sie das Erweiterungsmodul in das Verzeichnis
/modules_v4/hh_relation_is_descriptor
des webtrees-Webservers. Wenn dieses Verzeichnis bereits vorhanden ist, können Sie es einfach überschreiben. - Melden Sie sich als Administrator bei webtrees an, gehen Sie zu Systemsteuerung/Module/Personenseite/Reiter und suchen Sie das Modul. Es heißt "xxx". Durch einen Klick auf den Schraubenschlüssel können sie die Einstellungen des Moduls verändern. Überprüfen Sie, ob es ein Häkchen für "Aktiviert" hat. Bearbeiten Sie diesen Eintrag, um die Zugriffsrechte für jeden Stammbaum festzulegen und den Menüpunkt nach ihren Wünschen zu positionieren.
- Klicken Sie abschließend auf "Speichern", um die Konfiguration zu sichern.
Upgrade
Ersetzen Sie zum Aktualisieren einfach die bestehenden Dateien durch diejenigen aus der neuesten Version.
Übersetzung
Sie können helfen, dieses Modul zu übersetzen. Die Sprachinformationen sind in der Datei "resources/lang/ExtendedFamilyTranslation.php" abgelegt. Der deutsche Teil ist der aktuellste und kann als Grundlage für Ihre Übersetzung verwendet werden. Verwenden Sie einen lokalen Editor wie Notepad++, um die Übersetzungen zu erstellen. Das Zurücksenden geht per Pull-Request in GitHub (wenn Sie wissen wie das geht) oder per E-Mail an den Programmautor. Aktualisierte Übersetzungen werden in der jeweils nächsten Version dieses Moduls enthalten sein.
Folgende Sprachen werden neben Deutsch und Englisch unterstützt
- Niederländisch
- Tschechisch.
Unterstützung
Sie können Fehler oder Wünsche für Erweiterungen auf der "issue"-Seite bei GitHub melden,
Sie können bei Fragen auch das webtrees-Forum mit dem Themenbereich "Customising" nutzen.
Lizenz
- © 2022 Hermann Hartenthaler
- abgeleitet von webtrees - © 2022 webtrees-Entwicklungsteam
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, veröffentlicht von der Free Software Foundation, entweder in Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version, weitergeben und/oder modifizieren.
Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne auch nur die stillschweigende Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU General Public License, die Sie unter http://www.gnu.org/licenses/ finden.