summaryrefslogtreecommitdiff
path: root/app/Factories
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2021-05-08 14:34:30 +0100
committerGreg Roach <fisharebest@gmail.com>2021-05-09 10:36:36 +0100
commit7b54238961f347ceabed416b844859d4260b5348 (patch)
tree9381850ed05d72a23980ca71a4699f5cecbb62f1 /app/Factories
parent914ea12f67bcff691919d6fc4703d15491971fab (diff)
downloadwebtrees-7b54238961f347ceabed416b844859d4260b5348.tar.gz
webtrees-7b54238961f347ceabed416b844859d4260b5348.tar.bz2
webtrees-7b54238961f347ceabed416b844859d4260b5348.zip
Gedcom tags
Diffstat (limited to 'app/Factories')
-rw-r--r--app/Factories/ElementFactory.php119
1 files changed, 71 insertions, 48 deletions
diff --git a/app/Factories/ElementFactory.php b/app/Factories/ElementFactory.php
index f3e02a008c..038f09ddd5 100644
--- a/app/Factories/ElementFactory.php
+++ b/app/Factories/ElementFactory.php
@@ -198,6 +198,7 @@ use Fisharebest\Webtrees\Elements\VersionNumber;
use Fisharebest\Webtrees\Elements\WebtreesUser;
use Fisharebest\Webtrees\Elements\WhereWithinSource;
use Fisharebest\Webtrees\Elements\Will;
+use Fisharebest\Webtrees\Elements\XrefAssociate;
use Fisharebest\Webtrees\Elements\XrefFamily;
use Fisharebest\Webtrees\Elements\XrefIndividual;
use Fisharebest\Webtrees\Elements\XrefLocation;
@@ -294,7 +295,6 @@ class ElementFactory implements ElementFactoryInterface
'FAM:CHAN' => new Change(I18N::translate('Last change')),
'FAM:CHAN:DATE' => new ChangeDate(I18N::translate('Date of last change')),
'FAM:CHAN:DATE:TIME' => new TimeValue(I18N::translate('Time')),
- 'FAM:CHAN:NOTE' => new NoteStructure(I18N::translate('Note')),
'FAM:CHIL' => new XrefIndividual(I18N::translate('Child')),
'FAM:DIV' => new Divorce(I18N::translate('Divorce')),
'FAM:DIVF' => new DivorceFiled(I18N::translate('Divorce filed')),
@@ -324,7 +324,6 @@ class ElementFactory implements ElementFactoryInterface
'FAM:RIN' => new AutomatedRecordId(I18N::translate('Record ID number')),
'FAM:SLGS' => new LdsSpouseSealing(I18N::translate('LDS spouse sealing')),
'FAM:SLGS:DATE' => new DateLdsOrd(I18N::translate('Date')),
- 'FAM:SLGS:NOTE' => new NoteStructure(I18N::translate('Note')),
'FAM:SLGS:PLAC' => new PlaceLivingOrdinance(I18N::translate('Place')),
'FAM:SLGS:STAT' => new LdsSpouseSealingDateStatus(I18N::translate('Status')),
'FAM:SLGS:STAT:DATE' => new ChangeDate(I18N::translate('Status change date')),
@@ -335,7 +334,6 @@ class ElementFactory implements ElementFactoryInterface
'FAM:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
'FAM:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
'FAM:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
- 'FAM:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
'FAM:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
'FAM:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
'FAM:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
@@ -427,11 +425,10 @@ class ElementFactory implements ElementFactoryInterface
'INDI:AFN' => new AncestralFileNumber(I18N::translate('Ancestral file number')),
'INDI:ALIA' => new XrefIndividual(I18N::translate('Alias')),
'INDI:ANCI' => new XrefSubmitter(I18N::translate('Ancestors interest')),
- 'INDI:ASSO' => new XrefIndividual(I18N::translate('Associate'), ['RELA' => '0:1', 'NOTE' => '0:M', 'SOUR' => '0:M']),
+ 'INDI:ASSO' => new XrefAssociate(I18N::translate('Associate')),
'INDI:ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
'INDI:BAPL' => new LdsBaptism(I18N::translate('LDS baptism')),
'INDI:BAPL:DATE' => new DateLdsOrd(I18N::translate('Date of LDS baptism')),
- 'INDI:BAPL:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:BAPL:PLAC' => new PlaceLivingOrdinance(I18N::translate('Place of LDS baptism')),
'INDI:BAPL:STAT' => new LdsBaptismDateStatus(I18N::translate('Status')),
'INDI:BAPL:STAT:DATE' => new ChangeDate(I18N::translate('Status change date')),
@@ -462,7 +459,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:CHAN' => new Change(I18N::translate('Last change')),
'INDI:CHAN:DATE' => new ChangeDate(I18N::translate('Date of last change')),
'INDI:CHAN:DATE:TIME' => new TimeValue(I18N::translate('Time')),
- 'INDI:CHAN:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:CHR' => new Christening(I18N::translate('Christening')),
'INDI:CHR:DATE' => new DateValue(I18N::translate('Date of christening')),
'INDI:CHR:FAMC' => new XrefFamily(I18N::translate('Godparents')),
@@ -473,7 +469,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:CONF:PLAC' => new PlaceName(I18N::translate('Place of confirmation')),
'INDI:CONL' => new LdsConfirmation(I18N::translate('LDS confirmation')),
'INDI:CONL:DATE' => new DateLdsOrd(I18N::translate('Date of LDS confirmation')),
- 'INDI:CONL:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:CONL:PLAC' => new PlaceLivingOrdinance(I18N::translate('Place of LDS confirmation')),
'INDI:CONL:STAT' => new LdsSpouseSealingDateStatus(I18N::translate('Status')),
'INDI:CONL:STAT:DATE' => new ChangeDate(I18N::translate('Status change date')),
@@ -494,7 +489,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:EMIG:PLAC' => new PlaceName(I18N::translate('Place of emigration')),
'INDI:ENDL' => new LdsEndowment(I18N::translate('LDS endowment')),
'INDI:ENDL:DATE' => new DateLdsOrd(I18N::translate('Date of LDS endowment')),
- 'INDI:ENDL:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:ENDL:PLAC' => new PlaceLivingOrdinance(I18N::translate('Place of LDS endowment')),
'INDI:ENDL:STAT' => new LdsEndowmentDateStatus(I18N::translate('Status')),
'INDI:ENDL:STAT:DATE' => new ChangeDate(I18N::translate('Status change date')),
@@ -505,8 +499,7 @@ class ElementFactory implements ElementFactoryInterface
'INDI:EVEN:TYPE' => new EventAttributeType(I18N::translate('Type of event')),
'INDI:FACT' => new AttributeDescriptor(I18N::translate('Fact')),
'INDI:FACT:TYPE' => new EventAttributeType(I18N::translate('Type of fact')),
- 'INDI:FAMC' => new XrefFamily(I18N::translate('Family as a child')),
- 'INDI:FAMC:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'INDI:FAMC' => new XrefFamily(I18N::translate('Family as a child'), ['NOTE' => '0:1', 'PEDI' => '0:1', 'STAT' => '0:1']),
'INDI:FAMC:PEDI' => new PedigreeLinkageType(I18N::translate('Relationship to parents')),
'INDI:FAMC:STAT' => new ChildLinkageStatus(I18N::translate('Status')),
'INDI:FAMS' => new XrefFamily(I18N::translate('Family as a spouse')),
@@ -530,7 +523,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:NAME:FONE:TYPE' => new PhoneticType(I18N::translate('Phonetic type')),
'INDI:NAME:GIVN' => new NamePieceGiven(I18N::translate('Given names')),
'INDI:NAME:NICK' => new NamePieceNickname(I18N::translate('Nickname')),
- 'INDI:NAME:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:NAME:NPFX' => new NamePiecePrefix(I18N::translate('Name prefix')),
'INDI:NAME:NSFX' => new NamePieceSuffix(I18N::translate('Name suffix')),
'INDI:NAME:ROMN' => new NameRomanizedVariation(I18N::translate('Romanized name'), ['TYPE' => '0,1']),
@@ -575,7 +567,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:SLGC' => new LdsChildSealing(I18N::translate('LDS child sealing')),
'INDI:SLGC:DATE' => new DateLdsOrd(I18N::translate('Date of LDS child sealing')),
'INDI:SLGC:FAMC' => new XrefFamily(I18N::translate('Parents')),
- 'INDI:SLGC:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:SLGC:PLAC' => new PlaceLivingOrdinance(I18N::translate('Place of LDS child sealing')),
'INDI:SLGC:STAT' => new LdsChildSealingDateStatus(I18N::translate('Status')),
'INDI:SLGC:STAT:DATE' => new ChangeDate(I18N::translate('Status change date')),
@@ -586,7 +577,6 @@ class ElementFactory implements ElementFactoryInterface
'INDI:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
'INDI:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
'INDI:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
- 'INDI:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
'INDI:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
'INDI:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
@@ -1058,17 +1048,22 @@ class ElementFactory implements ElementFactoryInterface
'FAM:*:PLAC:_MAIDENHEAD' => new MaidenheadLocator('Maidenhead locator'),
'FAM:*:PLAC:_POST' => new AddressPostalCode('Postal code'),
'FAM:*:PLAC:_POST:DATE' => new DateValue(I18N::translate('Date')),
- 'FAM:*:_ASSO' => new XrefIndividual(I18N::translate('Associate'), ['RELA' => '0:1', 'NOTE' => '0:M', 'SOUR' => '0:M']),
+ 'FAM:*:_ASSO' => new XrefAssociate(I18N::translate('Associate')),
'FAM:*:_ASSO:NOTE' => new NoteStructure(I18N::translate('Note')),
'FAM:*:_ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
'FAM:*:_ASSO:SOUR' => new XrefSource(I18N::translate('Source citation')),
+ 'FAM:*:_ASSO:SOUR:DATA' => new SourceData(I18N::translate('Data')),
+ 'FAM:*:_ASSO:SOUR:DATA:DATE' => new EntryRecordingDate(I18N::translate('Date of entry in original source')),
+ 'FAM:*:_ASSO:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
+ 'FAM:*:_ASSO:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
+ 'FAM:*:_ASSO:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
+ 'FAM:*:_ASSO:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'FAM:*:_ASSO:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
+ 'FAM:*:_ASSO:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
+ 'FAM:*:_ASSO:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
'FAM:*:_WITN' => new CustomElement('Witness'),
- 'FAM:_STAT' => new FamilyStatusText(I18N::translate('Family status')),
- 'FAM:_STAT:DATE' => new DateValue(I18N::translate('Date')),
- 'FAM:_STAT:NOTE' => new NoteStructure(I18N::translate('Note')),
- 'FAM:_STAT:PLAC' => new PlaceName(I18N::translate('Place')),
- 'FAM:_STAT:SOUR' => new XrefSource(I18N::translate('Source citation')),
- 'FAM:_TODO' => new ResearchTask(I18N::translate('Research task')),
+ 'FAM:_STAT' => new FamilyStatusText(I18N::translate('Family status'), ['DATE' => '0:1', 'PLAC' => '0:1', 'NOTE' => '0:M', 'SOUR' => '0:M']),
+ 'FAM:_TODO' => new ResearchTask(I18N::translate('Research task'), ['DESC' => '1:1', '_CAT' => '0:1', '_PRTY' => '0:1', 'TYPE' => '0:1', 'NOTE' => '0:M', 'DATA' => '0:1', 'STAT' => '0:1', '_CDATE' => '0:1', '_RDATE' => '0:1', 'REPO' => '0:1', '_UID' => '0:M']),
'FAM:_TODO:DATA' => new SubmitterText(I18N::translate('The solution')),
'FAM:_TODO:DATE' => new DateValue(I18N::translate('Creation date')),
'FAM:_TODO:DESC' => new CustomElement(I18N::translate('Description')),
@@ -1100,10 +1095,19 @@ class ElementFactory implements ElementFactoryInterface
'INDI:*:PLAC:_MAIDENHEAD' => new MaidenheadLocator('Maidenhead locator'),
'INDI:*:PLAC:_POST' => new AddressPostalCode('Postal code'),
'INDI:*:PLAC:_POST:DATE' => new DateValue(I18N::translate('Date')),
- 'INDI:*:_ASSO' => new XrefIndividual(I18N::translate('Associate'), ['RELA' => '0:1', 'NOTE' => '0:M', 'SOUR' => '0:M']),
+ 'INDI:*:_ASSO' => new XrefAssociate(I18N::translate('Associate')),
'INDI:*:_ASSO:NOTE' => new NoteStructure(I18N::translate('Note')),
'INDI:*:_ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
'INDI:*:_ASSO:SOUR' => new XrefSource(I18N::translate('Source citation')),
+ 'INDI:*:_ASSO:SOUR:DATA' => new SourceData(I18N::translate('Data')),
+ 'INDI:*:_ASSO:SOUR:DATA:DATE' => new EntryRecordingDate(I18N::translate('Date of entry in original source')),
+ 'INDI:*:_ASSO:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
+ 'INDI:*:_ASSO:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
+ 'INDI:*:_ASSO:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
+ 'INDI:*:_ASSO:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'INDI:*:_ASSO:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
+ 'INDI:*:_ASSO:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
+ 'INDI:*:_ASSO:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
'INDI:*:_WITN' => new CustomElement('Witness'),
'INDI:BAPM:_GODP' => new CustomElement('Godparent'),
'INDI:CHR:_GODP' => new CustomElement('Godparent'),
@@ -1302,6 +1306,10 @@ class ElementFactory implements ElementFactoryInterface
$this->register([
'FAM:CHAN:_PGVU' => new WebtreesUser(I18N::translate('Author of last change')),
'FAM:COMM' => new CustomElement(I18N::translate('Comment')),
+ 'INDI:*:ASSO' => new XrefAssociate(I18N::translate('Associate')),
+ 'INDI:*:ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
+ 'INDI:*:PLAC:_HEB' => new NoteStructure(I18N::translate('Place in Hebrew')),
+ 'INDI:ADDR' => new AddressLine(I18N::translate('Address'), []),
'INDI:BIRT:DATE:TIME' => new TimeValue(I18N::translate('Time')),
'INDI:BURI:CEME' => new CustomElement(I18N::translate('Cemetery')),
'INDI:CHAN:_PGVU' => new WebtreesUser(I18N::translate('Author of last change')),
@@ -1351,33 +1359,48 @@ class ElementFactory implements ElementFactoryInterface
// webtrees extensions
$this->register([
- 'FAM:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'FAM:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'INDI:*:ASSO' => new XrefIndividual(I18N::translate('Associate'), ['RELA' => '0:1']),
- 'INDI:*:ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
- 'INDI:*:PLAC:_HEB' => new NoteStructure(I18N::translate('Place in Hebrew')),
- 'INDI:ADDR' => new AddressLine(I18N::translate('Address')),
- 'INDI:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'INDI:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'INDI:_WT_OBJE_SORT' => new XrefMedia(I18N::translate('Re-order media')),
- 'NOTE:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'NOTE:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'NOTE:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'OBJE:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'OBJE:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'OBJE:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'REPO:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'REPO:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'REPO:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'SOUR:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'SOUR:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'SOUR:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'SUBM:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'SUBM:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'SUBM:_UID' => new PafUid(I18N::translate('Unique identifier')),
- 'SUBN:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
- 'SUBN:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
- 'SUBN:_UID' => new PafUid(I18N::translate('Unique identifier')),
+ 'FAM:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'FAM:_ASSO' => new XrefAssociate(I18N::translate('Associate')),
+ 'FAM:_ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
+ 'FAM:*:_ASSO' => new XrefAssociate(I18N::translate('Associate')),
+ 'FAM:*:_ASSO:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'FAM:*:_ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
+ 'FAM:*:_ASSO:SOUR' => new XrefSource(I18N::translate('Source citation')),
+ 'FAM:*:_ASSO:SOUR:DATA' => new SourceData(I18N::translate('Data')),
+ 'FAM:*:_ASSO:SOUR:DATA:DATE' => new EntryRecordingDate(I18N::translate('Date of entry in original source')),
+ 'FAM:*:_ASSO:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
+ 'FAM:*:_ASSO:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
+ 'FAM:*:_ASSO:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
+ 'FAM:*:_ASSO:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'FAM:*:_ASSO:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
+ 'FAM:*:_ASSO:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
+ 'FAM:*:_ASSO:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
+ 'INDI:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'INDI:*:_ASSO' => new XrefAssociate(I18N::translate('Associate')),
+ 'INDI:*:_ASSO:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'INDI:*:_ASSO:RELA' => new RelationIsDescriptor(I18N::translate('Relationship')),
+ 'INDI:*:_ASSO:SOUR' => new XrefSource(I18N::translate('Source citation')),
+ 'INDI:*:_ASSO:SOUR:DATA' => new SourceData(I18N::translate('Data')),
+ 'INDI:*:_ASSO:SOUR:DATA:DATE' => new EntryRecordingDate(I18N::translate('Date of entry in original source')),
+ 'INDI:*:_ASSO:SOUR:DATA:TEXT' => new TextFromSource(I18N::translate('Text')),
+ 'INDI:*:_ASSO:SOUR:EVEN' => new EventTypeCitedFrom(I18N::translate('Event')),
+ 'INDI:*:_ASSO:SOUR:EVEN:ROLE' => new RoleInEvent(I18N::translate('Role')),
+ 'INDI:*:_ASSO:SOUR:NOTE' => new NoteStructure(I18N::translate('Note')),
+ 'INDI:*:_ASSO:SOUR:OBJE' => new XrefMedia(I18N::translate('Media object')),
+ 'INDI:*:_ASSO:SOUR:PAGE' => new WhereWithinSource(I18N::translate('Citation details')),
+ 'INDI:*:_ASSO:SOUR:QUAY' => new CertaintyAssessment(I18N::translate('Quality of data')),
+ 'NOTE:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'NOTE:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
+ 'OBJE:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'OBJE:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
+ 'REPO:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'REPO:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
+ 'SOUR:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'SOUR:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
+ 'SUBM:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ 'SUBM:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
+ '_LOC:CHAN:_WT_USER' => new WebtreesUser(I18N::translate('Author of last change')),
+ '_LOC:RESN' => new RestrictionNotice(I18N::translate('Restriction')),
]);
}