@@ -21,1965 +21,1965 @@ |
||
21 | 21 | * Static GEDCOM data for tags |
22 | 22 | */ |
23 | 23 | class GedcomTag { |
24 | - /** @var string[] All tags that webtrees knows how to translate - including special/internal tags */ |
|
25 | - private static $ALL_TAGS = array( |
|
26 | - 'ABBR', 'ADDR', 'ADR1', 'ADR2', 'ADOP', 'ADOP:DATE', 'ADOP:PLAC', |
|
27 | - 'AFN', 'AGE', 'AGNC', 'ALIA', 'ANCE', 'ANCI', 'ANUL', 'ASSO', 'AUTH', 'BAPL', |
|
28 | - 'BAPL:DATE', 'BAPL:PLAC', 'BAPM', 'BAPM:DATE', 'BAPM:PLAC', 'BARM', |
|
29 | - 'BARM:DATE', 'BARM:PLAC', 'BASM', 'BASM:DATE', 'BASM:PLAC', |
|
30 | - 'BIRT', 'BIRT:DATE', 'BIRT:PLAC', 'BLES', 'BLES:DATE', |
|
31 | - 'BLES:PLAC', 'BLOB', 'BURI', 'BURI:DATE', 'BURI:PLAC', |
|
32 | - 'CALN', 'CAST', 'CAUS', 'CEME', 'CENS', 'CENS:DATE', 'CENS:PLAC', 'CHAN', 'CHAN:DATE', 'CHAN:_WT_USER', 'CHAR', |
|
33 | - 'CHIL', 'CHR', 'CHR:DATE', 'CHR:PLAC', 'CHRA', 'CITN', 'CITY', |
|
34 | - 'COMM', 'CONC', 'CONT', 'CONF', 'CONF:DATE', 'CONF:PLAC', 'CONL', |
|
35 | - 'COPR', 'CORP', 'CREM', 'CREM:DATE', 'CREM:PLAC', 'CTRY', 'DATA', |
|
36 | - 'DATA:DATE', 'DATE', 'DEAT', 'DEAT:CAUS', 'DEAT:DATE', 'DEAT:PLAC', |
|
37 | - 'DESC', 'DESI', 'DEST', 'DIV', 'DIVF', 'DSCR', 'EDUC', 'EDUC:AGNC', 'EMAI', |
|
38 | - 'EMAIL', 'EMAL', 'EMIG', 'EMIG:DATE', 'EMIG:PLAC', 'ENDL', 'ENDL:DATE', |
|
39 | - 'ENDL:PLAC', 'ENGA', 'ENGA:DATE', 'ENGA:PLAC', 'EVEN', 'EVEN:DATE', |
|
40 | - 'EVEN:PLAC', 'EVEN:TYPE', 'FACT', 'FACT:TYPE', 'FAM', 'FAMC', 'FAMF', 'FAMS', 'FAMS:CENS:DATE', 'FAMS:CENS:PLAC', |
|
41 | - 'FAMS:DIV:DATE', 'FAMS:MARR:DATE', 'FAMS:MARR:PLAC', 'FAMS:NOTE', |
|
42 | - 'FAX', 'FCOM', 'FCOM:DATE', |
|
43 | - 'FCOM:PLAC', 'FILE', 'FONE', 'FORM', 'GEDC', 'GIVN', 'GRAD', |
|
44 | - 'HEAD', 'HUSB', 'IDNO', 'IMMI', 'IMMI:DATE', 'IMMI:PLAC', 'INDI', 'INFL', |
|
45 | - 'LANG', 'LATI', 'LEGA', 'LONG', 'MAP', 'MARB', 'MARB:DATE', 'MARB:PLAC', |
|
46 | - 'MARC', 'MARL', 'MARR', 'MARR:DATE', 'MARR:PLAC', |
|
47 | - 'MARR_CIVIL', 'MARR_PARTNERS', 'MARR_RELIGIOUS', 'MARR_UNKNOWN', 'MARS', |
|
48 | - 'MEDI', 'NAME', 'NAME:FONE', 'NAME:_HEB', 'NATI', 'NATU', 'NATU:DATE', 'NATU:PLAC', |
|
49 | - 'NCHI', 'NICK', 'NMR', 'NOTE', 'NPFX', 'NSFX', 'OBJE', 'OCCU', 'OCCU:AGNC', |
|
50 | - 'ORDI', 'ORDN', 'ORDN:AGNC', 'ORDN:DATE', 'ORDN:PLAC', 'PAGE', 'PEDI', 'PHON', |
|
51 | - 'PLAC', 'PLAC:FONE', 'PLAC:ROMN', 'PLAC:_HEB', 'POST', 'PROB', 'PROP', 'PUBL', |
|
52 | - 'QUAY', 'REFN', 'RELA', 'RELI', 'REPO', 'RESI', 'RESI:DATE', 'RESI:PLAC', 'RESN', |
|
53 | - 'RETI', 'RETI:AGNC', 'RFN', 'RIN', 'ROLE', 'ROMN', 'SERV', 'SEX', 'SHARED_NOTE', |
|
54 | - 'SLGC', 'SLGC:DATE', 'SLGC:PLAC', 'SLGS', 'SLGS:DATE', 'SLGS:PLAC', 'SOUR', |
|
55 | - 'SPFX', 'SSN', 'STAE', 'STAT', 'STAT:DATE', 'SUBM', 'SUBN', 'SURN', 'TEMP', |
|
56 | - 'TEXT', 'TIME', 'TITL', 'TITL:FONE', 'TITL:ROMN', 'TITL:_HEB', 'TRLR', 'TYPE', |
|
57 | - 'URL', 'VERS', 'WIFE', 'WILL', 'WWW', '_ADOP_CHIL', '_ADOP_GCHI', '_ADOP_GCH1', |
|
58 | - '_ADOP_GCH2', '_ADOP_HSIB', '_ADOP_SIBL', '_ADPF', '_ADPM', '_AKA', '_AKAN', '_ASSO', |
|
59 | - '_BAPM_CHIL', '_BAPM_GCHI', '_BAPM_GCH1', '_BAPM_GCH2', '_BAPM_HSIB', '_BAPM_SIBL', |
|
60 | - '_BIBL', '_BIRT_CHIL', '_BIRT_GCHI', '_BIRT_GCH1', '_BIRT_GCH2', '_BIRT_HSIB', '_BIRT_SIBL', |
|
61 | - '_BRTM', '_BRTM:DATE', '_BRTM:PLAC', '_BURI_CHIL', |
|
62 | - '_BURI_GCHI', '_BURI_GCH1', '_BURI_GCH2', '_BURI_GPAR', '_BURI_HSIB', '_BURI_SIBL', '_BURI_SPOU', |
|
63 | - '_CHR_CHIL', '_CHR_GCHI', '_CHR_GCH1', '_CHR_GCH2', '_CHR_HSIB', '_CHR_SIBL', '_COML', |
|
64 | - '_CREM_CHIL', '_CREM_GCHI', '_CREM_GCH1', '_CREM_GCH2', '_CREM_GPAR', '_CREM_HSIB', '_CREM_SIBL', '_CREM_SPOU', |
|
65 | - '_DBID', '_DEAT_CHIL', '_DEAT_GCHI', '_DEAT_GCH1', '_DEAT_GCH2', '_DEAT_GPAR', '_DEAT_GPA1', '_DEAT_GPA2', |
|
66 | - '_DEAT_HSIB', '_DEAT_PARE', '_DEAT_SIBL', '_DEAT_SPOU', '_DEG', '_DETS', '_DNA', |
|
67 | - '_EMAIL', '_EYEC', '_FA1', '_FA2', '_FA3', '_FA4', '_FA5', '_FA6', '_FA7', '_FA8', |
|
68 | - '_FA9', '_FA10', '_FA11', '_FA12', '_FA13', '_FNRL', '_FREL', '_GEDF', '_GODP', '_HAIR', |
|
69 | - '_HEB', '_HEIG', '_HNM', '_HOL', '_INTE', '_LOC', '_MARI', |
|
70 | - '_MARNM', '_PRIM', '_MARNM_SURN', '_MARR_CHIL', '_MARR_FAMC', '_MARR_GCHI', |
|
71 | - '_MARR_GCH1', '_MARR_GCH2', '_MARR_HSIB', '_MARR_PARE', '_MARR_SIBL', '_MBON', |
|
72 | - '_MDCL', '_MEDC', '_MEND', '_MILI', '_MILT', '_MREL', '_MSTAT', '_NAME', '_NAMS', |
|
73 | - '_NLIV', '_NMAR', '_NMR', '_WT_USER', '_PRMN', '_SCBK', '_SEPR', '_SSHOW', '_STAT', |
|
74 | - '_SUBQ', '_TODO', '_TYPE', '_UID', '_URL', '_WEIG', '_WITN', '_YART', '__BRTM_CHIL', |
|
75 | - '__BRTM_GCHI', '__BRTM_GCH1', '__BRTM_GCH2', '__BRTM_HSIB', '__BRTM_SIBL', |
|
76 | - // These pseudo-tags are generated dynamically to display media object attributes |
|
77 | - '__FILE_SIZE__', '__IMAGE_SIZE__', |
|
78 | - ); |
|
24 | + /** @var string[] All tags that webtrees knows how to translate - including special/internal tags */ |
|
25 | + private static $ALL_TAGS = array( |
|
26 | + 'ABBR', 'ADDR', 'ADR1', 'ADR2', 'ADOP', 'ADOP:DATE', 'ADOP:PLAC', |
|
27 | + 'AFN', 'AGE', 'AGNC', 'ALIA', 'ANCE', 'ANCI', 'ANUL', 'ASSO', 'AUTH', 'BAPL', |
|
28 | + 'BAPL:DATE', 'BAPL:PLAC', 'BAPM', 'BAPM:DATE', 'BAPM:PLAC', 'BARM', |
|
29 | + 'BARM:DATE', 'BARM:PLAC', 'BASM', 'BASM:DATE', 'BASM:PLAC', |
|
30 | + 'BIRT', 'BIRT:DATE', 'BIRT:PLAC', 'BLES', 'BLES:DATE', |
|
31 | + 'BLES:PLAC', 'BLOB', 'BURI', 'BURI:DATE', 'BURI:PLAC', |
|
32 | + 'CALN', 'CAST', 'CAUS', 'CEME', 'CENS', 'CENS:DATE', 'CENS:PLAC', 'CHAN', 'CHAN:DATE', 'CHAN:_WT_USER', 'CHAR', |
|
33 | + 'CHIL', 'CHR', 'CHR:DATE', 'CHR:PLAC', 'CHRA', 'CITN', 'CITY', |
|
34 | + 'COMM', 'CONC', 'CONT', 'CONF', 'CONF:DATE', 'CONF:PLAC', 'CONL', |
|
35 | + 'COPR', 'CORP', 'CREM', 'CREM:DATE', 'CREM:PLAC', 'CTRY', 'DATA', |
|
36 | + 'DATA:DATE', 'DATE', 'DEAT', 'DEAT:CAUS', 'DEAT:DATE', 'DEAT:PLAC', |
|
37 | + 'DESC', 'DESI', 'DEST', 'DIV', 'DIVF', 'DSCR', 'EDUC', 'EDUC:AGNC', 'EMAI', |
|
38 | + 'EMAIL', 'EMAL', 'EMIG', 'EMIG:DATE', 'EMIG:PLAC', 'ENDL', 'ENDL:DATE', |
|
39 | + 'ENDL:PLAC', 'ENGA', 'ENGA:DATE', 'ENGA:PLAC', 'EVEN', 'EVEN:DATE', |
|
40 | + 'EVEN:PLAC', 'EVEN:TYPE', 'FACT', 'FACT:TYPE', 'FAM', 'FAMC', 'FAMF', 'FAMS', 'FAMS:CENS:DATE', 'FAMS:CENS:PLAC', |
|
41 | + 'FAMS:DIV:DATE', 'FAMS:MARR:DATE', 'FAMS:MARR:PLAC', 'FAMS:NOTE', |
|
42 | + 'FAX', 'FCOM', 'FCOM:DATE', |
|
43 | + 'FCOM:PLAC', 'FILE', 'FONE', 'FORM', 'GEDC', 'GIVN', 'GRAD', |
|
44 | + 'HEAD', 'HUSB', 'IDNO', 'IMMI', 'IMMI:DATE', 'IMMI:PLAC', 'INDI', 'INFL', |
|
45 | + 'LANG', 'LATI', 'LEGA', 'LONG', 'MAP', 'MARB', 'MARB:DATE', 'MARB:PLAC', |
|
46 | + 'MARC', 'MARL', 'MARR', 'MARR:DATE', 'MARR:PLAC', |
|
47 | + 'MARR_CIVIL', 'MARR_PARTNERS', 'MARR_RELIGIOUS', 'MARR_UNKNOWN', 'MARS', |
|
48 | + 'MEDI', 'NAME', 'NAME:FONE', 'NAME:_HEB', 'NATI', 'NATU', 'NATU:DATE', 'NATU:PLAC', |
|
49 | + 'NCHI', 'NICK', 'NMR', 'NOTE', 'NPFX', 'NSFX', 'OBJE', 'OCCU', 'OCCU:AGNC', |
|
50 | + 'ORDI', 'ORDN', 'ORDN:AGNC', 'ORDN:DATE', 'ORDN:PLAC', 'PAGE', 'PEDI', 'PHON', |
|
51 | + 'PLAC', 'PLAC:FONE', 'PLAC:ROMN', 'PLAC:_HEB', 'POST', 'PROB', 'PROP', 'PUBL', |
|
52 | + 'QUAY', 'REFN', 'RELA', 'RELI', 'REPO', 'RESI', 'RESI:DATE', 'RESI:PLAC', 'RESN', |
|
53 | + 'RETI', 'RETI:AGNC', 'RFN', 'RIN', 'ROLE', 'ROMN', 'SERV', 'SEX', 'SHARED_NOTE', |
|
54 | + 'SLGC', 'SLGC:DATE', 'SLGC:PLAC', 'SLGS', 'SLGS:DATE', 'SLGS:PLAC', 'SOUR', |
|
55 | + 'SPFX', 'SSN', 'STAE', 'STAT', 'STAT:DATE', 'SUBM', 'SUBN', 'SURN', 'TEMP', |
|
56 | + 'TEXT', 'TIME', 'TITL', 'TITL:FONE', 'TITL:ROMN', 'TITL:_HEB', 'TRLR', 'TYPE', |
|
57 | + 'URL', 'VERS', 'WIFE', 'WILL', 'WWW', '_ADOP_CHIL', '_ADOP_GCHI', '_ADOP_GCH1', |
|
58 | + '_ADOP_GCH2', '_ADOP_HSIB', '_ADOP_SIBL', '_ADPF', '_ADPM', '_AKA', '_AKAN', '_ASSO', |
|
59 | + '_BAPM_CHIL', '_BAPM_GCHI', '_BAPM_GCH1', '_BAPM_GCH2', '_BAPM_HSIB', '_BAPM_SIBL', |
|
60 | + '_BIBL', '_BIRT_CHIL', '_BIRT_GCHI', '_BIRT_GCH1', '_BIRT_GCH2', '_BIRT_HSIB', '_BIRT_SIBL', |
|
61 | + '_BRTM', '_BRTM:DATE', '_BRTM:PLAC', '_BURI_CHIL', |
|
62 | + '_BURI_GCHI', '_BURI_GCH1', '_BURI_GCH2', '_BURI_GPAR', '_BURI_HSIB', '_BURI_SIBL', '_BURI_SPOU', |
|
63 | + '_CHR_CHIL', '_CHR_GCHI', '_CHR_GCH1', '_CHR_GCH2', '_CHR_HSIB', '_CHR_SIBL', '_COML', |
|
64 | + '_CREM_CHIL', '_CREM_GCHI', '_CREM_GCH1', '_CREM_GCH2', '_CREM_GPAR', '_CREM_HSIB', '_CREM_SIBL', '_CREM_SPOU', |
|
65 | + '_DBID', '_DEAT_CHIL', '_DEAT_GCHI', '_DEAT_GCH1', '_DEAT_GCH2', '_DEAT_GPAR', '_DEAT_GPA1', '_DEAT_GPA2', |
|
66 | + '_DEAT_HSIB', '_DEAT_PARE', '_DEAT_SIBL', '_DEAT_SPOU', '_DEG', '_DETS', '_DNA', |
|
67 | + '_EMAIL', '_EYEC', '_FA1', '_FA2', '_FA3', '_FA4', '_FA5', '_FA6', '_FA7', '_FA8', |
|
68 | + '_FA9', '_FA10', '_FA11', '_FA12', '_FA13', '_FNRL', '_FREL', '_GEDF', '_GODP', '_HAIR', |
|
69 | + '_HEB', '_HEIG', '_HNM', '_HOL', '_INTE', '_LOC', '_MARI', |
|
70 | + '_MARNM', '_PRIM', '_MARNM_SURN', '_MARR_CHIL', '_MARR_FAMC', '_MARR_GCHI', |
|
71 | + '_MARR_GCH1', '_MARR_GCH2', '_MARR_HSIB', '_MARR_PARE', '_MARR_SIBL', '_MBON', |
|
72 | + '_MDCL', '_MEDC', '_MEND', '_MILI', '_MILT', '_MREL', '_MSTAT', '_NAME', '_NAMS', |
|
73 | + '_NLIV', '_NMAR', '_NMR', '_WT_USER', '_PRMN', '_SCBK', '_SEPR', '_SSHOW', '_STAT', |
|
74 | + '_SUBQ', '_TODO', '_TYPE', '_UID', '_URL', '_WEIG', '_WITN', '_YART', '__BRTM_CHIL', |
|
75 | + '__BRTM_GCHI', '__BRTM_GCH1', '__BRTM_GCH2', '__BRTM_HSIB', '__BRTM_SIBL', |
|
76 | + // These pseudo-tags are generated dynamically to display media object attributes |
|
77 | + '__FILE_SIZE__', '__IMAGE_SIZE__', |
|
78 | + ); |
|
79 | 79 | |
80 | - /** @var string[] Possible values for the Object-File-Format types */ |
|
81 | - private static $OBJE_FILE_FORM_TYPE = array( |
|
82 | - 'audio', 'book', 'card', 'certificate', 'coat', 'document', 'electronic', |
|
83 | - 'fiche', 'film', 'magazine', 'manuscript', 'map', 'newspaper', 'photo', |
|
84 | - 'tombstone', 'video', 'painting', 'other', |
|
85 | - ); |
|
80 | + /** @var string[] Possible values for the Object-File-Format types */ |
|
81 | + private static $OBJE_FILE_FORM_TYPE = array( |
|
82 | + 'audio', 'book', 'card', 'certificate', 'coat', 'document', 'electronic', |
|
83 | + 'fiche', 'film', 'magazine', 'manuscript', 'map', 'newspaper', 'photo', |
|
84 | + 'tombstone', 'video', 'painting', 'other', |
|
85 | + ); |
|
86 | 86 | |
87 | - /** |
|
88 | - * Is $tag one of our known tags? |
|
89 | - * |
|
90 | - * @param string $tag |
|
91 | - * |
|
92 | - * @return bool |
|
93 | - */ |
|
94 | - public static function isTag($tag) { |
|
95 | - return in_array($tag, self::$ALL_TAGS); |
|
96 | - } |
|
87 | + /** |
|
88 | + * Is $tag one of our known tags? |
|
89 | + * |
|
90 | + * @param string $tag |
|
91 | + * |
|
92 | + * @return bool |
|
93 | + */ |
|
94 | + public static function isTag($tag) { |
|
95 | + return in_array($tag, self::$ALL_TAGS); |
|
96 | + } |
|
97 | 97 | |
98 | - /** |
|
99 | - * Translate a tag, for an (optional) record |
|
100 | - * |
|
101 | - * @param string $tag |
|
102 | - * @param GedcomRecord|null $record |
|
103 | - * |
|
104 | - * @return string |
|
105 | - */ |
|
106 | - public static function getLabel($tag, GedcomRecord $record = null) { |
|
107 | - if ($record instanceof Individual) { |
|
108 | - $sex = $record->getSex(); |
|
109 | - } else { |
|
110 | - $sex = 'U'; |
|
111 | - } |
|
98 | + /** |
|
99 | + * Translate a tag, for an (optional) record |
|
100 | + * |
|
101 | + * @param string $tag |
|
102 | + * @param GedcomRecord|null $record |
|
103 | + * |
|
104 | + * @return string |
|
105 | + */ |
|
106 | + public static function getLabel($tag, GedcomRecord $record = null) { |
|
107 | + if ($record instanceof Individual) { |
|
108 | + $sex = $record->getSex(); |
|
109 | + } else { |
|
110 | + $sex = 'U'; |
|
111 | + } |
|
112 | 112 | |
113 | - switch ($tag) { |
|
114 | - case 'ABBR': |
|
115 | - return |
|
116 | - /* I18N: gedcom tag ABBR */ |
|
117 | - I18N::translate('Abbreviation'); |
|
118 | - case 'ADDR': |
|
119 | - return |
|
120 | - /* I18N: gedcom tag ADDR */ |
|
121 | - I18N::translate('Address'); |
|
122 | - case 'ADR1': |
|
123 | - return I18N::translate('Address line 1'); |
|
124 | - case 'ADR2': |
|
125 | - return I18N::translate('Address line 2'); |
|
126 | - case 'ADOP': |
|
127 | - return |
|
128 | - /* I18N: gedcom tag ADOP */ |
|
129 | - I18N::translate('Adoption'); |
|
130 | - case 'ADOP:DATE': |
|
131 | - return I18N::translate('Date of adoption'); |
|
132 | - case 'ADOP:PLAC': |
|
133 | - return I18N::translate('Place of adoption'); |
|
134 | - case 'AFN': |
|
135 | - return |
|
136 | - /* I18N: gedcom tag AFN */ |
|
137 | - I18N::translate('Ancestral file number'); |
|
138 | - case 'AGE': |
|
139 | - return |
|
140 | - /* I18N: gedcom tag AGE */ |
|
141 | - I18N::translate('Age'); |
|
142 | - case 'AGNC': |
|
143 | - return |
|
144 | - /* I18N: gedcom tag AGNC */ |
|
145 | - I18N::translate('Agency'); |
|
146 | - case 'ALIA': |
|
147 | - return |
|
148 | - /* I18N: gedcom tag ALIA */ |
|
149 | - I18N::translate('Alias'); |
|
150 | - case 'ANCE': |
|
151 | - return |
|
152 | - /* I18N: gedcom tag ANCE */ |
|
153 | - I18N::translate('Generations of ancestors'); |
|
154 | - case 'ANCI': |
|
155 | - return |
|
156 | - /* I18N: gedcom tag ANCI */ |
|
157 | - I18N::translate('Ancestors interest'); |
|
158 | - case 'ANUL': |
|
159 | - return |
|
160 | - /* I18N: gedcom tag ANUL */ |
|
161 | - I18N::translate('Annulment'); |
|
162 | - case 'ASSO': |
|
163 | - return |
|
164 | - /* I18N: gedcom tag ASSO */ |
|
165 | - I18N::translate('Associate'); /* see also _ASSO */ |
|
166 | - case 'AUTH': |
|
167 | - return |
|
168 | - /* I18N: gedcom tag AUTH */ |
|
169 | - I18N::translate('Author'); |
|
170 | - case 'BAPL': |
|
171 | - return |
|
172 | - /* I18N: gedcom tag BAPL. LDS = Church of Latter Day Saints. */ |
|
173 | - I18N::translate('LDS baptism'); |
|
174 | - case 'BAPL:DATE': |
|
175 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS baptism'); |
|
176 | - case 'BAPL:PLAC': |
|
177 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS baptism'); |
|
178 | - case 'BAPM': |
|
179 | - return |
|
180 | - /* I18N: gedcom tag BAPM */ |
|
181 | - I18N::translate('Baptism'); |
|
182 | - case 'BAPM:DATE': |
|
183 | - return I18N::translate('Date of baptism'); |
|
184 | - case 'BAPM:PLAC': |
|
185 | - return I18N::translate('Place of baptism'); |
|
186 | - case 'BARM': |
|
187 | - return |
|
188 | - /* I18N: gedcom tag BARM */ |
|
189 | - I18N::translate('Bar mitzvah'); |
|
190 | - case 'BARM:DATE': |
|
191 | - return I18N::translate('Date of bar mitzvah'); |
|
192 | - case 'BARM:PLAC': |
|
193 | - return I18N::translate('Place of bar mitzvah'); |
|
194 | - case 'BASM': |
|
195 | - return |
|
196 | - /* I18N: gedcom tag BASM */ |
|
197 | - I18N::translate('Bat mitzvah'); |
|
198 | - case 'BASM:DATE': |
|
199 | - return I18N::translate('Date of bat mitzvah'); |
|
200 | - case 'BASM:PLAC': |
|
201 | - return I18N::translate('Place of bat mitzvah'); |
|
202 | - case 'BIRT': |
|
203 | - return |
|
204 | - /* I18N: gedcom tag BIRT */ |
|
205 | - I18N::translate('Birth'); |
|
206 | - case 'BIRT:DATE': |
|
207 | - return I18N::translate('Date of birth'); |
|
208 | - case 'BIRT:PLAC': |
|
209 | - return I18N::translate('Place of birth'); |
|
210 | - case 'BLES': |
|
211 | - return |
|
212 | - /* I18N: gedcom tag BLES */ |
|
213 | - I18N::translate('Blessing'); |
|
214 | - case 'BLES:DATE': |
|
215 | - return I18N::translate('Date of blessing'); |
|
216 | - case 'BLES:PLAC': |
|
217 | - return I18N::translate('Place of blessing'); |
|
218 | - case 'BLOB': |
|
219 | - return |
|
220 | - /* I18N: gedcom tag BLOB */ |
|
221 | - I18N::translate('Binary data object'); |
|
222 | - case 'BURI': |
|
223 | - return |
|
224 | - /* I18N: gedcom tag BURI */ |
|
225 | - I18N::translate('Burial'); |
|
226 | - case 'BURI:DATE': |
|
227 | - return I18N::translate('Date of burial'); |
|
228 | - case 'BURI:PLAC': |
|
229 | - return I18N::translate('Place of burial'); |
|
230 | - case 'CALN': |
|
231 | - return |
|
232 | - /* I18N: gedcom tag CALN */ |
|
233 | - I18N::translate('Call number'); |
|
234 | - case 'CAST': |
|
235 | - return |
|
236 | - /* I18N: gedcom tag CAST */ |
|
237 | - I18N::translate('Caste'); |
|
238 | - case 'CAUS': |
|
239 | - return |
|
240 | - /* I18N: gedcom tag CAUS */ |
|
241 | - I18N::translate('Cause'); |
|
242 | - case 'CEME': |
|
243 | - return |
|
244 | - /* I18N: gedcom tag CEME */ |
|
245 | - I18N::translate('Cemetery'); |
|
246 | - case 'CENS': |
|
247 | - return |
|
248 | - /* I18N: gedcom tag CENS */ |
|
249 | - I18N::translate('Census'); |
|
250 | - case 'CENS:DATE': |
|
251 | - return I18N::translate('Census date'); |
|
252 | - case 'CENS:PLAC': |
|
253 | - return I18N::translate('Census place'); |
|
254 | - case 'CHAN': |
|
255 | - return |
|
256 | - /* I18N: gedcom tag CHAN */ |
|
257 | - I18N::translate('Last change'); |
|
258 | - case 'CHAN:DATE': |
|
259 | - return |
|
260 | - /* I18N: gedcom tag CHAN:DATE */ |
|
261 | - I18N::translate('Date of last change'); |
|
262 | - case 'CHAN:_WT_USER': |
|
263 | - return |
|
264 | - /* I18N: gedcom tag CHAN:_WT_USER */ |
|
265 | - I18N::translate('Author of last change'); |
|
266 | - case 'CHAR': |
|
267 | - return |
|
268 | - /* I18N: gedcom tag CHAR */ |
|
269 | - I18N::translate('Character set'); |
|
270 | - case 'CHIL': |
|
271 | - return |
|
272 | - /* I18N: gedcom tag CHIL */ |
|
273 | - I18N::translate('Child'); |
|
274 | - case 'CHR': |
|
275 | - return |
|
276 | - /* I18N: gedcom tag CHR */ |
|
277 | - I18N::translate('Christening'); |
|
278 | - case 'CHR:DATE': |
|
279 | - return I18N::translate('Date of christening'); |
|
280 | - case 'CHR:PLAC': |
|
281 | - return I18N::translate('Place of christening'); |
|
282 | - case 'CHRA': |
|
283 | - return |
|
284 | - /* I18N: gedcom tag CHRA */ |
|
285 | - I18N::translate('Adult christening'); |
|
286 | - case 'CITN': |
|
287 | - return |
|
288 | - /* I18N: gedcom tag CITN */ |
|
289 | - I18N::translate('Citizenship'); |
|
290 | - case 'CITY': |
|
291 | - return |
|
292 | - /* I18N: gedcom tag CITY */ |
|
293 | - I18N::translate('City'); |
|
294 | - case 'COMM': |
|
295 | - return |
|
296 | - /* I18N: gedcom tag COMM */ |
|
297 | - I18N::translate('Comment'); |
|
298 | - case 'CONC': |
|
299 | - return |
|
300 | - /* I18N: gedcom tag CONC */ |
|
301 | - I18N::translate('Concatenation'); |
|
302 | - case 'CONT': |
|
303 | - return |
|
304 | - /* I18N: gedcom tag CONT */ |
|
305 | - I18N::translate('Continued'); |
|
306 | - case 'CONF': |
|
307 | - return |
|
308 | - /* I18N: gedcom tag CONF */ |
|
309 | - I18N::translate('Confirmation'); |
|
310 | - case 'CONF:DATE': |
|
311 | - return I18N::translate('Date of confirmation'); |
|
312 | - case 'CONF:PLAC': |
|
313 | - return I18N::translate('Place of confirmation'); |
|
314 | - case 'CONL': |
|
315 | - return |
|
316 | - /* I18N: gedcom tag CONL. LDS = Church of Latter Day Saints. */ |
|
317 | - I18N::translate('LDS confirmation'); |
|
318 | - case 'COPR': |
|
319 | - return |
|
320 | - /* I18N: gedcom tag COPR */ |
|
321 | - I18N::translate('Copyright'); |
|
322 | - case 'CORP': |
|
323 | - return |
|
324 | - /* I18N: gedcom tag CORP */ |
|
325 | - I18N::translate('Corporation'); |
|
326 | - case 'CREM': |
|
327 | - return |
|
328 | - /* I18N: gedcom tag CREM */ |
|
329 | - I18N::translate('Cremation'); |
|
330 | - case 'CREM:DATE': |
|
331 | - return I18N::translate('Date of cremation'); |
|
332 | - case 'CREM:PLAC': |
|
333 | - return I18N::translate('Place of cremation'); |
|
334 | - case 'CTRY': |
|
335 | - return |
|
336 | - /* I18N: gedcom tag CTRY */ |
|
337 | - I18N::translate('Country'); |
|
338 | - case 'DATA': |
|
339 | - return |
|
340 | - /* I18N: gedcom tag DATA */ |
|
341 | - I18N::translate('Data'); |
|
342 | - case 'DATA:DATE': |
|
343 | - return I18N::translate('Date of entry in original source'); |
|
344 | - case 'DATE': |
|
345 | - return |
|
346 | - /* I18N: gedcom tag DATE */ |
|
347 | - I18N::translate('Date'); |
|
348 | - case 'DEAT': |
|
349 | - return |
|
350 | - /* I18N: gedcom tag DEAT */ |
|
351 | - I18N::translate('Death'); |
|
352 | - case 'DEAT:CAUS': |
|
353 | - return I18N::translate('Cause of death'); |
|
354 | - case 'DEAT:DATE': |
|
355 | - return I18N::translate('Date of death'); |
|
356 | - case 'DEAT:PLAC': |
|
357 | - return I18N::translate('Place of death'); |
|
358 | - case 'DESC': |
|
359 | - return |
|
360 | - /* I18N: gedcom tag DESC */ |
|
361 | - I18N::translate('Descendants'); |
|
362 | - case 'DESI': |
|
363 | - return |
|
364 | - /* I18N: gedcom tag DESI */ |
|
365 | - I18N::translate('Descendants interest'); |
|
366 | - case 'DEST': |
|
367 | - return |
|
368 | - /* I18N: gedcom tag DEST */ |
|
369 | - I18N::translate('Destination'); |
|
370 | - case 'DIV': |
|
371 | - return |
|
372 | - /* I18N: gedcom tag DIV */ |
|
373 | - I18N::translate('Divorce'); |
|
374 | - case 'DIVF': |
|
375 | - return |
|
376 | - /* I18N: gedcom tag DIVF */ |
|
377 | - I18N::translate('Divorce filed'); |
|
378 | - case 'DSCR': |
|
379 | - return |
|
380 | - /* I18N: gedcom tag DSCR */ |
|
381 | - I18N::translate('Description'); |
|
382 | - case 'EDUC': |
|
383 | - return |
|
384 | - /* I18N: gedcom tag EDUC */ |
|
385 | - I18N::translate('Education'); |
|
386 | - case 'EDUC:AGNC': |
|
387 | - return I18N::translate('School or college'); |
|
388 | - case 'EMAI': |
|
389 | - return |
|
390 | - /* I18N: gedcom tag EMAI */ |
|
391 | - I18N::translate('Email address'); |
|
392 | - case 'EMAIL': |
|
393 | - return |
|
394 | - /* I18N: gedcom tag EMAIL */ |
|
395 | - I18N::translate('Email address'); |
|
396 | - case 'EMAL': |
|
397 | - return |
|
398 | - /* I18N: gedcom tag EMAL */ |
|
399 | - I18N::translate('Email address'); |
|
400 | - case 'EMIG': |
|
401 | - return |
|
402 | - /* I18N: gedcom tag EMIG */ |
|
403 | - I18N::translate('Emigration'); |
|
404 | - case 'EMIG:DATE': |
|
405 | - return I18N::translate('Date of emigration'); |
|
406 | - case 'EMIG:PLAC': |
|
407 | - return I18N::translate('Place of emigration'); |
|
408 | - case 'ENDL': |
|
409 | - return |
|
410 | - /* I18N: gedcom tag ENDL. LDS = Church of Latter Day Saints. */ |
|
411 | - I18N::translate('LDS endowment'); |
|
412 | - case 'ENDL:DATE': |
|
413 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS endowment'); |
|
414 | - case 'ENDL:PLAC': |
|
415 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS endowment'); |
|
416 | - case 'ENGA': |
|
417 | - return |
|
418 | - /* I18N: gedcom tag ENGA */ |
|
419 | - I18N::translate('Engagement'); |
|
420 | - case 'ENGA:DATE': |
|
421 | - return I18N::translate('Date of engagement'); |
|
422 | - case 'ENGA:PLAC': |
|
423 | - return I18N::translate('Place of engagement'); |
|
424 | - case 'EVEN': |
|
425 | - return |
|
426 | - /* I18N: gedcom tag EVEN */ |
|
427 | - I18N::translate('Event'); |
|
428 | - case 'EVEN:DATE': |
|
429 | - return I18N::translate('Date of event'); |
|
430 | - case 'EVEN:PLAC': |
|
431 | - return I18N::translate('Place of event'); |
|
432 | - case 'EVEN:TYPE': |
|
433 | - return I18N::translate('Type of event'); |
|
434 | - case 'FACT': |
|
435 | - return |
|
436 | - /* I18N: gedcom tag FACT */ |
|
437 | - I18N::translate('Fact'); |
|
438 | - case 'FACT:TYPE': |
|
439 | - return I18N::translate('Type of fact'); |
|
440 | - case 'FAM': |
|
441 | - return |
|
442 | - /* I18N: gedcom tag FAM */ |
|
443 | - I18N::translate('Family'); |
|
444 | - case 'FAMC': |
|
445 | - return |
|
446 | - /* I18N: gedcom tag FAMC */ |
|
447 | - I18N::translate('Family as a child'); |
|
448 | - case 'FAMF': |
|
449 | - return |
|
450 | - /* I18N: gedcom tag FAMF */ |
|
451 | - I18N::translate('Family file'); |
|
452 | - case 'FAMS': |
|
453 | - return |
|
454 | - /* I18N: gedcom tag FAMS */ |
|
455 | - I18N::translate('Family as a spouse'); |
|
456 | - case 'FAMS:CENS:DATE': |
|
457 | - return I18N::translate('Spouse census date'); |
|
458 | - case 'FAMS:CENS:PLAC': |
|
459 | - return I18N::translate('Spouse census place'); |
|
460 | - case 'FAMS:DIV:DATE': |
|
461 | - return I18N::translate('Date of divorce'); |
|
462 | - case 'FAMS:MARR:DATE': |
|
463 | - return I18N::translate('Date of marriage'); |
|
464 | - case 'FAMS:MARR:PLAC': |
|
465 | - return I18N::translate('Place of marriage'); |
|
466 | - case 'FAMS:NOTE': |
|
467 | - return I18N::translate('Spouse note'); |
|
468 | - case 'FAMS:SLGS:DATE': |
|
469 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS spouse sealing'); |
|
470 | - case 'FAMS:SLGS:PLAC': |
|
471 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS spouse sealing'); |
|
472 | - case 'FAX': |
|
473 | - return |
|
474 | - /* I18N: gedcom tag FAX */ |
|
475 | - I18N::translate('Fax'); |
|
476 | - case 'FCOM': |
|
477 | - return |
|
478 | - /* I18N: gedcom tag FCOM */ |
|
479 | - I18N::translate('First communion'); |
|
480 | - case 'FCOM:DATE': |
|
481 | - return I18N::translate('Date of first communion'); |
|
482 | - case 'FCOM:PLAC': |
|
483 | - return I18N::translate('Place of first communion'); |
|
484 | - case 'FILE': |
|
485 | - return |
|
486 | - /* I18N: gedcom tag FILE */ |
|
487 | - I18N::translate('Filename'); |
|
488 | - case 'FONE': |
|
489 | - return |
|
490 | - /* I18N: gedcom tag FONE */ |
|
491 | - I18N::translate('Phonetic'); |
|
492 | - case 'FORM': |
|
493 | - return |
|
494 | - /* I18N: gedcom tag FORM */ |
|
495 | - I18N::translate('Format'); |
|
496 | - case 'GEDC': |
|
497 | - return |
|
498 | - /* I18N: gedcom tag GEDC */ |
|
499 | - I18N::translate('GEDCOM file'); |
|
500 | - case 'GIVN': |
|
501 | - return |
|
502 | - /* I18N: gedcom tag GIVN */ |
|
503 | - I18N::translate('Given names'); |
|
504 | - case 'GRAD': |
|
505 | - return |
|
506 | - /* I18N: gedcom tag GRAD */ |
|
507 | - I18N::translate('Graduation'); |
|
508 | - case 'HEAD': |
|
509 | - return |
|
510 | - /* I18N: gedcom tag HEAD */ |
|
511 | - I18N::translate('Header'); |
|
512 | - case 'HUSB': |
|
513 | - return |
|
514 | - /* I18N: gedcom tag HUSB */ |
|
515 | - I18N::translate('Husband'); |
|
516 | - case 'IDNO': |
|
517 | - return |
|
518 | - /* I18N: gedcom tag IDNO */ |
|
519 | - I18N::translate('Identification number'); |
|
520 | - case 'IMMI': |
|
521 | - return |
|
522 | - /* I18N: gedcom tag IMMI */ |
|
523 | - I18N::translate('Immigration'); |
|
524 | - case 'IMMI:DATE': |
|
525 | - return I18N::translate('Date of immigration'); |
|
526 | - case 'IMMI:PLAC': |
|
527 | - return I18N::translate('Place of immigration'); |
|
528 | - case 'INDI': |
|
529 | - return |
|
530 | - /* I18N: gedcom tag INDI */ |
|
531 | - I18N::translate('Individual'); |
|
532 | - case 'INFL': |
|
533 | - return |
|
534 | - /* I18N: gedcom tag INFL */ |
|
535 | - I18N::translate('Infant'); |
|
536 | - case 'LANG': |
|
537 | - return |
|
538 | - /* I18N: gedcom tag LANG */ |
|
539 | - I18N::translate('Language'); |
|
540 | - case 'LATI': |
|
541 | - return |
|
542 | - /* I18N: gedcom tag LATI */ |
|
543 | - I18N::translate('Latitude'); |
|
544 | - case 'LEGA': |
|
545 | - return |
|
546 | - /* I18N: gedcom tag LEGA */ |
|
547 | - I18N::translate('Legatee'); |
|
548 | - case 'LONG': |
|
549 | - return |
|
550 | - /* I18N: gedcom tag LONG */ |
|
551 | - I18N::translate('Longitude'); |
|
552 | - case 'MAP': |
|
553 | - return |
|
554 | - /* I18N: gedcom tag MAP */ |
|
555 | - I18N::translate('Map'); |
|
556 | - case 'MARB': |
|
557 | - return |
|
558 | - /* I18N: gedcom tag MARB */ |
|
559 | - I18N::translate('Marriage banns'); |
|
560 | - case 'MARB:DATE': |
|
561 | - return I18N::translate('Date of marriage banns'); |
|
562 | - case 'MARB:PLAC': |
|
563 | - return I18N::translate('Place of marriage banns'); |
|
564 | - case 'MARC': |
|
565 | - return |
|
566 | - /* I18N: gedcom tag MARC */ |
|
567 | - I18N::translate('Marriage contract'); |
|
568 | - case 'MARL': |
|
569 | - return |
|
570 | - /* I18N: gedcom tag MARL */ |
|
571 | - I18N::translate('Marriage license'); |
|
572 | - case 'MARR': |
|
573 | - return |
|
574 | - /* I18N: gedcom tag MARR */ |
|
575 | - I18N::translate('Marriage'); |
|
576 | - case 'MARR:DATE': |
|
577 | - return I18N::translate('Date of marriage'); |
|
578 | - case 'MARR:PLAC': |
|
579 | - return I18N::translate('Place of marriage'); |
|
580 | - case 'MARR_CIVIL': |
|
581 | - return I18N::translate('Civil marriage'); |
|
582 | - case 'MARR_PARTNERS': |
|
583 | - return I18N::translate('Registered partnership'); |
|
584 | - case 'MARR_RELIGIOUS': |
|
585 | - return I18N::translate('Religious marriage'); |
|
586 | - case 'MARR_UNKNOWN': |
|
587 | - return I18N::translate('Marriage type unknown'); |
|
588 | - case 'MARS': |
|
589 | - return |
|
590 | - /* I18N: gedcom tag MARS */ |
|
591 | - I18N::translate('Marriage settlement'); |
|
592 | - case 'MEDI': |
|
593 | - return |
|
594 | - /* I18N: gedcom tag MEDI */ |
|
595 | - I18N::translate('Media type'); |
|
596 | - case 'NAME': |
|
597 | - if ($record instanceof Repository) { |
|
598 | - return |
|
599 | - /* I18N: gedcom tag REPO:NAME */ |
|
600 | - I18N::translateContext('Repository', 'Name'); |
|
601 | - } else { |
|
602 | - return |
|
603 | - /* I18N: gedcom tag NAME */ |
|
604 | - I18N::translate('Name'); |
|
605 | - } |
|
606 | - case 'NAME:FONE': |
|
607 | - return I18N::translate('Phonetic name'); |
|
608 | - case 'NAME:_HEB': |
|
609 | - return I18N::translate('Name in Hebrew'); |
|
610 | - case 'NATI': |
|
611 | - return |
|
612 | - /* I18N: gedcom tag NATI */ |
|
613 | - I18N::translate('Nationality'); |
|
614 | - case 'NATU': |
|
615 | - return |
|
616 | - /* I18N: gedcom tag NATU */ |
|
617 | - I18N::translate('Naturalization'); |
|
618 | - case 'NATU:DATE': |
|
619 | - return I18N::translate('Date of naturalization'); |
|
620 | - case 'NATU:PLAC': |
|
621 | - return I18N::translate('Place of naturalization'); |
|
622 | - case 'NCHI': |
|
623 | - return |
|
624 | - /* I18N: gedcom tag NCHI */ |
|
625 | - I18N::translate('Number of children'); |
|
626 | - case 'NICK': |
|
627 | - return |
|
628 | - /* I18N: gedcom tag NICK */ |
|
629 | - I18N::translate('Nickname'); |
|
630 | - case 'NMR': |
|
631 | - return |
|
632 | - /* I18N: gedcom tag NMR */ |
|
633 | - I18N::translate('Number of marriages'); |
|
634 | - case 'NOTE': |
|
635 | - return |
|
636 | - /* I18N: gedcom tag NOTE */ |
|
637 | - I18N::translate('Note'); |
|
638 | - case 'NPFX': |
|
639 | - return |
|
640 | - /* I18N: gedcom tag NPFX */ |
|
641 | - I18N::translate('Name prefix'); |
|
642 | - case 'NSFX': |
|
643 | - return |
|
644 | - /* I18N: gedcom tag NSFX */ |
|
645 | - I18N::translate('Name suffix'); |
|
646 | - case 'OBJE': |
|
647 | - return |
|
648 | - /* I18N: gedcom tag OBJE */ |
|
649 | - I18N::translate('Media object'); |
|
650 | - case 'OCCU': |
|
651 | - return |
|
652 | - /* I18N: gedcom tag OCCU */ |
|
653 | - I18N::translate('Occupation'); |
|
654 | - case 'OCCU:AGNC': |
|
655 | - return I18N::translate('Employer'); |
|
656 | - case 'ORDI': |
|
657 | - return |
|
658 | - /* I18N: gedcom tag ORDI */ |
|
659 | - I18N::translate('Ordinance'); |
|
660 | - case 'ORDN': |
|
661 | - return |
|
662 | - /* I18N: gedcom tag ORDN */ |
|
663 | - I18N::translate('Ordination'); |
|
664 | - case 'ORDN:AGNC': |
|
665 | - return I18N::translate('Religious institution'); |
|
666 | - case 'ORDN:DATE': |
|
667 | - return I18N::translate('Date of ordination'); |
|
668 | - case 'ORDN:PLAC': |
|
669 | - return I18N::translate('Place of ordination'); |
|
670 | - case 'PAGE': |
|
671 | - return |
|
672 | - /* I18N: gedcom tag PAGE */ |
|
673 | - I18N::translate('Citation details'); |
|
674 | - case 'PEDI': |
|
675 | - return |
|
676 | - /* I18N: gedcom tag PEDI */ |
|
677 | - I18N::translate('Relationship to parents'); |
|
678 | - case 'PHON': |
|
679 | - return |
|
680 | - /* I18N: gedcom tag PHON */ |
|
681 | - I18N::translate('Phone'); |
|
682 | - case 'PLAC': |
|
683 | - return |
|
684 | - /* I18N: gedcom tag PLAC */ |
|
685 | - I18N::translate('Place'); |
|
686 | - case 'PLAC:FONE': |
|
687 | - return I18N::translate('Phonetic place'); |
|
688 | - case 'PLAC:ROMN': |
|
689 | - return I18N::translate('Romanized place'); |
|
690 | - case 'PLAC:_HEB': |
|
691 | - return I18N::translate('Place in Hebrew'); |
|
692 | - case 'POST': |
|
693 | - return |
|
694 | - /* I18N: gedcom tag POST */ |
|
695 | - I18N::translate('Postal code'); |
|
696 | - case 'PROB': |
|
697 | - return |
|
698 | - /* I18N: gedcom tag PROB */ |
|
699 | - I18N::translate('Probate'); |
|
700 | - case 'PROP': |
|
701 | - return |
|
702 | - /* I18N: gedcom tag PROP */ |
|
703 | - I18N::translate('Property'); |
|
704 | - case 'PUBL': |
|
705 | - return |
|
706 | - /* I18N: gedcom tag PUBL */ |
|
707 | - I18N::translate('Publication'); |
|
708 | - case 'QUAY': |
|
709 | - return |
|
710 | - /* I18N: gedcom tag QUAY */ |
|
711 | - I18N::translate('Quality of data'); |
|
712 | - case 'REFN': |
|
713 | - return |
|
714 | - /* I18N: gedcom tag REFN */ |
|
715 | - I18N::translate('Reference number'); |
|
716 | - case 'RELA': |
|
717 | - return |
|
718 | - /* I18N: gedcom tag RELA */ |
|
719 | - I18N::translate('Relationship'); |
|
720 | - case 'RELI': |
|
721 | - return |
|
722 | - /* I18N: gedcom tag RELI */ |
|
723 | - I18N::translate('Religion'); |
|
724 | - case 'REPO': |
|
725 | - return |
|
726 | - /* I18N: gedcom tag REPO */ |
|
727 | - I18N::translate('Repository'); |
|
728 | - case 'RESI': |
|
729 | - return |
|
730 | - /* I18N: gedcom tag RESI */ |
|
731 | - I18N::translate('Residence'); |
|
732 | - case 'RESI:DATE': |
|
733 | - return I18N::translate('Date of residence'); |
|
734 | - case 'RESI:PLAC': |
|
735 | - return I18N::translate('Place of residence'); |
|
736 | - case 'RESN': |
|
737 | - return |
|
738 | - /* I18N: gedcom tag RESN */ |
|
739 | - I18N::translate('Restriction'); |
|
740 | - case 'RETI': |
|
741 | - return |
|
742 | - /* I18N: gedcom tag RETI */ |
|
743 | - I18N::translate('Retirement'); |
|
744 | - case 'RETI:AGNC': |
|
745 | - return I18N::translate('Employer'); |
|
746 | - case 'RFN': |
|
747 | - return |
|
748 | - /* I18N: gedcom tag RFN */ |
|
749 | - I18N::translate('Record file number'); |
|
750 | - case 'RIN': |
|
751 | - return |
|
752 | - /* I18N: gedcom tag RIN */ |
|
753 | - I18N::translate('Record ID number'); |
|
754 | - case 'ROLE': |
|
755 | - return |
|
756 | - /* I18N: gedcom tag ROLE */ |
|
757 | - I18N::translate('Role'); |
|
758 | - case 'ROMN': |
|
759 | - return |
|
760 | - /* I18N: gedcom tag ROMN */ |
|
761 | - I18N::translate('Romanized'); |
|
762 | - case 'SERV': |
|
763 | - return |
|
764 | - /* I18N: gedcom tag SERV */ |
|
765 | - I18N::translate('Remote server'); |
|
766 | - case 'SEX': |
|
767 | - return |
|
768 | - /* I18N: gedcom tag SEX */ |
|
769 | - I18N::translate('Gender'); |
|
770 | - case 'SHARED_NOTE': |
|
771 | - return I18N::translate('Shared note'); |
|
772 | - case 'SLGC': |
|
773 | - return |
|
774 | - /* I18N: gedcom tag SLGC. LDS = Church of Latter Day Saints. */ |
|
775 | - I18N::translate('LDS child sealing'); |
|
776 | - case 'SLGC:DATE': |
|
777 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS child sealing'); |
|
778 | - case 'SLGC:PLAC': |
|
779 | - return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS child sealing'); |
|
780 | - case 'SLGS': |
|
781 | - return |
|
782 | - /* I18N: gedcom tag SLGS. LDS = Church of Latter Day Saints. */ |
|
783 | - I18N::translate('LDS spouse sealing'); |
|
784 | - case 'SOUR': |
|
785 | - return |
|
786 | - /* I18N: gedcom tag SOUR */ |
|
787 | - I18N::translate('Source'); |
|
788 | - case 'SPFX': |
|
789 | - return |
|
790 | - /* I18N: gedcom tag SPFX */ |
|
791 | - I18N::translate('Surname prefix'); |
|
792 | - case 'SSN': |
|
793 | - return |
|
794 | - /* I18N: gedcom tag SSN */ |
|
795 | - I18N::translate('Social security number'); |
|
796 | - case 'STAE': |
|
797 | - return |
|
798 | - /* I18N: gedcom tag STAE */ |
|
799 | - I18N::translate('State'); |
|
800 | - case 'STAT': |
|
801 | - return |
|
802 | - /* I18N: gedcom tag STAT */ |
|
803 | - I18N::translate('Status'); |
|
804 | - case 'STAT:DATE': |
|
805 | - return I18N::translate('Status change date'); |
|
806 | - case 'SUBM': |
|
807 | - return |
|
808 | - /* I18N: gedcom tag SUBM */ |
|
809 | - I18N::translate('Submitter'); |
|
810 | - case 'SUBN': |
|
811 | - return |
|
812 | - /* I18N: gedcom tag SUBN */ |
|
813 | - I18N::translate('Submission'); |
|
814 | - case 'SURN': |
|
815 | - return |
|
816 | - /* I18N: gedcom tag SURN */ |
|
817 | - I18N::translate('Surname'); |
|
818 | - case 'TEMP': |
|
819 | - return |
|
820 | - /* I18N: gedcom tag TEMP */ |
|
821 | - I18N::translate('Temple'); |
|
822 | - case 'TEXT': |
|
823 | - return |
|
824 | - /* I18N: gedcom tag TEXT */ |
|
825 | - I18N::translate('Text'); |
|
826 | - case 'TIME': |
|
827 | - return |
|
828 | - /* I18N: gedcom tag TIME */ |
|
829 | - I18N::translate('Time'); |
|
830 | - case 'TITL': |
|
831 | - return |
|
832 | - /* I18N: gedcom tag TITL */ |
|
833 | - I18N::translate('Title'); |
|
834 | - case 'TITL:FONE': |
|
835 | - return I18N::translate('Phonetic title'); |
|
836 | - case 'TITL:ROMN': |
|
837 | - return I18N::translate('Romanized title'); |
|
838 | - case 'TITL:_HEB': |
|
839 | - return I18N::translate('Title in Hebrew'); |
|
840 | - case 'TRLR': |
|
841 | - return |
|
842 | - /* I18N: gedcom tag TRLR */ |
|
843 | - I18N::translate('Trailer'); |
|
844 | - case 'TYPE': |
|
845 | - return |
|
846 | - /* I18N: gedcom tag TYPE */ |
|
847 | - I18N::translate('Type'); |
|
848 | - case 'URL': |
|
849 | - return |
|
850 | - /* I18N: gedcom tag URL (A web address / URL) */ |
|
851 | - I18N::translate('URL'); |
|
852 | - case 'VERS': |
|
853 | - return |
|
854 | - /* I18N: gedcom tag VERS */ |
|
855 | - I18N::translate('Version'); |
|
856 | - case 'WIFE': |
|
857 | - return |
|
858 | - /* I18N: gedcom tag WIFE */ |
|
859 | - I18N::translate('Wife'); |
|
860 | - case 'WILL': |
|
861 | - return |
|
862 | - /* I18N: gedcom tag WILL */ |
|
863 | - I18N::translate('Will'); |
|
864 | - case 'WWW': |
|
865 | - return |
|
866 | - /* I18N: gedcom tag WWW (A web address / URL) */ |
|
867 | - I18N::translate('URL'); |
|
868 | - case '_ADOP_CHIL': |
|
869 | - switch ($sex) { |
|
870 | - case 'M': |
|
871 | - return I18N::translate('Adoption of a son'); |
|
872 | - case 'F': |
|
873 | - return I18N::translate('Adoption of a daughter'); |
|
874 | - default: |
|
875 | - return I18N::translate('Adoption of a child'); |
|
876 | - } |
|
877 | - case '_ADOP_GCHI': |
|
878 | - switch ($sex) { |
|
879 | - case 'M': |
|
880 | - return I18N::translate('Adoption of a grandson'); |
|
881 | - case 'F': |
|
882 | - return I18N::translate('Adoption of a granddaughter'); |
|
883 | - default: |
|
884 | - return I18N::translate('Adoption of a grandchild'); |
|
885 | - } |
|
886 | - case '_ADOP_GCH1': |
|
887 | - switch ($sex) { |
|
888 | - case 'M': |
|
889 | - return I18N::translateContext('daughter’s son', 'Adoption of a grandson'); |
|
890 | - case 'F': |
|
891 | - return I18N::translateContext('daughter’s daughter', 'Adoption of a granddaughter'); |
|
892 | - default: |
|
893 | - return I18N::translate('Adoption of a grandchild'); |
|
894 | - } |
|
895 | - case '_ADOP_GCH2': |
|
896 | - switch ($sex) { |
|
897 | - case 'M': |
|
898 | - return I18N::translateContext('son’s son', 'Adoption of a grandson'); |
|
899 | - case 'F': |
|
900 | - return I18N::translateContext('son’s daughter', 'Adoption of a granddaughter'); |
|
901 | - default: |
|
902 | - return I18N::translate('Adoption of a grandchild'); |
|
903 | - } |
|
904 | - case '_ADOP_HSIB': |
|
905 | - switch ($sex) { |
|
906 | - case 'M': |
|
907 | - return I18N::translate('Adoption of a half-brother'); |
|
908 | - case 'F': |
|
909 | - return I18N::translate('Adoption of a half-sister'); |
|
910 | - default: |
|
911 | - return I18N::translate('Adoption of a half-sibling'); |
|
912 | - } |
|
913 | - case '_ADOP_SIBL': |
|
914 | - switch ($sex) { |
|
915 | - case 'M': |
|
916 | - return I18N::translate('Adoption of a brother'); |
|
917 | - case 'F': |
|
918 | - return I18N::translate('Adoption of a sister'); |
|
919 | - default: |
|
920 | - return I18N::translate('Adoption of a sibling'); |
|
921 | - } |
|
922 | - case '_ADPF': |
|
923 | - switch ($sex) { |
|
924 | - case 'M': |
|
925 | - return |
|
926 | - /* I18N: gedcom tag _ADPF */ |
|
927 | - I18N::translateContext('MALE', 'Adopted by father'); |
|
928 | - case 'F': |
|
929 | - return |
|
930 | - /* I18N: gedcom tag _ADPF */ |
|
931 | - I18N::translateContext('FEMALE', 'Adopted by father'); |
|
932 | - default: |
|
933 | - return |
|
934 | - /* I18N: gedcom tag _ADPF */ |
|
935 | - I18N::translate('Adopted by father'); |
|
936 | - } |
|
937 | - case '_ADPM': |
|
938 | - switch ($sex) { |
|
939 | - case 'M': |
|
940 | - return |
|
941 | - /* I18N: gedcom tag _ADPM */ |
|
942 | - I18N::translateContext('MALE', 'Adopted by mother'); |
|
943 | - case 'F': |
|
944 | - return |
|
945 | - /* I18N: gedcom tag _ADPM */ |
|
946 | - I18N::translateContext('FEMALE', 'Adopted by mother'); |
|
947 | - default: |
|
948 | - return |
|
949 | - /* I18N: gedcom tag _ADPM */ |
|
950 | - I18N::translate('Adopted by mother'); |
|
951 | - } |
|
952 | - case '_AKA': |
|
953 | - case '_AKAN': |
|
954 | - switch ($sex) { |
|
955 | - case 'M': |
|
956 | - return |
|
957 | - /* I18N: gedcom tag _AKA */ |
|
958 | - I18N::translateContext('MALE', 'Also known as'); |
|
959 | - case 'F': |
|
960 | - return |
|
961 | - /* I18N: gedcom tag _AKA */ |
|
962 | - I18N::translateContext('FEMALE', 'Also known as'); |
|
963 | - default: |
|
964 | - return |
|
965 | - /* I18N: gedcom tag _AKA */ |
|
966 | - I18N::translate('Also known as'); |
|
967 | - } |
|
968 | - case '_ASSO': |
|
969 | - return |
|
970 | - /* I18N: gedcom tag _ASSO */ |
|
971 | - I18N::translate('Associate'); /* see also ASSO */ |
|
972 | - case '_BAPM_CHIL': |
|
973 | - switch ($sex) { |
|
974 | - case 'M': |
|
975 | - return I18N::translate('Baptism of a son'); |
|
976 | - case 'F': |
|
977 | - return I18N::translate('Baptism of a daughter'); |
|
978 | - default: |
|
979 | - return I18N::translate('Baptism of a child'); |
|
980 | - } |
|
981 | - case '_BAPM_GCHI': |
|
982 | - switch ($sex) { |
|
983 | - case 'M': |
|
984 | - return I18N::translate('Baptism of a grandson'); |
|
985 | - case 'F': |
|
986 | - return I18N::translate('Baptism of a granddaughter'); |
|
987 | - default: |
|
988 | - return I18N::translate('Baptism of a grandchild'); |
|
989 | - } |
|
990 | - case '_BAPM_GCH1': |
|
991 | - switch ($sex) { |
|
992 | - case 'M': |
|
993 | - return I18N::translateContext('daughter’s son', 'Baptism of a grandson'); |
|
994 | - case 'F': |
|
995 | - return I18N::translateContext('daughter’s daughter', 'Baptism of a granddaughter'); |
|
996 | - default: |
|
997 | - return I18N::translate('Baptism of a grandchild'); |
|
998 | - } |
|
999 | - case '_BAPM_GCH2': |
|
1000 | - switch ($sex) { |
|
1001 | - case 'M': |
|
1002 | - return I18N::translateContext('son’s son', 'Baptism of a grandson'); |
|
1003 | - case 'F': |
|
1004 | - return I18N::translateContext('son’s daughter', 'Baptism of a granddaughter'); |
|
1005 | - default: |
|
1006 | - return I18N::translate('Baptism of a grandchild'); |
|
1007 | - } |
|
1008 | - case '_BAPM_HSIB': |
|
1009 | - switch ($sex) { |
|
1010 | - case 'M': |
|
1011 | - return I18N::translate('Baptism of a half-brother'); |
|
1012 | - case 'F': |
|
1013 | - return I18N::translate('Baptism of a half-sister'); |
|
1014 | - default: |
|
1015 | - return I18N::translate('Baptism of a half-sibling'); |
|
1016 | - } |
|
1017 | - case '_BAPM_SIBL': |
|
1018 | - switch ($sex) { |
|
1019 | - case 'M': |
|
1020 | - return I18N::translate('Baptism of a brother'); |
|
1021 | - case 'F': |
|
1022 | - return I18N::translate('Baptism of a sister'); |
|
1023 | - default: |
|
1024 | - return I18N::translate('Baptism of a sibling'); |
|
1025 | - } |
|
1026 | - case '_BIBL': |
|
1027 | - return |
|
1028 | - /* I18N: gedcom tag _BIBL */ |
|
1029 | - I18N::translate('Bibliography'); |
|
1030 | - case '_BIRT_CHIL': |
|
1031 | - switch ($sex) { |
|
1032 | - case 'M': |
|
1033 | - return I18N::translate('Birth of a son'); |
|
1034 | - case 'F': |
|
1035 | - return I18N::translate('Birth of a daughter'); |
|
1036 | - default: |
|
1037 | - return I18N::translate('Birth of a child'); |
|
1038 | - } |
|
1039 | - case '_BIRT_GCHI': |
|
1040 | - switch ($sex) { |
|
1041 | - case 'M': |
|
1042 | - return I18N::translate('Birth of a grandson'); |
|
1043 | - case 'F': |
|
1044 | - return I18N::translate('Birth of a granddaughter'); |
|
1045 | - default: |
|
1046 | - return I18N::translate('Birth of a grandchild'); |
|
1047 | - } |
|
1048 | - case '_BIRT_GCH1': |
|
1049 | - switch ($sex) { |
|
1050 | - case 'M': |
|
1051 | - return I18N::translateContext('daughter’s son', 'Birth of a grandson'); |
|
1052 | - case 'F': |
|
1053 | - return I18N::translateContext('daughter’s daughter', 'Birth of a granddaughter'); |
|
1054 | - default: |
|
1055 | - return I18N::translate('Birth of a grandchild'); |
|
1056 | - } |
|
1057 | - case '_BIRT_GCH2': |
|
1058 | - switch ($sex) { |
|
1059 | - case 'M': |
|
1060 | - return I18N::translateContext('son’s son', 'Birth of a grandson'); |
|
1061 | - case 'F': |
|
1062 | - return I18N::translateContext('son’s daughter', 'Birth of a granddaughter'); |
|
1063 | - default: |
|
1064 | - return I18N::translate('Birth of a grandchild'); |
|
1065 | - } |
|
1066 | - case '_BIRT_HSIB': |
|
1067 | - switch ($sex) { |
|
1068 | - case 'M': |
|
1069 | - return I18N::translate('Birth of a half-brother'); |
|
1070 | - case 'F': |
|
1071 | - return I18N::translate('Birth of a half-sister'); |
|
1072 | - default: |
|
1073 | - return I18N::translate('Birth of a half-sibling'); |
|
1074 | - } |
|
1075 | - case '_BIRT_SIBL': |
|
1076 | - switch ($sex) { |
|
1077 | - case 'M': |
|
1078 | - return I18N::translate('Birth of a brother'); |
|
1079 | - case 'F': |
|
1080 | - return I18N::translate('Birth of a sister'); |
|
1081 | - default: |
|
1082 | - return I18N::translate('Birth of a sibling'); |
|
1083 | - } |
|
1084 | - case '_BRTM': |
|
1085 | - return |
|
1086 | - /* I18N: gedcom tag _BRTM */ |
|
1087 | - I18N::translate('Brit milah'); |
|
1088 | - case '_BRTM:DATE': |
|
1089 | - return I18N::translate('Date of brit milah'); |
|
1090 | - case '_BRTM:PLAC': |
|
1091 | - return I18N::translate('Place of brit milah'); |
|
1092 | - case '_BURI_CHIL': |
|
1093 | - switch ($sex) { |
|
1094 | - case 'M': |
|
1095 | - return I18N::translate('Burial of a son'); |
|
1096 | - case 'F': |
|
1097 | - return I18N::translate('Burial of a daughter'); |
|
1098 | - default: |
|
1099 | - return I18N::translate('Burial of a child'); |
|
1100 | - } |
|
1101 | - case '_BURI_GCHI': |
|
1102 | - switch ($sex) { |
|
1103 | - case 'M': |
|
1104 | - return I18N::translate('Burial of a grandson'); |
|
1105 | - case 'F': |
|
1106 | - return I18N::translate('Burial of a granddaughter'); |
|
1107 | - default: |
|
1108 | - return I18N::translate('Burial of a grandchild'); |
|
1109 | - } |
|
1110 | - case '_BURI_GCH1': |
|
1111 | - switch ($sex) { |
|
1112 | - case 'M': |
|
1113 | - return I18N::translateContext('daughter’s son', 'Burial of a grandson'); |
|
1114 | - case 'F': |
|
1115 | - return I18N::translateContext('daughter’s daughter', 'Burial of a granddaughter'); |
|
1116 | - default: |
|
1117 | - return I18N::translate('Burial of a grandchild'); |
|
1118 | - } |
|
1119 | - case '_BURI_GCH2': |
|
1120 | - switch ($sex) { |
|
1121 | - case 'M': |
|
1122 | - return I18N::translateContext('son’s son', 'Burial of a grandson'); |
|
1123 | - case 'F': |
|
1124 | - return I18N::translateContext('son’s daughter', 'Burial of a granddaughter'); |
|
1125 | - default: |
|
1126 | - return I18N::translate('Burial of a grandchild'); |
|
1127 | - } |
|
1128 | - case '_BURI_GPAR': |
|
1129 | - switch ($sex) { |
|
1130 | - case 'M': |
|
1131 | - return I18N::translate('Burial of a grandfather'); |
|
1132 | - case 'F': |
|
1133 | - return I18N::translate('Burial of a grandmother'); |
|
1134 | - default: |
|
1135 | - return I18N::translate('Burial of a grandparent'); |
|
1136 | - } |
|
1137 | - case '_BURI_GPA1': |
|
1138 | - switch ($sex) { |
|
1139 | - case 'M': |
|
1140 | - return I18N::translate('Burial of a paternal grandfather'); |
|
1141 | - case 'F': |
|
1142 | - return I18N::translate('Burial of a paternal grandmother'); |
|
1143 | - default: |
|
1144 | - return I18N::translate('Burial of a paternal grandparent'); |
|
1145 | - } |
|
1146 | - case '_BURI_GPA2': |
|
1147 | - switch ($sex) { |
|
1148 | - case 'M': |
|
1149 | - return I18N::translate('Burial of a maternal grandfather'); |
|
1150 | - case 'F': |
|
1151 | - return I18N::translate('Burial of a maternal grandmother'); |
|
1152 | - default: |
|
1153 | - return I18N::translate('Burial of a maternal grandparent'); |
|
1154 | - } |
|
1155 | - case '_BURI_HSIB': |
|
1156 | - switch ($sex) { |
|
1157 | - case 'M': |
|
1158 | - return I18N::translate('Burial of a half-brother'); |
|
1159 | - case 'F': |
|
1160 | - return I18N::translate('Burial of a half-sister'); |
|
1161 | - default: |
|
1162 | - return I18N::translate('Burial of a half-sibling'); |
|
1163 | - } |
|
1164 | - case '_BURI_PARE': |
|
1165 | - switch ($sex) { |
|
1166 | - case 'M': |
|
1167 | - return I18N::translate('Burial of a father'); |
|
1168 | - case 'F': |
|
1169 | - return I18N::translate('Burial of a mother'); |
|
1170 | - default: |
|
1171 | - return I18N::translate('Burial of a parent'); |
|
1172 | - } |
|
1173 | - case '_BURI_SIBL': |
|
1174 | - switch ($sex) { |
|
1175 | - case 'M': |
|
1176 | - return I18N::translate('Burial of a brother'); |
|
1177 | - case 'F': |
|
1178 | - return I18N::translate('Burial of a sister'); |
|
1179 | - default: |
|
1180 | - return I18N::translate('Burial of a sibling'); |
|
1181 | - } |
|
1182 | - case '_BURI_SPOU': |
|
1183 | - switch ($sex) { |
|
1184 | - case 'M': |
|
1185 | - return I18N::translate('Burial of a husband'); |
|
1186 | - case 'F': |
|
1187 | - return I18N::translate('Burial of a wife'); |
|
1188 | - default: |
|
1189 | - return I18N::translate('Burial of a spouse'); |
|
1190 | - } |
|
1191 | - case '_CHR_CHIL': |
|
1192 | - switch ($sex) { |
|
1193 | - case 'M': |
|
1194 | - return I18N::translate('Christening of a son'); |
|
1195 | - case 'F': |
|
1196 | - return I18N::translate('Christening of a daughter'); |
|
1197 | - default: |
|
1198 | - return I18N::translate('Christening of a child'); |
|
1199 | - } |
|
1200 | - case '_CHR_GCHI': |
|
1201 | - switch ($sex) { |
|
1202 | - case 'M': |
|
1203 | - return I18N::translate('Christening of a grandson'); |
|
1204 | - case 'F': |
|
1205 | - return I18N::translate('Christening of a granddaughter'); |
|
1206 | - default: |
|
1207 | - return I18N::translate('Christening of a grandchild'); |
|
1208 | - } |
|
1209 | - case '_CHR_GCH1': |
|
1210 | - switch ($sex) { |
|
1211 | - case 'M': |
|
1212 | - return I18N::translateContext('daughter’s son', 'Christening of a grandson'); |
|
1213 | - case 'F': |
|
1214 | - return I18N::translateContext('daughter’s daughter', 'Christening of a granddaughter'); |
|
1215 | - default: |
|
1216 | - return I18N::translate('Christening of a grandchild'); |
|
1217 | - } |
|
1218 | - case '_CHR_GCH2': |
|
1219 | - switch ($sex) { |
|
1220 | - case 'M': |
|
1221 | - return I18N::translateContext('son’s son', 'Christening of a grandson'); |
|
1222 | - case 'F': |
|
1223 | - return I18N::translateContext('son’s daughter', 'Christening of a granddaughter'); |
|
1224 | - default: |
|
1225 | - return I18N::translate('Christening of a grandchild'); |
|
1226 | - } |
|
1227 | - case '_CHR_HSIB': |
|
1228 | - switch ($sex) { |
|
1229 | - case 'M': |
|
1230 | - return I18N::translate('Christening of a half-brother'); |
|
1231 | - case 'F': |
|
1232 | - return I18N::translate('Christening of a half-sister'); |
|
1233 | - default: |
|
1234 | - return I18N::translate('Christening of a half-sibling'); |
|
1235 | - } |
|
1236 | - case '_CHR_SIBL': |
|
1237 | - switch ($sex) { |
|
1238 | - case 'M': |
|
1239 | - return I18N::translate('Christening of a brother'); |
|
1240 | - case 'F': |
|
1241 | - return I18N::translate('Christening of a sister'); |
|
1242 | - default: |
|
1243 | - return I18N::translate('Christening of a sibling'); |
|
1244 | - } |
|
1245 | - case '_COML': |
|
1246 | - return |
|
1247 | - /* I18N: gedcom tag _COML */ |
|
1248 | - I18N::translate('Common law marriage'); |
|
1249 | - case '_CREM_CHIL': |
|
1250 | - switch ($sex) { |
|
1251 | - case 'M': |
|
1252 | - return I18N::translate('Cremation of a son'); |
|
1253 | - case 'F': |
|
1254 | - return I18N::translate('Cremation of a daughter'); |
|
1255 | - default: |
|
1256 | - return I18N::translate('Cremation of a child'); |
|
1257 | - } |
|
1258 | - case '_CREM_GCHI': |
|
1259 | - switch ($sex) { |
|
1260 | - case 'M': |
|
1261 | - return I18N::translate('Cremation of a grandson'); |
|
1262 | - case 'F': |
|
1263 | - return I18N::translate('Cremation of a granddaughter'); |
|
1264 | - default: |
|
1265 | - return I18N::translate('Cremation of a grandchild'); |
|
1266 | - } |
|
1267 | - case '_CREM_GCH1': |
|
1268 | - switch ($sex) { |
|
1269 | - case 'M': |
|
1270 | - return I18N::translateContext('daughter’s son', 'Cremation of a grandson'); |
|
1271 | - case 'F': |
|
1272 | - return I18N::translateContext('daughter’s daughter', 'Cremation of a granddaughter'); |
|
1273 | - default: |
|
1274 | - return I18N::translate('Cremation of a grandchild'); |
|
1275 | - } |
|
1276 | - case '_CREM_GCH2': |
|
1277 | - switch ($sex) { |
|
1278 | - case 'M': |
|
1279 | - return I18N::translateContext('son’s son', 'Cremation of a grandson'); |
|
1280 | - case 'F': |
|
1281 | - return I18N::translateContext('son’s daughter', 'Cremation of a granddaughter'); |
|
1282 | - default: |
|
1283 | - return I18N::translate('Cremation of a grandchild'); |
|
1284 | - } |
|
1285 | - case '_CREM_GPAR': |
|
1286 | - switch ($sex) { |
|
1287 | - case 'M': |
|
1288 | - return I18N::translate('Cremation of a grandfather'); |
|
1289 | - case 'F': |
|
1290 | - return I18N::translate('Cremation of a grandmother'); |
|
1291 | - default: |
|
1292 | - return I18N::translate('Cremation of a grand-parent'); |
|
1293 | - } |
|
1294 | - case '_CREM_GPA1': |
|
1295 | - switch ($sex) { |
|
1296 | - case 'M': |
|
1297 | - return I18N::translate('Cremation of a paternal grandfather'); |
|
1298 | - case 'F': |
|
1299 | - return I18N::translate('Cremation of a paternal grandmother'); |
|
1300 | - default: |
|
1301 | - return I18N::translate('Cremation of a grand-parent'); |
|
1302 | - } |
|
1303 | - case '_CREM_GPA2': |
|
1304 | - switch ($sex) { |
|
1305 | - case 'M': |
|
1306 | - return I18N::translate('Cremation of a maternal grandfather'); |
|
1307 | - case 'F': |
|
1308 | - return I18N::translate('Cremation of a maternal grandmother'); |
|
1309 | - default: |
|
1310 | - return I18N::translate('Cremation of a grand-parent'); |
|
1311 | - } |
|
1312 | - case '_CREM_HSIB': |
|
1313 | - switch ($sex) { |
|
1314 | - case 'M': |
|
1315 | - return I18N::translate('Cremation of a half-brother'); |
|
1316 | - case 'F': |
|
1317 | - return I18N::translate('Cremation of a half-sister'); |
|
1318 | - default: |
|
1319 | - return I18N::translate('Cremation of a half-sibling'); |
|
1320 | - } |
|
1321 | - case '_CREM_PARE': |
|
1322 | - switch ($sex) { |
|
1323 | - case 'M': |
|
1324 | - return I18N::translate('Cremation of a father'); |
|
1325 | - case 'F': |
|
1326 | - return I18N::translate('Cremation of a mother'); |
|
1327 | - default: |
|
1328 | - return I18N::translate('Cremation of a parent'); |
|
1329 | - } |
|
1330 | - case '_CREM_SIBL': |
|
1331 | - switch ($sex) { |
|
1332 | - case 'M': |
|
1333 | - return I18N::translate('Cremation of a brother'); |
|
1334 | - case 'F': |
|
1335 | - return I18N::translate('Cremation of a sister'); |
|
1336 | - default: |
|
1337 | - return I18N::translate('Cremation of a sibling'); |
|
1338 | - } |
|
1339 | - case '_CREM_SPOU': |
|
1340 | - switch ($sex) { |
|
1341 | - case 'M': |
|
1342 | - return I18N::translate('Cremation of a husband'); |
|
1343 | - case 'F': |
|
1344 | - return I18N::translate('Cremation of a wife'); |
|
1345 | - default: |
|
1346 | - return I18N::translate('Cremation of a spouse'); |
|
1347 | - } |
|
1348 | - case '_DBID': |
|
1349 | - return |
|
1350 | - /* I18N: gedcom tag _DBID */ |
|
1351 | - I18N::translate('Linked database ID'); |
|
1352 | - case '_DEAT_CHIL': |
|
1353 | - switch ($sex) { |
|
1354 | - case 'M': |
|
1355 | - return I18N::translate('Death of a son'); |
|
1356 | - case 'F': |
|
1357 | - return I18N::translate('Death of a daughter'); |
|
1358 | - default: |
|
1359 | - return I18N::translate('Death of a child'); |
|
1360 | - } |
|
1361 | - case '_DEAT_GCHI': |
|
1362 | - switch ($sex) { |
|
1363 | - case 'M': |
|
1364 | - return I18N::translate('Death of a grandson'); |
|
1365 | - case 'F': |
|
1366 | - return I18N::translate('Death of a granddaughter'); |
|
1367 | - default: |
|
1368 | - return I18N::translate('Death of a grandchild'); |
|
1369 | - } |
|
1370 | - case '_DEAT_GCH1': |
|
1371 | - switch ($sex) { |
|
1372 | - case 'M': |
|
1373 | - return I18N::translateContext('daughter’s son', 'Death of a grandson'); |
|
1374 | - case 'F': |
|
1375 | - return I18N::translateContext('daughter’s daughter', 'Death of a granddaughter'); |
|
1376 | - default: |
|
1377 | - return I18N::translate('Death of a grandchild'); |
|
1378 | - } |
|
1379 | - case '_DEAT_GCH2': |
|
1380 | - switch ($sex) { |
|
1381 | - case 'M': |
|
1382 | - return I18N::translateContext('son’s son', 'Death of a grandson'); |
|
1383 | - case 'F': |
|
1384 | - return I18N::translateContext('son’s daughter', 'Death of a granddaughter'); |
|
1385 | - default: |
|
1386 | - return I18N::translate('Death of a grandchild'); |
|
1387 | - } |
|
1388 | - case '_DEAT_GPAR': |
|
1389 | - switch ($sex) { |
|
1390 | - case 'M': |
|
1391 | - return I18N::translate('Death of a grandfather'); |
|
1392 | - case 'F': |
|
1393 | - return I18N::translate('Death of a grandmother'); |
|
1394 | - default: |
|
1395 | - return I18N::translate('Death of a grand-parent'); |
|
1396 | - } |
|
1397 | - case '_DEAT_GPA1': |
|
1398 | - switch ($sex) { |
|
1399 | - case 'M': |
|
1400 | - return I18N::translate('Death of a paternal grandfather'); |
|
1401 | - case 'F': |
|
1402 | - return I18N::translate('Death of a paternal grandmother'); |
|
1403 | - default: |
|
1404 | - return I18N::translate('Death of a grand-parent'); |
|
1405 | - } |
|
1406 | - case '_DEAT_GPA2': |
|
1407 | - switch ($sex) { |
|
1408 | - case 'M': |
|
1409 | - return I18N::translate('Death of a maternal grandfather'); |
|
1410 | - case 'F': |
|
1411 | - return I18N::translate('Death of a maternal grandmother'); |
|
1412 | - default: |
|
1413 | - return I18N::translate('Death of a grand-parent'); |
|
1414 | - } |
|
1415 | - case '_DEAT_HSIB': |
|
1416 | - switch ($sex) { |
|
1417 | - case 'M': |
|
1418 | - return I18N::translate('Death of a half-brother'); |
|
1419 | - case 'F': |
|
1420 | - return I18N::translate('Death of a half-sister'); |
|
1421 | - default: |
|
1422 | - return I18N::translate('Death of a half-sibling'); |
|
1423 | - } |
|
1424 | - case '_DEAT_PARE': |
|
1425 | - switch ($sex) { |
|
1426 | - case 'M': |
|
1427 | - return I18N::translate('Death of a father'); |
|
1428 | - case 'F': |
|
1429 | - return I18N::translate('Death of a mother'); |
|
1430 | - default: |
|
1431 | - return I18N::translate('Death of a parent'); |
|
1432 | - } |
|
1433 | - case '_DEAT_SIBL': |
|
1434 | - switch ($sex) { |
|
1435 | - case 'M': |
|
1436 | - return I18N::translate('Death of a brother'); |
|
1437 | - case 'F': |
|
1438 | - return I18N::translate('Death of a sister'); |
|
1439 | - default: |
|
1440 | - return I18N::translate('Death of a sibling'); |
|
1441 | - } |
|
1442 | - case '_DEAT_SPOU': |
|
1443 | - switch ($sex) { |
|
1444 | - case 'M': |
|
1445 | - return I18N::translate('Death of a husband'); |
|
1446 | - case 'F': |
|
1447 | - return I18N::translate('Death of a wife'); |
|
1448 | - default: |
|
1449 | - return I18N::translate('Death of a spouse'); |
|
1450 | - } |
|
1451 | - case '_DEG': |
|
1452 | - return |
|
1453 | - /* I18N: gedcom tag _DEG */ |
|
1454 | - I18N::translate('Degree'); |
|
1455 | - case '_DETS': |
|
1456 | - return |
|
1457 | - /* I18N: gedcom tag _DETS */ |
|
1458 | - I18N::translate('Death of one spouse'); |
|
1459 | - case '_DNA': |
|
1460 | - return |
|
1461 | - /* I18N: gedcom tag _DNA (from FTM 2010) */ |
|
1462 | - I18N::translate('DNA markers'); |
|
1463 | - case '_EMAIL': |
|
1464 | - return |
|
1465 | - /* I18N: gedcom tag _EMAIL */ |
|
1466 | - I18N::translate('Email address'); |
|
1467 | - case '_EYEC': |
|
1468 | - return |
|
1469 | - /* I18N: gedcom tag _EYEC */ |
|
1470 | - I18N::translate('Eye color'); |
|
1471 | - case '_FA1': |
|
1472 | - return I18N::translate('Fact 1'); |
|
1473 | - case '_FA2': |
|
1474 | - return I18N::translate('Fact 2'); |
|
1475 | - case '_FA3': |
|
1476 | - return I18N::translate('Fact 3'); |
|
1477 | - case '_FA4': |
|
1478 | - return I18N::translate('Fact 4'); |
|
1479 | - case '_FA5': |
|
1480 | - return I18N::translate('Fact 5'); |
|
1481 | - case '_FA6': |
|
1482 | - return I18N::translate('Fact 6'); |
|
1483 | - case '_FA7': |
|
1484 | - return I18N::translate('Fact 7'); |
|
1485 | - case '_FA8': |
|
1486 | - return I18N::translate('Fact 8'); |
|
1487 | - case '_FA9': |
|
1488 | - return I18N::translate('Fact 9'); |
|
1489 | - case '_FA10': |
|
1490 | - return I18N::translate('Fact 10'); |
|
1491 | - case '_FA11': |
|
1492 | - return I18N::translate('Fact 11'); |
|
1493 | - case '_FA12': |
|
1494 | - return I18N::translate('Fact 12'); |
|
1495 | - case '_FA13': |
|
1496 | - return I18N::translate('Fact 13'); |
|
1497 | - case '_FNRL': |
|
1498 | - return |
|
1499 | - /* I18N: gedcom tag _FNRL */ |
|
1500 | - I18N::translate('Funeral'); |
|
1501 | - case '_FREL': |
|
1502 | - return |
|
1503 | - /* I18N: gedcom tag _FREL */ |
|
1504 | - I18N::translate('Relationship to father'); |
|
1505 | - case '_GEDF': |
|
1506 | - return |
|
1507 | - /* I18N: gedcom tag _GEDF */ |
|
1508 | - I18N::translate('GEDCOM file'); |
|
1509 | - case '_GODP': |
|
1510 | - return |
|
1511 | - /* I18N: gedcom tag _GODP */ |
|
1512 | - I18N::translate('Godparent'); |
|
1513 | - case '_HAIR': |
|
1514 | - return |
|
1515 | - /* I18N: gedcom tag _HAIR */ |
|
1516 | - I18N::translate('Hair color'); |
|
1517 | - case '_HEB': |
|
1518 | - return |
|
1519 | - /* I18N: gedcom tag _HEB */ |
|
1520 | - I18N::translate('Hebrew'); |
|
1521 | - case '_HEIG': |
|
1522 | - return |
|
1523 | - /* I18N: gedcom tag _HEIG */ |
|
1524 | - I18N::translate('Height'); |
|
1525 | - case '_HNM': |
|
1526 | - return |
|
1527 | - /* I18N: gedcom tag _HNM */ |
|
1528 | - I18N::translate('Hebrew name'); |
|
1529 | - case '_HOL': |
|
1530 | - return |
|
1531 | - /* I18N: gedcom tag _HOL */ |
|
1532 | - I18N::translate('Holocaust'); |
|
1533 | - case '_INTE': |
|
1534 | - switch ($sex) { |
|
1535 | - case 'M': |
|
1536 | - return |
|
1537 | - /* I18N: gedcom tag _INTE */ |
|
1538 | - I18N::translateContext('MALE', 'Interred'); |
|
1539 | - case 'F': |
|
1540 | - return |
|
1541 | - /* I18N: gedcom tag _INTE */ |
|
1542 | - I18N::translateContext('FEMALE', 'Interred'); |
|
1543 | - default: |
|
1544 | - return |
|
1545 | - /* I18N: gedcom tag _INTE */ |
|
1546 | - I18N::translate('Interred'); |
|
1547 | - } |
|
1548 | - case '_LOC': |
|
1549 | - return |
|
1550 | - /* I18N: gedcom tag _LOC */ |
|
1551 | - I18N::translate('Location'); |
|
1552 | - case '_MARI': |
|
1553 | - return |
|
1554 | - /* I18N: gedcom tag _MARI */ |
|
1555 | - I18N::translate('Marriage intention'); |
|
1556 | - case '_MARNM': |
|
1557 | - return |
|
1558 | - /* I18N: gedcom tag _MARNM */ |
|
1559 | - I18N::translate('Married name'); |
|
1560 | - case '_PRIM': |
|
1561 | - return |
|
1562 | - /* I18N: gedcom tag _PRIM */ |
|
1563 | - I18N::translate('Highlighted image'); |
|
1564 | - case '_MARNM_SURN': |
|
1565 | - return I18N::translate('Married surname'); |
|
1566 | - case '_MARR_CHIL': |
|
1567 | - switch ($sex) { |
|
1568 | - case 'M': |
|
1569 | - return I18N::translate('Marriage of a son'); |
|
1570 | - case 'F': |
|
1571 | - return I18N::translate('Marriage of a daughter'); |
|
1572 | - default: |
|
1573 | - return I18N::translate('Marriage of a child'); |
|
1574 | - } |
|
1575 | - case '_MARR_FAMC': |
|
1576 | - return |
|
1577 | - /* I18N: ...to each other */ |
|
1578 | - I18N::translate('Marriage of parents'); |
|
1579 | - case '_MARR_GCHI': |
|
1580 | - switch ($sex) { |
|
1581 | - case 'M': |
|
1582 | - return I18N::translate('Marriage of a grandson'); |
|
1583 | - case 'F': |
|
1584 | - return I18N::translate('Marriage of a granddaughter'); |
|
1585 | - default: |
|
1586 | - return I18N::translate('Marriage of a grandchild'); |
|
1587 | - } |
|
1588 | - case '_MARR_GCH1': |
|
1589 | - switch ($sex) { |
|
1590 | - case 'M': |
|
1591 | - return I18N::translateContext('daughter’s son', 'Marriage of a grandson'); |
|
1592 | - case 'F': |
|
1593 | - return I18N::translateContext('daughter’s daughter', 'Marriage of a granddaughter'); |
|
1594 | - default: |
|
1595 | - return I18N::translate('Marriage of a grandchild'); |
|
1596 | - } |
|
1597 | - case '_MARR_GCH2': |
|
1598 | - switch ($sex) { |
|
1599 | - case 'M': |
|
1600 | - return I18N::translateContext('son’s son', 'Marriage of a grandson'); |
|
1601 | - case 'F': |
|
1602 | - return I18N::translateContext('son’s daughter', 'Marriage of a granddaughter'); |
|
1603 | - default: |
|
1604 | - return I18N::translate('Marriage of a grandchild'); |
|
1605 | - } |
|
1606 | - case '_MARR_HSIB': |
|
1607 | - switch ($sex) { |
|
1608 | - case 'M': |
|
1609 | - return I18N::translate('Marriage of a half-brother'); |
|
1610 | - case 'F': |
|
1611 | - return I18N::translate('Marriage of a half-sister'); |
|
1612 | - default: |
|
1613 | - return I18N::translate('Marriage of a half-sibling'); |
|
1614 | - } |
|
1615 | - case '_MARR_PARE': |
|
1616 | - switch ($sex) { |
|
1617 | - case 'M': |
|
1618 | - return |
|
1619 | - /* I18N: ...to another spouse */ |
|
1620 | - I18N::translate('Marriage of a father'); |
|
1621 | - case 'F': |
|
1622 | - return |
|
1623 | - /* I18N: ...to another spouse */ |
|
1624 | - I18N::translate('Marriage of a mother'); |
|
1625 | - default: |
|
1626 | - return |
|
1627 | - /* I18N: ...to another spouse */ |
|
1628 | - I18N::translate('Marriage of a parent'); |
|
1629 | - } |
|
1630 | - case '_MARR_SIBL': |
|
1631 | - switch ($sex) { |
|
1632 | - case 'M': |
|
1633 | - return I18N::translate('Marriage of a brother'); |
|
1634 | - case 'F': |
|
1635 | - return I18N::translate('Marriage of a sister'); |
|
1636 | - default: |
|
1637 | - return I18N::translate('Marriage of a sibling'); |
|
1638 | - } |
|
1639 | - case '_MBON': |
|
1640 | - return |
|
1641 | - /* I18N: gedcom tag _MBON */ |
|
1642 | - I18N::translate('Marriage bond'); |
|
1643 | - case '_MDCL': |
|
1644 | - return |
|
1645 | - /* I18N: gedcom tag _MDCL */ |
|
1646 | - I18N::translate('Medical'); |
|
1647 | - case '_MEDC': |
|
1648 | - return |
|
1649 | - /* I18N: gedcom tag _MEDC */ |
|
1650 | - I18N::translate('Medical condition'); |
|
1651 | - case '_MEND': |
|
1652 | - return |
|
1653 | - /* I18N: gedcom tag _MEND */ |
|
1654 | - I18N::translate('Marriage ending status'); |
|
1655 | - case '_MILI': |
|
1656 | - return |
|
1657 | - /* I18N: gedcom tag _MILI */ |
|
1658 | - I18N::translate('Military'); |
|
1659 | - case '_MILT': |
|
1660 | - return |
|
1661 | - /* I18N: gedcom tag _MILT */ |
|
1662 | - I18N::translate('Military service'); |
|
1663 | - case '_MREL': |
|
1664 | - return |
|
1665 | - /* I18N: gedcom tag _MREL */ |
|
1666 | - I18N::translate('Relationship to mother'); |
|
1667 | - case '_MSTAT': |
|
1668 | - return |
|
1669 | - /* I18N: gedcom tag _MSTAT */ |
|
1670 | - I18N::translate('Marriage beginning status'); |
|
1671 | - case '_NAME': |
|
1672 | - return |
|
1673 | - /* I18N: gedcom tag _NAME */ |
|
1674 | - I18N::translate('Mailing name'); |
|
1675 | - case '_NAMS': |
|
1676 | - return |
|
1677 | - /* I18N: gedcom tag _NAMS */ |
|
1678 | - I18N::translate('Namesake'); |
|
1679 | - case '_NLIV': |
|
1680 | - return |
|
1681 | - /* I18N: gedcom tag _NLIV */ |
|
1682 | - I18N::translate('Not living'); |
|
1683 | - case '_NMAR': |
|
1684 | - switch ($sex) { |
|
1685 | - case 'M': |
|
1686 | - return |
|
1687 | - /* I18N: gedcom tag _NMAR */ |
|
1688 | - I18N::translateContext('MALE', 'Never married'); |
|
1689 | - case 'F': |
|
1690 | - return |
|
1691 | - /* I18N: gedcom tag _NMAR */ |
|
1692 | - I18N::translateContext('FEMALE', 'Never married'); |
|
1693 | - default: |
|
1694 | - return |
|
1695 | - /* I18N: gedcom tag _NMAR */ |
|
1696 | - I18N::translate('Never married'); |
|
1697 | - } |
|
1698 | - case '_NMR': |
|
1699 | - switch ($sex) { |
|
1700 | - case 'M': |
|
1701 | - return |
|
1702 | - /* I18N: gedcom tag _NMR */ |
|
1703 | - I18N::translateContext('MALE', 'Not married'); |
|
1704 | - case 'F': |
|
1705 | - return |
|
1706 | - /* I18N: gedcom tag _NMR */ |
|
1707 | - I18N::translateContext('FEMALE', 'Not married'); |
|
1708 | - default: |
|
1709 | - return |
|
1710 | - /* I18N: gedcom tag _NMR */ |
|
1711 | - I18N::translate('Not married'); |
|
1712 | - } |
|
1713 | - case '_WT_USER': |
|
1714 | - return I18N::translate('by'); |
|
1715 | - case '_PRMN': |
|
1716 | - return |
|
1717 | - /* I18N: gedcom tag _PRMN */ |
|
1718 | - I18N::translate('Permanent number'); |
|
1719 | - case '_SCBK': |
|
1720 | - return |
|
1721 | - /* I18N: gedcom tag _SCBK */ |
|
1722 | - I18N::translate('Scrapbook'); |
|
1723 | - case '_SEPR': |
|
1724 | - return |
|
1725 | - /* I18N: gedcom tag _SEPR */ |
|
1726 | - I18N::translate('Separated'); |
|
1727 | - case '_SSHOW': |
|
1728 | - return |
|
1729 | - /* I18N: gedcom tag _SSHOW */ |
|
1730 | - I18N::translate('Slide show'); |
|
1731 | - case '_STAT': |
|
1732 | - return |
|
1733 | - /* I18N: gedcom tag _STAT */ |
|
1734 | - I18N::translate('Marriage status'); |
|
1735 | - case '_SUBQ': |
|
1736 | - return |
|
1737 | - /* I18N: gedcom tag _SUBQ */ |
|
1738 | - I18N::translate('Short version'); |
|
1739 | - case '_TODO': |
|
1740 | - return |
|
1741 | - /* I18N: gedcom tag _TODO */ |
|
1742 | - I18N::translate('Research task'); |
|
1743 | - case '_TYPE': |
|
1744 | - return |
|
1745 | - /* I18N: gedcom tag _TYPE */ |
|
1746 | - I18N::translate('Media type'); |
|
1747 | - case '_UID': |
|
1748 | - return |
|
1749 | - /* I18N: gedcom tag _UID */ |
|
1750 | - I18N::translate('Unique identifier'); |
|
1751 | - case '_URL': |
|
1752 | - return |
|
1753 | - /* I18N: gedcom tag _URL */ |
|
1754 | - I18N::translate('URL'); |
|
1755 | - case '_WEIG': |
|
1756 | - return |
|
1757 | - /* I18N: gedcom tag _WEIG */ |
|
1758 | - I18N::translate('Weight'); |
|
1759 | - case '_WITN': |
|
1760 | - return |
|
1761 | - /* I18N: gedcom tag _WITN */ |
|
1762 | - I18N::translate('Witness'); |
|
1763 | - case '_WT_OBJE_SORT': |
|
1764 | - return |
|
1765 | - /* I18N: gedcom tag _WT_OBJE_SORT */ |
|
1766 | - I18N::translate('Re-order media'); |
|
1767 | - case '_YART': |
|
1768 | - return /* I18N: gedcom tag _YART - A yahrzeit is a special anniversary of death in the Hebrew faith/calendar. */ I18N::translate('Yahrzeit'); |
|
1769 | - // Brit milah applies only to males, no need for male/female translations |
|
1770 | - case '__BRTM_CHIL': |
|
1771 | - return I18N::translate('Brit milah of a son'); |
|
1772 | - case '__BRTM_GCHI': |
|
1773 | - return I18N::translate('Brit milah of a grandson'); |
|
1774 | - case '__BRTM_GCH1': |
|
1775 | - return I18N::translateContext('daughter’s son', 'Brit milah of a grandson'); |
|
1776 | - case '__BRTM_GCH2': |
|
1777 | - return I18N::translateContext('son’s son', 'Brit milah of a grandson'); |
|
1778 | - case '__BRTM_HSIB': |
|
1779 | - return I18N::translate('Brit milah of a half-brother'); |
|
1780 | - case '__BRTM_SIBL': |
|
1781 | - return I18N::translate('Brit milah of a brother'); |
|
1782 | - // These "pseudo" tags are generated internally to present information about a media object |
|
1783 | - case '__FILE_SIZE__': |
|
1784 | - return I18N::translate('File size'); |
|
1785 | - case '__IMAGE_SIZE__': |
|
1786 | - return I18N::translate('Image dimensions'); |
|
1787 | - default: |
|
1788 | - // If no specialisation exists (e.g. DEAT:CAUS), then look for the general (CAUS) |
|
1789 | - if (strpos($tag, ':')) { |
|
1790 | - list(, $tag) = explode(':', $tag, 2); |
|
113 | + switch ($tag) { |
|
114 | + case 'ABBR': |
|
115 | + return |
|
116 | + /* I18N: gedcom tag ABBR */ |
|
117 | + I18N::translate('Abbreviation'); |
|
118 | + case 'ADDR': |
|
119 | + return |
|
120 | + /* I18N: gedcom tag ADDR */ |
|
121 | + I18N::translate('Address'); |
|
122 | + case 'ADR1': |
|
123 | + return I18N::translate('Address line 1'); |
|
124 | + case 'ADR2': |
|
125 | + return I18N::translate('Address line 2'); |
|
126 | + case 'ADOP': |
|
127 | + return |
|
128 | + /* I18N: gedcom tag ADOP */ |
|
129 | + I18N::translate('Adoption'); |
|
130 | + case 'ADOP:DATE': |
|
131 | + return I18N::translate('Date of adoption'); |
|
132 | + case 'ADOP:PLAC': |
|
133 | + return I18N::translate('Place of adoption'); |
|
134 | + case 'AFN': |
|
135 | + return |
|
136 | + /* I18N: gedcom tag AFN */ |
|
137 | + I18N::translate('Ancestral file number'); |
|
138 | + case 'AGE': |
|
139 | + return |
|
140 | + /* I18N: gedcom tag AGE */ |
|
141 | + I18N::translate('Age'); |
|
142 | + case 'AGNC': |
|
143 | + return |
|
144 | + /* I18N: gedcom tag AGNC */ |
|
145 | + I18N::translate('Agency'); |
|
146 | + case 'ALIA': |
|
147 | + return |
|
148 | + /* I18N: gedcom tag ALIA */ |
|
149 | + I18N::translate('Alias'); |
|
150 | + case 'ANCE': |
|
151 | + return |
|
152 | + /* I18N: gedcom tag ANCE */ |
|
153 | + I18N::translate('Generations of ancestors'); |
|
154 | + case 'ANCI': |
|
155 | + return |
|
156 | + /* I18N: gedcom tag ANCI */ |
|
157 | + I18N::translate('Ancestors interest'); |
|
158 | + case 'ANUL': |
|
159 | + return |
|
160 | + /* I18N: gedcom tag ANUL */ |
|
161 | + I18N::translate('Annulment'); |
|
162 | + case 'ASSO': |
|
163 | + return |
|
164 | + /* I18N: gedcom tag ASSO */ |
|
165 | + I18N::translate('Associate'); /* see also _ASSO */ |
|
166 | + case 'AUTH': |
|
167 | + return |
|
168 | + /* I18N: gedcom tag AUTH */ |
|
169 | + I18N::translate('Author'); |
|
170 | + case 'BAPL': |
|
171 | + return |
|
172 | + /* I18N: gedcom tag BAPL. LDS = Church of Latter Day Saints. */ |
|
173 | + I18N::translate('LDS baptism'); |
|
174 | + case 'BAPL:DATE': |
|
175 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS baptism'); |
|
176 | + case 'BAPL:PLAC': |
|
177 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS baptism'); |
|
178 | + case 'BAPM': |
|
179 | + return |
|
180 | + /* I18N: gedcom tag BAPM */ |
|
181 | + I18N::translate('Baptism'); |
|
182 | + case 'BAPM:DATE': |
|
183 | + return I18N::translate('Date of baptism'); |
|
184 | + case 'BAPM:PLAC': |
|
185 | + return I18N::translate('Place of baptism'); |
|
186 | + case 'BARM': |
|
187 | + return |
|
188 | + /* I18N: gedcom tag BARM */ |
|
189 | + I18N::translate('Bar mitzvah'); |
|
190 | + case 'BARM:DATE': |
|
191 | + return I18N::translate('Date of bar mitzvah'); |
|
192 | + case 'BARM:PLAC': |
|
193 | + return I18N::translate('Place of bar mitzvah'); |
|
194 | + case 'BASM': |
|
195 | + return |
|
196 | + /* I18N: gedcom tag BASM */ |
|
197 | + I18N::translate('Bat mitzvah'); |
|
198 | + case 'BASM:DATE': |
|
199 | + return I18N::translate('Date of bat mitzvah'); |
|
200 | + case 'BASM:PLAC': |
|
201 | + return I18N::translate('Place of bat mitzvah'); |
|
202 | + case 'BIRT': |
|
203 | + return |
|
204 | + /* I18N: gedcom tag BIRT */ |
|
205 | + I18N::translate('Birth'); |
|
206 | + case 'BIRT:DATE': |
|
207 | + return I18N::translate('Date of birth'); |
|
208 | + case 'BIRT:PLAC': |
|
209 | + return I18N::translate('Place of birth'); |
|
210 | + case 'BLES': |
|
211 | + return |
|
212 | + /* I18N: gedcom tag BLES */ |
|
213 | + I18N::translate('Blessing'); |
|
214 | + case 'BLES:DATE': |
|
215 | + return I18N::translate('Date of blessing'); |
|
216 | + case 'BLES:PLAC': |
|
217 | + return I18N::translate('Place of blessing'); |
|
218 | + case 'BLOB': |
|
219 | + return |
|
220 | + /* I18N: gedcom tag BLOB */ |
|
221 | + I18N::translate('Binary data object'); |
|
222 | + case 'BURI': |
|
223 | + return |
|
224 | + /* I18N: gedcom tag BURI */ |
|
225 | + I18N::translate('Burial'); |
|
226 | + case 'BURI:DATE': |
|
227 | + return I18N::translate('Date of burial'); |
|
228 | + case 'BURI:PLAC': |
|
229 | + return I18N::translate('Place of burial'); |
|
230 | + case 'CALN': |
|
231 | + return |
|
232 | + /* I18N: gedcom tag CALN */ |
|
233 | + I18N::translate('Call number'); |
|
234 | + case 'CAST': |
|
235 | + return |
|
236 | + /* I18N: gedcom tag CAST */ |
|
237 | + I18N::translate('Caste'); |
|
238 | + case 'CAUS': |
|
239 | + return |
|
240 | + /* I18N: gedcom tag CAUS */ |
|
241 | + I18N::translate('Cause'); |
|
242 | + case 'CEME': |
|
243 | + return |
|
244 | + /* I18N: gedcom tag CEME */ |
|
245 | + I18N::translate('Cemetery'); |
|
246 | + case 'CENS': |
|
247 | + return |
|
248 | + /* I18N: gedcom tag CENS */ |
|
249 | + I18N::translate('Census'); |
|
250 | + case 'CENS:DATE': |
|
251 | + return I18N::translate('Census date'); |
|
252 | + case 'CENS:PLAC': |
|
253 | + return I18N::translate('Census place'); |
|
254 | + case 'CHAN': |
|
255 | + return |
|
256 | + /* I18N: gedcom tag CHAN */ |
|
257 | + I18N::translate('Last change'); |
|
258 | + case 'CHAN:DATE': |
|
259 | + return |
|
260 | + /* I18N: gedcom tag CHAN:DATE */ |
|
261 | + I18N::translate('Date of last change'); |
|
262 | + case 'CHAN:_WT_USER': |
|
263 | + return |
|
264 | + /* I18N: gedcom tag CHAN:_WT_USER */ |
|
265 | + I18N::translate('Author of last change'); |
|
266 | + case 'CHAR': |
|
267 | + return |
|
268 | + /* I18N: gedcom tag CHAR */ |
|
269 | + I18N::translate('Character set'); |
|
270 | + case 'CHIL': |
|
271 | + return |
|
272 | + /* I18N: gedcom tag CHIL */ |
|
273 | + I18N::translate('Child'); |
|
274 | + case 'CHR': |
|
275 | + return |
|
276 | + /* I18N: gedcom tag CHR */ |
|
277 | + I18N::translate('Christening'); |
|
278 | + case 'CHR:DATE': |
|
279 | + return I18N::translate('Date of christening'); |
|
280 | + case 'CHR:PLAC': |
|
281 | + return I18N::translate('Place of christening'); |
|
282 | + case 'CHRA': |
|
283 | + return |
|
284 | + /* I18N: gedcom tag CHRA */ |
|
285 | + I18N::translate('Adult christening'); |
|
286 | + case 'CITN': |
|
287 | + return |
|
288 | + /* I18N: gedcom tag CITN */ |
|
289 | + I18N::translate('Citizenship'); |
|
290 | + case 'CITY': |
|
291 | + return |
|
292 | + /* I18N: gedcom tag CITY */ |
|
293 | + I18N::translate('City'); |
|
294 | + case 'COMM': |
|
295 | + return |
|
296 | + /* I18N: gedcom tag COMM */ |
|
297 | + I18N::translate('Comment'); |
|
298 | + case 'CONC': |
|
299 | + return |
|
300 | + /* I18N: gedcom tag CONC */ |
|
301 | + I18N::translate('Concatenation'); |
|
302 | + case 'CONT': |
|
303 | + return |
|
304 | + /* I18N: gedcom tag CONT */ |
|
305 | + I18N::translate('Continued'); |
|
306 | + case 'CONF': |
|
307 | + return |
|
308 | + /* I18N: gedcom tag CONF */ |
|
309 | + I18N::translate('Confirmation'); |
|
310 | + case 'CONF:DATE': |
|
311 | + return I18N::translate('Date of confirmation'); |
|
312 | + case 'CONF:PLAC': |
|
313 | + return I18N::translate('Place of confirmation'); |
|
314 | + case 'CONL': |
|
315 | + return |
|
316 | + /* I18N: gedcom tag CONL. LDS = Church of Latter Day Saints. */ |
|
317 | + I18N::translate('LDS confirmation'); |
|
318 | + case 'COPR': |
|
319 | + return |
|
320 | + /* I18N: gedcom tag COPR */ |
|
321 | + I18N::translate('Copyright'); |
|
322 | + case 'CORP': |
|
323 | + return |
|
324 | + /* I18N: gedcom tag CORP */ |
|
325 | + I18N::translate('Corporation'); |
|
326 | + case 'CREM': |
|
327 | + return |
|
328 | + /* I18N: gedcom tag CREM */ |
|
329 | + I18N::translate('Cremation'); |
|
330 | + case 'CREM:DATE': |
|
331 | + return I18N::translate('Date of cremation'); |
|
332 | + case 'CREM:PLAC': |
|
333 | + return I18N::translate('Place of cremation'); |
|
334 | + case 'CTRY': |
|
335 | + return |
|
336 | + /* I18N: gedcom tag CTRY */ |
|
337 | + I18N::translate('Country'); |
|
338 | + case 'DATA': |
|
339 | + return |
|
340 | + /* I18N: gedcom tag DATA */ |
|
341 | + I18N::translate('Data'); |
|
342 | + case 'DATA:DATE': |
|
343 | + return I18N::translate('Date of entry in original source'); |
|
344 | + case 'DATE': |
|
345 | + return |
|
346 | + /* I18N: gedcom tag DATE */ |
|
347 | + I18N::translate('Date'); |
|
348 | + case 'DEAT': |
|
349 | + return |
|
350 | + /* I18N: gedcom tag DEAT */ |
|
351 | + I18N::translate('Death'); |
|
352 | + case 'DEAT:CAUS': |
|
353 | + return I18N::translate('Cause of death'); |
|
354 | + case 'DEAT:DATE': |
|
355 | + return I18N::translate('Date of death'); |
|
356 | + case 'DEAT:PLAC': |
|
357 | + return I18N::translate('Place of death'); |
|
358 | + case 'DESC': |
|
359 | + return |
|
360 | + /* I18N: gedcom tag DESC */ |
|
361 | + I18N::translate('Descendants'); |
|
362 | + case 'DESI': |
|
363 | + return |
|
364 | + /* I18N: gedcom tag DESI */ |
|
365 | + I18N::translate('Descendants interest'); |
|
366 | + case 'DEST': |
|
367 | + return |
|
368 | + /* I18N: gedcom tag DEST */ |
|
369 | + I18N::translate('Destination'); |
|
370 | + case 'DIV': |
|
371 | + return |
|
372 | + /* I18N: gedcom tag DIV */ |
|
373 | + I18N::translate('Divorce'); |
|
374 | + case 'DIVF': |
|
375 | + return |
|
376 | + /* I18N: gedcom tag DIVF */ |
|
377 | + I18N::translate('Divorce filed'); |
|
378 | + case 'DSCR': |
|
379 | + return |
|
380 | + /* I18N: gedcom tag DSCR */ |
|
381 | + I18N::translate('Description'); |
|
382 | + case 'EDUC': |
|
383 | + return |
|
384 | + /* I18N: gedcom tag EDUC */ |
|
385 | + I18N::translate('Education'); |
|
386 | + case 'EDUC:AGNC': |
|
387 | + return I18N::translate('School or college'); |
|
388 | + case 'EMAI': |
|
389 | + return |
|
390 | + /* I18N: gedcom tag EMAI */ |
|
391 | + I18N::translate('Email address'); |
|
392 | + case 'EMAIL': |
|
393 | + return |
|
394 | + /* I18N: gedcom tag EMAIL */ |
|
395 | + I18N::translate('Email address'); |
|
396 | + case 'EMAL': |
|
397 | + return |
|
398 | + /* I18N: gedcom tag EMAL */ |
|
399 | + I18N::translate('Email address'); |
|
400 | + case 'EMIG': |
|
401 | + return |
|
402 | + /* I18N: gedcom tag EMIG */ |
|
403 | + I18N::translate('Emigration'); |
|
404 | + case 'EMIG:DATE': |
|
405 | + return I18N::translate('Date of emigration'); |
|
406 | + case 'EMIG:PLAC': |
|
407 | + return I18N::translate('Place of emigration'); |
|
408 | + case 'ENDL': |
|
409 | + return |
|
410 | + /* I18N: gedcom tag ENDL. LDS = Church of Latter Day Saints. */ |
|
411 | + I18N::translate('LDS endowment'); |
|
412 | + case 'ENDL:DATE': |
|
413 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS endowment'); |
|
414 | + case 'ENDL:PLAC': |
|
415 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS endowment'); |
|
416 | + case 'ENGA': |
|
417 | + return |
|
418 | + /* I18N: gedcom tag ENGA */ |
|
419 | + I18N::translate('Engagement'); |
|
420 | + case 'ENGA:DATE': |
|
421 | + return I18N::translate('Date of engagement'); |
|
422 | + case 'ENGA:PLAC': |
|
423 | + return I18N::translate('Place of engagement'); |
|
424 | + case 'EVEN': |
|
425 | + return |
|
426 | + /* I18N: gedcom tag EVEN */ |
|
427 | + I18N::translate('Event'); |
|
428 | + case 'EVEN:DATE': |
|
429 | + return I18N::translate('Date of event'); |
|
430 | + case 'EVEN:PLAC': |
|
431 | + return I18N::translate('Place of event'); |
|
432 | + case 'EVEN:TYPE': |
|
433 | + return I18N::translate('Type of event'); |
|
434 | + case 'FACT': |
|
435 | + return |
|
436 | + /* I18N: gedcom tag FACT */ |
|
437 | + I18N::translate('Fact'); |
|
438 | + case 'FACT:TYPE': |
|
439 | + return I18N::translate('Type of fact'); |
|
440 | + case 'FAM': |
|
441 | + return |
|
442 | + /* I18N: gedcom tag FAM */ |
|
443 | + I18N::translate('Family'); |
|
444 | + case 'FAMC': |
|
445 | + return |
|
446 | + /* I18N: gedcom tag FAMC */ |
|
447 | + I18N::translate('Family as a child'); |
|
448 | + case 'FAMF': |
|
449 | + return |
|
450 | + /* I18N: gedcom tag FAMF */ |
|
451 | + I18N::translate('Family file'); |
|
452 | + case 'FAMS': |
|
453 | + return |
|
454 | + /* I18N: gedcom tag FAMS */ |
|
455 | + I18N::translate('Family as a spouse'); |
|
456 | + case 'FAMS:CENS:DATE': |
|
457 | + return I18N::translate('Spouse census date'); |
|
458 | + case 'FAMS:CENS:PLAC': |
|
459 | + return I18N::translate('Spouse census place'); |
|
460 | + case 'FAMS:DIV:DATE': |
|
461 | + return I18N::translate('Date of divorce'); |
|
462 | + case 'FAMS:MARR:DATE': |
|
463 | + return I18N::translate('Date of marriage'); |
|
464 | + case 'FAMS:MARR:PLAC': |
|
465 | + return I18N::translate('Place of marriage'); |
|
466 | + case 'FAMS:NOTE': |
|
467 | + return I18N::translate('Spouse note'); |
|
468 | + case 'FAMS:SLGS:DATE': |
|
469 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS spouse sealing'); |
|
470 | + case 'FAMS:SLGS:PLAC': |
|
471 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS spouse sealing'); |
|
472 | + case 'FAX': |
|
473 | + return |
|
474 | + /* I18N: gedcom tag FAX */ |
|
475 | + I18N::translate('Fax'); |
|
476 | + case 'FCOM': |
|
477 | + return |
|
478 | + /* I18N: gedcom tag FCOM */ |
|
479 | + I18N::translate('First communion'); |
|
480 | + case 'FCOM:DATE': |
|
481 | + return I18N::translate('Date of first communion'); |
|
482 | + case 'FCOM:PLAC': |
|
483 | + return I18N::translate('Place of first communion'); |
|
484 | + case 'FILE': |
|
485 | + return |
|
486 | + /* I18N: gedcom tag FILE */ |
|
487 | + I18N::translate('Filename'); |
|
488 | + case 'FONE': |
|
489 | + return |
|
490 | + /* I18N: gedcom tag FONE */ |
|
491 | + I18N::translate('Phonetic'); |
|
492 | + case 'FORM': |
|
493 | + return |
|
494 | + /* I18N: gedcom tag FORM */ |
|
495 | + I18N::translate('Format'); |
|
496 | + case 'GEDC': |
|
497 | + return |
|
498 | + /* I18N: gedcom tag GEDC */ |
|
499 | + I18N::translate('GEDCOM file'); |
|
500 | + case 'GIVN': |
|
501 | + return |
|
502 | + /* I18N: gedcom tag GIVN */ |
|
503 | + I18N::translate('Given names'); |
|
504 | + case 'GRAD': |
|
505 | + return |
|
506 | + /* I18N: gedcom tag GRAD */ |
|
507 | + I18N::translate('Graduation'); |
|
508 | + case 'HEAD': |
|
509 | + return |
|
510 | + /* I18N: gedcom tag HEAD */ |
|
511 | + I18N::translate('Header'); |
|
512 | + case 'HUSB': |
|
513 | + return |
|
514 | + /* I18N: gedcom tag HUSB */ |
|
515 | + I18N::translate('Husband'); |
|
516 | + case 'IDNO': |
|
517 | + return |
|
518 | + /* I18N: gedcom tag IDNO */ |
|
519 | + I18N::translate('Identification number'); |
|
520 | + case 'IMMI': |
|
521 | + return |
|
522 | + /* I18N: gedcom tag IMMI */ |
|
523 | + I18N::translate('Immigration'); |
|
524 | + case 'IMMI:DATE': |
|
525 | + return I18N::translate('Date of immigration'); |
|
526 | + case 'IMMI:PLAC': |
|
527 | + return I18N::translate('Place of immigration'); |
|
528 | + case 'INDI': |
|
529 | + return |
|
530 | + /* I18N: gedcom tag INDI */ |
|
531 | + I18N::translate('Individual'); |
|
532 | + case 'INFL': |
|
533 | + return |
|
534 | + /* I18N: gedcom tag INFL */ |
|
535 | + I18N::translate('Infant'); |
|
536 | + case 'LANG': |
|
537 | + return |
|
538 | + /* I18N: gedcom tag LANG */ |
|
539 | + I18N::translate('Language'); |
|
540 | + case 'LATI': |
|
541 | + return |
|
542 | + /* I18N: gedcom tag LATI */ |
|
543 | + I18N::translate('Latitude'); |
|
544 | + case 'LEGA': |
|
545 | + return |
|
546 | + /* I18N: gedcom tag LEGA */ |
|
547 | + I18N::translate('Legatee'); |
|
548 | + case 'LONG': |
|
549 | + return |
|
550 | + /* I18N: gedcom tag LONG */ |
|
551 | + I18N::translate('Longitude'); |
|
552 | + case 'MAP': |
|
553 | + return |
|
554 | + /* I18N: gedcom tag MAP */ |
|
555 | + I18N::translate('Map'); |
|
556 | + case 'MARB': |
|
557 | + return |
|
558 | + /* I18N: gedcom tag MARB */ |
|
559 | + I18N::translate('Marriage banns'); |
|
560 | + case 'MARB:DATE': |
|
561 | + return I18N::translate('Date of marriage banns'); |
|
562 | + case 'MARB:PLAC': |
|
563 | + return I18N::translate('Place of marriage banns'); |
|
564 | + case 'MARC': |
|
565 | + return |
|
566 | + /* I18N: gedcom tag MARC */ |
|
567 | + I18N::translate('Marriage contract'); |
|
568 | + case 'MARL': |
|
569 | + return |
|
570 | + /* I18N: gedcom tag MARL */ |
|
571 | + I18N::translate('Marriage license'); |
|
572 | + case 'MARR': |
|
573 | + return |
|
574 | + /* I18N: gedcom tag MARR */ |
|
575 | + I18N::translate('Marriage'); |
|
576 | + case 'MARR:DATE': |
|
577 | + return I18N::translate('Date of marriage'); |
|
578 | + case 'MARR:PLAC': |
|
579 | + return I18N::translate('Place of marriage'); |
|
580 | + case 'MARR_CIVIL': |
|
581 | + return I18N::translate('Civil marriage'); |
|
582 | + case 'MARR_PARTNERS': |
|
583 | + return I18N::translate('Registered partnership'); |
|
584 | + case 'MARR_RELIGIOUS': |
|
585 | + return I18N::translate('Religious marriage'); |
|
586 | + case 'MARR_UNKNOWN': |
|
587 | + return I18N::translate('Marriage type unknown'); |
|
588 | + case 'MARS': |
|
589 | + return |
|
590 | + /* I18N: gedcom tag MARS */ |
|
591 | + I18N::translate('Marriage settlement'); |
|
592 | + case 'MEDI': |
|
593 | + return |
|
594 | + /* I18N: gedcom tag MEDI */ |
|
595 | + I18N::translate('Media type'); |
|
596 | + case 'NAME': |
|
597 | + if ($record instanceof Repository) { |
|
598 | + return |
|
599 | + /* I18N: gedcom tag REPO:NAME */ |
|
600 | + I18N::translateContext('Repository', 'Name'); |
|
601 | + } else { |
|
602 | + return |
|
603 | + /* I18N: gedcom tag NAME */ |
|
604 | + I18N::translate('Name'); |
|
605 | + } |
|
606 | + case 'NAME:FONE': |
|
607 | + return I18N::translate('Phonetic name'); |
|
608 | + case 'NAME:_HEB': |
|
609 | + return I18N::translate('Name in Hebrew'); |
|
610 | + case 'NATI': |
|
611 | + return |
|
612 | + /* I18N: gedcom tag NATI */ |
|
613 | + I18N::translate('Nationality'); |
|
614 | + case 'NATU': |
|
615 | + return |
|
616 | + /* I18N: gedcom tag NATU */ |
|
617 | + I18N::translate('Naturalization'); |
|
618 | + case 'NATU:DATE': |
|
619 | + return I18N::translate('Date of naturalization'); |
|
620 | + case 'NATU:PLAC': |
|
621 | + return I18N::translate('Place of naturalization'); |
|
622 | + case 'NCHI': |
|
623 | + return |
|
624 | + /* I18N: gedcom tag NCHI */ |
|
625 | + I18N::translate('Number of children'); |
|
626 | + case 'NICK': |
|
627 | + return |
|
628 | + /* I18N: gedcom tag NICK */ |
|
629 | + I18N::translate('Nickname'); |
|
630 | + case 'NMR': |
|
631 | + return |
|
632 | + /* I18N: gedcom tag NMR */ |
|
633 | + I18N::translate('Number of marriages'); |
|
634 | + case 'NOTE': |
|
635 | + return |
|
636 | + /* I18N: gedcom tag NOTE */ |
|
637 | + I18N::translate('Note'); |
|
638 | + case 'NPFX': |
|
639 | + return |
|
640 | + /* I18N: gedcom tag NPFX */ |
|
641 | + I18N::translate('Name prefix'); |
|
642 | + case 'NSFX': |
|
643 | + return |
|
644 | + /* I18N: gedcom tag NSFX */ |
|
645 | + I18N::translate('Name suffix'); |
|
646 | + case 'OBJE': |
|
647 | + return |
|
648 | + /* I18N: gedcom tag OBJE */ |
|
649 | + I18N::translate('Media object'); |
|
650 | + case 'OCCU': |
|
651 | + return |
|
652 | + /* I18N: gedcom tag OCCU */ |
|
653 | + I18N::translate('Occupation'); |
|
654 | + case 'OCCU:AGNC': |
|
655 | + return I18N::translate('Employer'); |
|
656 | + case 'ORDI': |
|
657 | + return |
|
658 | + /* I18N: gedcom tag ORDI */ |
|
659 | + I18N::translate('Ordinance'); |
|
660 | + case 'ORDN': |
|
661 | + return |
|
662 | + /* I18N: gedcom tag ORDN */ |
|
663 | + I18N::translate('Ordination'); |
|
664 | + case 'ORDN:AGNC': |
|
665 | + return I18N::translate('Religious institution'); |
|
666 | + case 'ORDN:DATE': |
|
667 | + return I18N::translate('Date of ordination'); |
|
668 | + case 'ORDN:PLAC': |
|
669 | + return I18N::translate('Place of ordination'); |
|
670 | + case 'PAGE': |
|
671 | + return |
|
672 | + /* I18N: gedcom tag PAGE */ |
|
673 | + I18N::translate('Citation details'); |
|
674 | + case 'PEDI': |
|
675 | + return |
|
676 | + /* I18N: gedcom tag PEDI */ |
|
677 | + I18N::translate('Relationship to parents'); |
|
678 | + case 'PHON': |
|
679 | + return |
|
680 | + /* I18N: gedcom tag PHON */ |
|
681 | + I18N::translate('Phone'); |
|
682 | + case 'PLAC': |
|
683 | + return |
|
684 | + /* I18N: gedcom tag PLAC */ |
|
685 | + I18N::translate('Place'); |
|
686 | + case 'PLAC:FONE': |
|
687 | + return I18N::translate('Phonetic place'); |
|
688 | + case 'PLAC:ROMN': |
|
689 | + return I18N::translate('Romanized place'); |
|
690 | + case 'PLAC:_HEB': |
|
691 | + return I18N::translate('Place in Hebrew'); |
|
692 | + case 'POST': |
|
693 | + return |
|
694 | + /* I18N: gedcom tag POST */ |
|
695 | + I18N::translate('Postal code'); |
|
696 | + case 'PROB': |
|
697 | + return |
|
698 | + /* I18N: gedcom tag PROB */ |
|
699 | + I18N::translate('Probate'); |
|
700 | + case 'PROP': |
|
701 | + return |
|
702 | + /* I18N: gedcom tag PROP */ |
|
703 | + I18N::translate('Property'); |
|
704 | + case 'PUBL': |
|
705 | + return |
|
706 | + /* I18N: gedcom tag PUBL */ |
|
707 | + I18N::translate('Publication'); |
|
708 | + case 'QUAY': |
|
709 | + return |
|
710 | + /* I18N: gedcom tag QUAY */ |
|
711 | + I18N::translate('Quality of data'); |
|
712 | + case 'REFN': |
|
713 | + return |
|
714 | + /* I18N: gedcom tag REFN */ |
|
715 | + I18N::translate('Reference number'); |
|
716 | + case 'RELA': |
|
717 | + return |
|
718 | + /* I18N: gedcom tag RELA */ |
|
719 | + I18N::translate('Relationship'); |
|
720 | + case 'RELI': |
|
721 | + return |
|
722 | + /* I18N: gedcom tag RELI */ |
|
723 | + I18N::translate('Religion'); |
|
724 | + case 'REPO': |
|
725 | + return |
|
726 | + /* I18N: gedcom tag REPO */ |
|
727 | + I18N::translate('Repository'); |
|
728 | + case 'RESI': |
|
729 | + return |
|
730 | + /* I18N: gedcom tag RESI */ |
|
731 | + I18N::translate('Residence'); |
|
732 | + case 'RESI:DATE': |
|
733 | + return I18N::translate('Date of residence'); |
|
734 | + case 'RESI:PLAC': |
|
735 | + return I18N::translate('Place of residence'); |
|
736 | + case 'RESN': |
|
737 | + return |
|
738 | + /* I18N: gedcom tag RESN */ |
|
739 | + I18N::translate('Restriction'); |
|
740 | + case 'RETI': |
|
741 | + return |
|
742 | + /* I18N: gedcom tag RETI */ |
|
743 | + I18N::translate('Retirement'); |
|
744 | + case 'RETI:AGNC': |
|
745 | + return I18N::translate('Employer'); |
|
746 | + case 'RFN': |
|
747 | + return |
|
748 | + /* I18N: gedcom tag RFN */ |
|
749 | + I18N::translate('Record file number'); |
|
750 | + case 'RIN': |
|
751 | + return |
|
752 | + /* I18N: gedcom tag RIN */ |
|
753 | + I18N::translate('Record ID number'); |
|
754 | + case 'ROLE': |
|
755 | + return |
|
756 | + /* I18N: gedcom tag ROLE */ |
|
757 | + I18N::translate('Role'); |
|
758 | + case 'ROMN': |
|
759 | + return |
|
760 | + /* I18N: gedcom tag ROMN */ |
|
761 | + I18N::translate('Romanized'); |
|
762 | + case 'SERV': |
|
763 | + return |
|
764 | + /* I18N: gedcom tag SERV */ |
|
765 | + I18N::translate('Remote server'); |
|
766 | + case 'SEX': |
|
767 | + return |
|
768 | + /* I18N: gedcom tag SEX */ |
|
769 | + I18N::translate('Gender'); |
|
770 | + case 'SHARED_NOTE': |
|
771 | + return I18N::translate('Shared note'); |
|
772 | + case 'SLGC': |
|
773 | + return |
|
774 | + /* I18N: gedcom tag SLGC. LDS = Church of Latter Day Saints. */ |
|
775 | + I18N::translate('LDS child sealing'); |
|
776 | + case 'SLGC:DATE': |
|
777 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Date of LDS child sealing'); |
|
778 | + case 'SLGC:PLAC': |
|
779 | + return /* I18N: LDS = Church of Latter Day Saints. */ I18N::translate('Place of LDS child sealing'); |
|
780 | + case 'SLGS': |
|
781 | + return |
|
782 | + /* I18N: gedcom tag SLGS. LDS = Church of Latter Day Saints. */ |
|
783 | + I18N::translate('LDS spouse sealing'); |
|
784 | + case 'SOUR': |
|
785 | + return |
|
786 | + /* I18N: gedcom tag SOUR */ |
|
787 | + I18N::translate('Source'); |
|
788 | + case 'SPFX': |
|
789 | + return |
|
790 | + /* I18N: gedcom tag SPFX */ |
|
791 | + I18N::translate('Surname prefix'); |
|
792 | + case 'SSN': |
|
793 | + return |
|
794 | + /* I18N: gedcom tag SSN */ |
|
795 | + I18N::translate('Social security number'); |
|
796 | + case 'STAE': |
|
797 | + return |
|
798 | + /* I18N: gedcom tag STAE */ |
|
799 | + I18N::translate('State'); |
|
800 | + case 'STAT': |
|
801 | + return |
|
802 | + /* I18N: gedcom tag STAT */ |
|
803 | + I18N::translate('Status'); |
|
804 | + case 'STAT:DATE': |
|
805 | + return I18N::translate('Status change date'); |
|
806 | + case 'SUBM': |
|
807 | + return |
|
808 | + /* I18N: gedcom tag SUBM */ |
|
809 | + I18N::translate('Submitter'); |
|
810 | + case 'SUBN': |
|
811 | + return |
|
812 | + /* I18N: gedcom tag SUBN */ |
|
813 | + I18N::translate('Submission'); |
|
814 | + case 'SURN': |
|
815 | + return |
|
816 | + /* I18N: gedcom tag SURN */ |
|
817 | + I18N::translate('Surname'); |
|
818 | + case 'TEMP': |
|
819 | + return |
|
820 | + /* I18N: gedcom tag TEMP */ |
|
821 | + I18N::translate('Temple'); |
|
822 | + case 'TEXT': |
|
823 | + return |
|
824 | + /* I18N: gedcom tag TEXT */ |
|
825 | + I18N::translate('Text'); |
|
826 | + case 'TIME': |
|
827 | + return |
|
828 | + /* I18N: gedcom tag TIME */ |
|
829 | + I18N::translate('Time'); |
|
830 | + case 'TITL': |
|
831 | + return |
|
832 | + /* I18N: gedcom tag TITL */ |
|
833 | + I18N::translate('Title'); |
|
834 | + case 'TITL:FONE': |
|
835 | + return I18N::translate('Phonetic title'); |
|
836 | + case 'TITL:ROMN': |
|
837 | + return I18N::translate('Romanized title'); |
|
838 | + case 'TITL:_HEB': |
|
839 | + return I18N::translate('Title in Hebrew'); |
|
840 | + case 'TRLR': |
|
841 | + return |
|
842 | + /* I18N: gedcom tag TRLR */ |
|
843 | + I18N::translate('Trailer'); |
|
844 | + case 'TYPE': |
|
845 | + return |
|
846 | + /* I18N: gedcom tag TYPE */ |
|
847 | + I18N::translate('Type'); |
|
848 | + case 'URL': |
|
849 | + return |
|
850 | + /* I18N: gedcom tag URL (A web address / URL) */ |
|
851 | + I18N::translate('URL'); |
|
852 | + case 'VERS': |
|
853 | + return |
|
854 | + /* I18N: gedcom tag VERS */ |
|
855 | + I18N::translate('Version'); |
|
856 | + case 'WIFE': |
|
857 | + return |
|
858 | + /* I18N: gedcom tag WIFE */ |
|
859 | + I18N::translate('Wife'); |
|
860 | + case 'WILL': |
|
861 | + return |
|
862 | + /* I18N: gedcom tag WILL */ |
|
863 | + I18N::translate('Will'); |
|
864 | + case 'WWW': |
|
865 | + return |
|
866 | + /* I18N: gedcom tag WWW (A web address / URL) */ |
|
867 | + I18N::translate('URL'); |
|
868 | + case '_ADOP_CHIL': |
|
869 | + switch ($sex) { |
|
870 | + case 'M': |
|
871 | + return I18N::translate('Adoption of a son'); |
|
872 | + case 'F': |
|
873 | + return I18N::translate('Adoption of a daughter'); |
|
874 | + default: |
|
875 | + return I18N::translate('Adoption of a child'); |
|
876 | + } |
|
877 | + case '_ADOP_GCHI': |
|
878 | + switch ($sex) { |
|
879 | + case 'M': |
|
880 | + return I18N::translate('Adoption of a grandson'); |
|
881 | + case 'F': |
|
882 | + return I18N::translate('Adoption of a granddaughter'); |
|
883 | + default: |
|
884 | + return I18N::translate('Adoption of a grandchild'); |
|
885 | + } |
|
886 | + case '_ADOP_GCH1': |
|
887 | + switch ($sex) { |
|
888 | + case 'M': |
|
889 | + return I18N::translateContext('daughter’s son', 'Adoption of a grandson'); |
|
890 | + case 'F': |
|
891 | + return I18N::translateContext('daughter’s daughter', 'Adoption of a granddaughter'); |
|
892 | + default: |
|
893 | + return I18N::translate('Adoption of a grandchild'); |
|
894 | + } |
|
895 | + case '_ADOP_GCH2': |
|
896 | + switch ($sex) { |
|
897 | + case 'M': |
|
898 | + return I18N::translateContext('son’s son', 'Adoption of a grandson'); |
|
899 | + case 'F': |
|
900 | + return I18N::translateContext('son’s daughter', 'Adoption of a granddaughter'); |
|
901 | + default: |
|
902 | + return I18N::translate('Adoption of a grandchild'); |
|
903 | + } |
|
904 | + case '_ADOP_HSIB': |
|
905 | + switch ($sex) { |
|
906 | + case 'M': |
|
907 | + return I18N::translate('Adoption of a half-brother'); |
|
908 | + case 'F': |
|
909 | + return I18N::translate('Adoption of a half-sister'); |
|
910 | + default: |
|
911 | + return I18N::translate('Adoption of a half-sibling'); |
|
912 | + } |
|
913 | + case '_ADOP_SIBL': |
|
914 | + switch ($sex) { |
|
915 | + case 'M': |
|
916 | + return I18N::translate('Adoption of a brother'); |
|
917 | + case 'F': |
|
918 | + return I18N::translate('Adoption of a sister'); |
|
919 | + default: |
|
920 | + return I18N::translate('Adoption of a sibling'); |
|
921 | + } |
|
922 | + case '_ADPF': |
|
923 | + switch ($sex) { |
|
924 | + case 'M': |
|
925 | + return |
|
926 | + /* I18N: gedcom tag _ADPF */ |
|
927 | + I18N::translateContext('MALE', 'Adopted by father'); |
|
928 | + case 'F': |
|
929 | + return |
|
930 | + /* I18N: gedcom tag _ADPF */ |
|
931 | + I18N::translateContext('FEMALE', 'Adopted by father'); |
|
932 | + default: |
|
933 | + return |
|
934 | + /* I18N: gedcom tag _ADPF */ |
|
935 | + I18N::translate('Adopted by father'); |
|
936 | + } |
|
937 | + case '_ADPM': |
|
938 | + switch ($sex) { |
|
939 | + case 'M': |
|
940 | + return |
|
941 | + /* I18N: gedcom tag _ADPM */ |
|
942 | + I18N::translateContext('MALE', 'Adopted by mother'); |
|
943 | + case 'F': |
|
944 | + return |
|
945 | + /* I18N: gedcom tag _ADPM */ |
|
946 | + I18N::translateContext('FEMALE', 'Adopted by mother'); |
|
947 | + default: |
|
948 | + return |
|
949 | + /* I18N: gedcom tag _ADPM */ |
|
950 | + I18N::translate('Adopted by mother'); |
|
951 | + } |
|
952 | + case '_AKA': |
|
953 | + case '_AKAN': |
|
954 | + switch ($sex) { |
|
955 | + case 'M': |
|
956 | + return |
|
957 | + /* I18N: gedcom tag _AKA */ |
|
958 | + I18N::translateContext('MALE', 'Also known as'); |
|
959 | + case 'F': |
|
960 | + return |
|
961 | + /* I18N: gedcom tag _AKA */ |
|
962 | + I18N::translateContext('FEMALE', 'Also known as'); |
|
963 | + default: |
|
964 | + return |
|
965 | + /* I18N: gedcom tag _AKA */ |
|
966 | + I18N::translate('Also known as'); |
|
967 | + } |
|
968 | + case '_ASSO': |
|
969 | + return |
|
970 | + /* I18N: gedcom tag _ASSO */ |
|
971 | + I18N::translate('Associate'); /* see also ASSO */ |
|
972 | + case '_BAPM_CHIL': |
|
973 | + switch ($sex) { |
|
974 | + case 'M': |
|
975 | + return I18N::translate('Baptism of a son'); |
|
976 | + case 'F': |
|
977 | + return I18N::translate('Baptism of a daughter'); |
|
978 | + default: |
|
979 | + return I18N::translate('Baptism of a child'); |
|
980 | + } |
|
981 | + case '_BAPM_GCHI': |
|
982 | + switch ($sex) { |
|
983 | + case 'M': |
|
984 | + return I18N::translate('Baptism of a grandson'); |
|
985 | + case 'F': |
|
986 | + return I18N::translate('Baptism of a granddaughter'); |
|
987 | + default: |
|
988 | + return I18N::translate('Baptism of a grandchild'); |
|
989 | + } |
|
990 | + case '_BAPM_GCH1': |
|
991 | + switch ($sex) { |
|
992 | + case 'M': |
|
993 | + return I18N::translateContext('daughter’s son', 'Baptism of a grandson'); |
|
994 | + case 'F': |
|
995 | + return I18N::translateContext('daughter’s daughter', 'Baptism of a granddaughter'); |
|
996 | + default: |
|
997 | + return I18N::translate('Baptism of a grandchild'); |
|
998 | + } |
|
999 | + case '_BAPM_GCH2': |
|
1000 | + switch ($sex) { |
|
1001 | + case 'M': |
|
1002 | + return I18N::translateContext('son’s son', 'Baptism of a grandson'); |
|
1003 | + case 'F': |
|
1004 | + return I18N::translateContext('son’s daughter', 'Baptism of a granddaughter'); |
|
1005 | + default: |
|
1006 | + return I18N::translate('Baptism of a grandchild'); |
|
1007 | + } |
|
1008 | + case '_BAPM_HSIB': |
|
1009 | + switch ($sex) { |
|
1010 | + case 'M': |
|
1011 | + return I18N::translate('Baptism of a half-brother'); |
|
1012 | + case 'F': |
|
1013 | + return I18N::translate('Baptism of a half-sister'); |
|
1014 | + default: |
|
1015 | + return I18N::translate('Baptism of a half-sibling'); |
|
1016 | + } |
|
1017 | + case '_BAPM_SIBL': |
|
1018 | + switch ($sex) { |
|
1019 | + case 'M': |
|
1020 | + return I18N::translate('Baptism of a brother'); |
|
1021 | + case 'F': |
|
1022 | + return I18N::translate('Baptism of a sister'); |
|
1023 | + default: |
|
1024 | + return I18N::translate('Baptism of a sibling'); |
|
1025 | + } |
|
1026 | + case '_BIBL': |
|
1027 | + return |
|
1028 | + /* I18N: gedcom tag _BIBL */ |
|
1029 | + I18N::translate('Bibliography'); |
|
1030 | + case '_BIRT_CHIL': |
|
1031 | + switch ($sex) { |
|
1032 | + case 'M': |
|
1033 | + return I18N::translate('Birth of a son'); |
|
1034 | + case 'F': |
|
1035 | + return I18N::translate('Birth of a daughter'); |
|
1036 | + default: |
|
1037 | + return I18N::translate('Birth of a child'); |
|
1038 | + } |
|
1039 | + case '_BIRT_GCHI': |
|
1040 | + switch ($sex) { |
|
1041 | + case 'M': |
|
1042 | + return I18N::translate('Birth of a grandson'); |
|
1043 | + case 'F': |
|
1044 | + return I18N::translate('Birth of a granddaughter'); |
|
1045 | + default: |
|
1046 | + return I18N::translate('Birth of a grandchild'); |
|
1047 | + } |
|
1048 | + case '_BIRT_GCH1': |
|
1049 | + switch ($sex) { |
|
1050 | + case 'M': |
|
1051 | + return I18N::translateContext('daughter’s son', 'Birth of a grandson'); |
|
1052 | + case 'F': |
|
1053 | + return I18N::translateContext('daughter’s daughter', 'Birth of a granddaughter'); |
|
1054 | + default: |
|
1055 | + return I18N::translate('Birth of a grandchild'); |
|
1056 | + } |
|
1057 | + case '_BIRT_GCH2': |
|
1058 | + switch ($sex) { |
|
1059 | + case 'M': |
|
1060 | + return I18N::translateContext('son’s son', 'Birth of a grandson'); |
|
1061 | + case 'F': |
|
1062 | + return I18N::translateContext('son’s daughter', 'Birth of a granddaughter'); |
|
1063 | + default: |
|
1064 | + return I18N::translate('Birth of a grandchild'); |
|
1065 | + } |
|
1066 | + case '_BIRT_HSIB': |
|
1067 | + switch ($sex) { |
|
1068 | + case 'M': |
|
1069 | + return I18N::translate('Birth of a half-brother'); |
|
1070 | + case 'F': |
|
1071 | + return I18N::translate('Birth of a half-sister'); |
|
1072 | + default: |
|
1073 | + return I18N::translate('Birth of a half-sibling'); |
|
1074 | + } |
|
1075 | + case '_BIRT_SIBL': |
|
1076 | + switch ($sex) { |
|
1077 | + case 'M': |
|
1078 | + return I18N::translate('Birth of a brother'); |
|
1079 | + case 'F': |
|
1080 | + return I18N::translate('Birth of a sister'); |
|
1081 | + default: |
|
1082 | + return I18N::translate('Birth of a sibling'); |
|
1083 | + } |
|
1084 | + case '_BRTM': |
|
1085 | + return |
|
1086 | + /* I18N: gedcom tag _BRTM */ |
|
1087 | + I18N::translate('Brit milah'); |
|
1088 | + case '_BRTM:DATE': |
|
1089 | + return I18N::translate('Date of brit milah'); |
|
1090 | + case '_BRTM:PLAC': |
|
1091 | + return I18N::translate('Place of brit milah'); |
|
1092 | + case '_BURI_CHIL': |
|
1093 | + switch ($sex) { |
|
1094 | + case 'M': |
|
1095 | + return I18N::translate('Burial of a son'); |
|
1096 | + case 'F': |
|
1097 | + return I18N::translate('Burial of a daughter'); |
|
1098 | + default: |
|
1099 | + return I18N::translate('Burial of a child'); |
|
1100 | + } |
|
1101 | + case '_BURI_GCHI': |
|
1102 | + switch ($sex) { |
|
1103 | + case 'M': |
|
1104 | + return I18N::translate('Burial of a grandson'); |
|
1105 | + case 'F': |
|
1106 | + return I18N::translate('Burial of a granddaughter'); |
|
1107 | + default: |
|
1108 | + return I18N::translate('Burial of a grandchild'); |
|
1109 | + } |
|
1110 | + case '_BURI_GCH1': |
|
1111 | + switch ($sex) { |
|
1112 | + case 'M': |
|
1113 | + return I18N::translateContext('daughter’s son', 'Burial of a grandson'); |
|
1114 | + case 'F': |
|
1115 | + return I18N::translateContext('daughter’s daughter', 'Burial of a granddaughter'); |
|
1116 | + default: |
|
1117 | + return I18N::translate('Burial of a grandchild'); |
|
1118 | + } |
|
1119 | + case '_BURI_GCH2': |
|
1120 | + switch ($sex) { |
|
1121 | + case 'M': |
|
1122 | + return I18N::translateContext('son’s son', 'Burial of a grandson'); |
|
1123 | + case 'F': |
|
1124 | + return I18N::translateContext('son’s daughter', 'Burial of a granddaughter'); |
|
1125 | + default: |
|
1126 | + return I18N::translate('Burial of a grandchild'); |
|
1127 | + } |
|
1128 | + case '_BURI_GPAR': |
|
1129 | + switch ($sex) { |
|
1130 | + case 'M': |
|
1131 | + return I18N::translate('Burial of a grandfather'); |
|
1132 | + case 'F': |
|
1133 | + return I18N::translate('Burial of a grandmother'); |
|
1134 | + default: |
|
1135 | + return I18N::translate('Burial of a grandparent'); |
|
1136 | + } |
|
1137 | + case '_BURI_GPA1': |
|
1138 | + switch ($sex) { |
|
1139 | + case 'M': |
|
1140 | + return I18N::translate('Burial of a paternal grandfather'); |
|
1141 | + case 'F': |
|
1142 | + return I18N::translate('Burial of a paternal grandmother'); |
|
1143 | + default: |
|
1144 | + return I18N::translate('Burial of a paternal grandparent'); |
|
1145 | + } |
|
1146 | + case '_BURI_GPA2': |
|
1147 | + switch ($sex) { |
|
1148 | + case 'M': |
|
1149 | + return I18N::translate('Burial of a maternal grandfather'); |
|
1150 | + case 'F': |
|
1151 | + return I18N::translate('Burial of a maternal grandmother'); |
|
1152 | + default: |
|
1153 | + return I18N::translate('Burial of a maternal grandparent'); |
|
1154 | + } |
|
1155 | + case '_BURI_HSIB': |
|
1156 | + switch ($sex) { |
|
1157 | + case 'M': |
|
1158 | + return I18N::translate('Burial of a half-brother'); |
|
1159 | + case 'F': |
|
1160 | + return I18N::translate('Burial of a half-sister'); |
|
1161 | + default: |
|
1162 | + return I18N::translate('Burial of a half-sibling'); |
|
1163 | + } |
|
1164 | + case '_BURI_PARE': |
|
1165 | + switch ($sex) { |
|
1166 | + case 'M': |
|
1167 | + return I18N::translate('Burial of a father'); |
|
1168 | + case 'F': |
|
1169 | + return I18N::translate('Burial of a mother'); |
|
1170 | + default: |
|
1171 | + return I18N::translate('Burial of a parent'); |
|
1172 | + } |
|
1173 | + case '_BURI_SIBL': |
|
1174 | + switch ($sex) { |
|
1175 | + case 'M': |
|
1176 | + return I18N::translate('Burial of a brother'); |
|
1177 | + case 'F': |
|
1178 | + return I18N::translate('Burial of a sister'); |
|
1179 | + default: |
|
1180 | + return I18N::translate('Burial of a sibling'); |
|
1181 | + } |
|
1182 | + case '_BURI_SPOU': |
|
1183 | + switch ($sex) { |
|
1184 | + case 'M': |
|
1185 | + return I18N::translate('Burial of a husband'); |
|
1186 | + case 'F': |
|
1187 | + return I18N::translate('Burial of a wife'); |
|
1188 | + default: |
|
1189 | + return I18N::translate('Burial of a spouse'); |
|
1190 | + } |
|
1191 | + case '_CHR_CHIL': |
|
1192 | + switch ($sex) { |
|
1193 | + case 'M': |
|
1194 | + return I18N::translate('Christening of a son'); |
|
1195 | + case 'F': |
|
1196 | + return I18N::translate('Christening of a daughter'); |
|
1197 | + default: |
|
1198 | + return I18N::translate('Christening of a child'); |
|
1199 | + } |
|
1200 | + case '_CHR_GCHI': |
|
1201 | + switch ($sex) { |
|
1202 | + case 'M': |
|
1203 | + return I18N::translate('Christening of a grandson'); |
|
1204 | + case 'F': |
|
1205 | + return I18N::translate('Christening of a granddaughter'); |
|
1206 | + default: |
|
1207 | + return I18N::translate('Christening of a grandchild'); |
|
1208 | + } |
|
1209 | + case '_CHR_GCH1': |
|
1210 | + switch ($sex) { |
|
1211 | + case 'M': |
|
1212 | + return I18N::translateContext('daughter’s son', 'Christening of a grandson'); |
|
1213 | + case 'F': |
|
1214 | + return I18N::translateContext('daughter’s daughter', 'Christening of a granddaughter'); |
|
1215 | + default: |
|
1216 | + return I18N::translate('Christening of a grandchild'); |
|
1217 | + } |
|
1218 | + case '_CHR_GCH2': |
|
1219 | + switch ($sex) { |
|
1220 | + case 'M': |
|
1221 | + return I18N::translateContext('son’s son', 'Christening of a grandson'); |
|
1222 | + case 'F': |
|
1223 | + return I18N::translateContext('son’s daughter', 'Christening of a granddaughter'); |
|
1224 | + default: |
|
1225 | + return I18N::translate('Christening of a grandchild'); |
|
1226 | + } |
|
1227 | + case '_CHR_HSIB': |
|
1228 | + switch ($sex) { |
|
1229 | + case 'M': |
|
1230 | + return I18N::translate('Christening of a half-brother'); |
|
1231 | + case 'F': |
|
1232 | + return I18N::translate('Christening of a half-sister'); |
|
1233 | + default: |
|
1234 | + return I18N::translate('Christening of a half-sibling'); |
|
1235 | + } |
|
1236 | + case '_CHR_SIBL': |
|
1237 | + switch ($sex) { |
|
1238 | + case 'M': |
|
1239 | + return I18N::translate('Christening of a brother'); |
|
1240 | + case 'F': |
|
1241 | + return I18N::translate('Christening of a sister'); |
|
1242 | + default: |
|
1243 | + return I18N::translate('Christening of a sibling'); |
|
1244 | + } |
|
1245 | + case '_COML': |
|
1246 | + return |
|
1247 | + /* I18N: gedcom tag _COML */ |
|
1248 | + I18N::translate('Common law marriage'); |
|
1249 | + case '_CREM_CHIL': |
|
1250 | + switch ($sex) { |
|
1251 | + case 'M': |
|
1252 | + return I18N::translate('Cremation of a son'); |
|
1253 | + case 'F': |
|
1254 | + return I18N::translate('Cremation of a daughter'); |
|
1255 | + default: |
|
1256 | + return I18N::translate('Cremation of a child'); |
|
1257 | + } |
|
1258 | + case '_CREM_GCHI': |
|
1259 | + switch ($sex) { |
|
1260 | + case 'M': |
|
1261 | + return I18N::translate('Cremation of a grandson'); |
|
1262 | + case 'F': |
|
1263 | + return I18N::translate('Cremation of a granddaughter'); |
|
1264 | + default: |
|
1265 | + return I18N::translate('Cremation of a grandchild'); |
|
1266 | + } |
|
1267 | + case '_CREM_GCH1': |
|
1268 | + switch ($sex) { |
|
1269 | + case 'M': |
|
1270 | + return I18N::translateContext('daughter’s son', 'Cremation of a grandson'); |
|
1271 | + case 'F': |
|
1272 | + return I18N::translateContext('daughter’s daughter', 'Cremation of a granddaughter'); |
|
1273 | + default: |
|
1274 | + return I18N::translate('Cremation of a grandchild'); |
|
1275 | + } |
|
1276 | + case '_CREM_GCH2': |
|
1277 | + switch ($sex) { |
|
1278 | + case 'M': |
|
1279 | + return I18N::translateContext('son’s son', 'Cremation of a grandson'); |
|
1280 | + case 'F': |
|
1281 | + return I18N::translateContext('son’s daughter', 'Cremation of a granddaughter'); |
|
1282 | + default: |
|
1283 | + return I18N::translate('Cremation of a grandchild'); |
|
1284 | + } |
|
1285 | + case '_CREM_GPAR': |
|
1286 | + switch ($sex) { |
|
1287 | + case 'M': |
|
1288 | + return I18N::translate('Cremation of a grandfather'); |
|
1289 | + case 'F': |
|
1290 | + return I18N::translate('Cremation of a grandmother'); |
|
1291 | + default: |
|
1292 | + return I18N::translate('Cremation of a grand-parent'); |
|
1293 | + } |
|
1294 | + case '_CREM_GPA1': |
|
1295 | + switch ($sex) { |
|
1296 | + case 'M': |
|
1297 | + return I18N::translate('Cremation of a paternal grandfather'); |
|
1298 | + case 'F': |
|
1299 | + return I18N::translate('Cremation of a paternal grandmother'); |
|
1300 | + default: |
|
1301 | + return I18N::translate('Cremation of a grand-parent'); |
|
1302 | + } |
|
1303 | + case '_CREM_GPA2': |
|
1304 | + switch ($sex) { |
|
1305 | + case 'M': |
|
1306 | + return I18N::translate('Cremation of a maternal grandfather'); |
|
1307 | + case 'F': |
|
1308 | + return I18N::translate('Cremation of a maternal grandmother'); |
|
1309 | + default: |
|
1310 | + return I18N::translate('Cremation of a grand-parent'); |
|
1311 | + } |
|
1312 | + case '_CREM_HSIB': |
|
1313 | + switch ($sex) { |
|
1314 | + case 'M': |
|
1315 | + return I18N::translate('Cremation of a half-brother'); |
|
1316 | + case 'F': |
|
1317 | + return I18N::translate('Cremation of a half-sister'); |
|
1318 | + default: |
|
1319 | + return I18N::translate('Cremation of a half-sibling'); |
|
1320 | + } |
|
1321 | + case '_CREM_PARE': |
|
1322 | + switch ($sex) { |
|
1323 | + case 'M': |
|
1324 | + return I18N::translate('Cremation of a father'); |
|
1325 | + case 'F': |
|
1326 | + return I18N::translate('Cremation of a mother'); |
|
1327 | + default: |
|
1328 | + return I18N::translate('Cremation of a parent'); |
|
1329 | + } |
|
1330 | + case '_CREM_SIBL': |
|
1331 | + switch ($sex) { |
|
1332 | + case 'M': |
|
1333 | + return I18N::translate('Cremation of a brother'); |
|
1334 | + case 'F': |
|
1335 | + return I18N::translate('Cremation of a sister'); |
|
1336 | + default: |
|
1337 | + return I18N::translate('Cremation of a sibling'); |
|
1338 | + } |
|
1339 | + case '_CREM_SPOU': |
|
1340 | + switch ($sex) { |
|
1341 | + case 'M': |
|
1342 | + return I18N::translate('Cremation of a husband'); |
|
1343 | + case 'F': |
|
1344 | + return I18N::translate('Cremation of a wife'); |
|
1345 | + default: |
|
1346 | + return I18N::translate('Cremation of a spouse'); |
|
1347 | + } |
|
1348 | + case '_DBID': |
|
1349 | + return |
|
1350 | + /* I18N: gedcom tag _DBID */ |
|
1351 | + I18N::translate('Linked database ID'); |
|
1352 | + case '_DEAT_CHIL': |
|
1353 | + switch ($sex) { |
|
1354 | + case 'M': |
|
1355 | + return I18N::translate('Death of a son'); |
|
1356 | + case 'F': |
|
1357 | + return I18N::translate('Death of a daughter'); |
|
1358 | + default: |
|
1359 | + return I18N::translate('Death of a child'); |
|
1360 | + } |
|
1361 | + case '_DEAT_GCHI': |
|
1362 | + switch ($sex) { |
|
1363 | + case 'M': |
|
1364 | + return I18N::translate('Death of a grandson'); |
|
1365 | + case 'F': |
|
1366 | + return I18N::translate('Death of a granddaughter'); |
|
1367 | + default: |
|
1368 | + return I18N::translate('Death of a grandchild'); |
|
1369 | + } |
|
1370 | + case '_DEAT_GCH1': |
|
1371 | + switch ($sex) { |
|
1372 | + case 'M': |
|
1373 | + return I18N::translateContext('daughter’s son', 'Death of a grandson'); |
|
1374 | + case 'F': |
|
1375 | + return I18N::translateContext('daughter’s daughter', 'Death of a granddaughter'); |
|
1376 | + default: |
|
1377 | + return I18N::translate('Death of a grandchild'); |
|
1378 | + } |
|
1379 | + case '_DEAT_GCH2': |
|
1380 | + switch ($sex) { |
|
1381 | + case 'M': |
|
1382 | + return I18N::translateContext('son’s son', 'Death of a grandson'); |
|
1383 | + case 'F': |
|
1384 | + return I18N::translateContext('son’s daughter', 'Death of a granddaughter'); |
|
1385 | + default: |
|
1386 | + return I18N::translate('Death of a grandchild'); |
|
1387 | + } |
|
1388 | + case '_DEAT_GPAR': |
|
1389 | + switch ($sex) { |
|
1390 | + case 'M': |
|
1391 | + return I18N::translate('Death of a grandfather'); |
|
1392 | + case 'F': |
|
1393 | + return I18N::translate('Death of a grandmother'); |
|
1394 | + default: |
|
1395 | + return I18N::translate('Death of a grand-parent'); |
|
1396 | + } |
|
1397 | + case '_DEAT_GPA1': |
|
1398 | + switch ($sex) { |
|
1399 | + case 'M': |
|
1400 | + return I18N::translate('Death of a paternal grandfather'); |
|
1401 | + case 'F': |
|
1402 | + return I18N::translate('Death of a paternal grandmother'); |
|
1403 | + default: |
|
1404 | + return I18N::translate('Death of a grand-parent'); |
|
1405 | + } |
|
1406 | + case '_DEAT_GPA2': |
|
1407 | + switch ($sex) { |
|
1408 | + case 'M': |
|
1409 | + return I18N::translate('Death of a maternal grandfather'); |
|
1410 | + case 'F': |
|
1411 | + return I18N::translate('Death of a maternal grandmother'); |
|
1412 | + default: |
|
1413 | + return I18N::translate('Death of a grand-parent'); |
|
1414 | + } |
|
1415 | + case '_DEAT_HSIB': |
|
1416 | + switch ($sex) { |
|
1417 | + case 'M': |
|
1418 | + return I18N::translate('Death of a half-brother'); |
|
1419 | + case 'F': |
|
1420 | + return I18N::translate('Death of a half-sister'); |
|
1421 | + default: |
|
1422 | + return I18N::translate('Death of a half-sibling'); |
|
1423 | + } |
|
1424 | + case '_DEAT_PARE': |
|
1425 | + switch ($sex) { |
|
1426 | + case 'M': |
|
1427 | + return I18N::translate('Death of a father'); |
|
1428 | + case 'F': |
|
1429 | + return I18N::translate('Death of a mother'); |
|
1430 | + default: |
|
1431 | + return I18N::translate('Death of a parent'); |
|
1432 | + } |
|
1433 | + case '_DEAT_SIBL': |
|
1434 | + switch ($sex) { |
|
1435 | + case 'M': |
|
1436 | + return I18N::translate('Death of a brother'); |
|
1437 | + case 'F': |
|
1438 | + return I18N::translate('Death of a sister'); |
|
1439 | + default: |
|
1440 | + return I18N::translate('Death of a sibling'); |
|
1441 | + } |
|
1442 | + case '_DEAT_SPOU': |
|
1443 | + switch ($sex) { |
|
1444 | + case 'M': |
|
1445 | + return I18N::translate('Death of a husband'); |
|
1446 | + case 'F': |
|
1447 | + return I18N::translate('Death of a wife'); |
|
1448 | + default: |
|
1449 | + return I18N::translate('Death of a spouse'); |
|
1450 | + } |
|
1451 | + case '_DEG': |
|
1452 | + return |
|
1453 | + /* I18N: gedcom tag _DEG */ |
|
1454 | + I18N::translate('Degree'); |
|
1455 | + case '_DETS': |
|
1456 | + return |
|
1457 | + /* I18N: gedcom tag _DETS */ |
|
1458 | + I18N::translate('Death of one spouse'); |
|
1459 | + case '_DNA': |
|
1460 | + return |
|
1461 | + /* I18N: gedcom tag _DNA (from FTM 2010) */ |
|
1462 | + I18N::translate('DNA markers'); |
|
1463 | + case '_EMAIL': |
|
1464 | + return |
|
1465 | + /* I18N: gedcom tag _EMAIL */ |
|
1466 | + I18N::translate('Email address'); |
|
1467 | + case '_EYEC': |
|
1468 | + return |
|
1469 | + /* I18N: gedcom tag _EYEC */ |
|
1470 | + I18N::translate('Eye color'); |
|
1471 | + case '_FA1': |
|
1472 | + return I18N::translate('Fact 1'); |
|
1473 | + case '_FA2': |
|
1474 | + return I18N::translate('Fact 2'); |
|
1475 | + case '_FA3': |
|
1476 | + return I18N::translate('Fact 3'); |
|
1477 | + case '_FA4': |
|
1478 | + return I18N::translate('Fact 4'); |
|
1479 | + case '_FA5': |
|
1480 | + return I18N::translate('Fact 5'); |
|
1481 | + case '_FA6': |
|
1482 | + return I18N::translate('Fact 6'); |
|
1483 | + case '_FA7': |
|
1484 | + return I18N::translate('Fact 7'); |
|
1485 | + case '_FA8': |
|
1486 | + return I18N::translate('Fact 8'); |
|
1487 | + case '_FA9': |
|
1488 | + return I18N::translate('Fact 9'); |
|
1489 | + case '_FA10': |
|
1490 | + return I18N::translate('Fact 10'); |
|
1491 | + case '_FA11': |
|
1492 | + return I18N::translate('Fact 11'); |
|
1493 | + case '_FA12': |
|
1494 | + return I18N::translate('Fact 12'); |
|
1495 | + case '_FA13': |
|
1496 | + return I18N::translate('Fact 13'); |
|
1497 | + case '_FNRL': |
|
1498 | + return |
|
1499 | + /* I18N: gedcom tag _FNRL */ |
|
1500 | + I18N::translate('Funeral'); |
|
1501 | + case '_FREL': |
|
1502 | + return |
|
1503 | + /* I18N: gedcom tag _FREL */ |
|
1504 | + I18N::translate('Relationship to father'); |
|
1505 | + case '_GEDF': |
|
1506 | + return |
|
1507 | + /* I18N: gedcom tag _GEDF */ |
|
1508 | + I18N::translate('GEDCOM file'); |
|
1509 | + case '_GODP': |
|
1510 | + return |
|
1511 | + /* I18N: gedcom tag _GODP */ |
|
1512 | + I18N::translate('Godparent'); |
|
1513 | + case '_HAIR': |
|
1514 | + return |
|
1515 | + /* I18N: gedcom tag _HAIR */ |
|
1516 | + I18N::translate('Hair color'); |
|
1517 | + case '_HEB': |
|
1518 | + return |
|
1519 | + /* I18N: gedcom tag _HEB */ |
|
1520 | + I18N::translate('Hebrew'); |
|
1521 | + case '_HEIG': |
|
1522 | + return |
|
1523 | + /* I18N: gedcom tag _HEIG */ |
|
1524 | + I18N::translate('Height'); |
|
1525 | + case '_HNM': |
|
1526 | + return |
|
1527 | + /* I18N: gedcom tag _HNM */ |
|
1528 | + I18N::translate('Hebrew name'); |
|
1529 | + case '_HOL': |
|
1530 | + return |
|
1531 | + /* I18N: gedcom tag _HOL */ |
|
1532 | + I18N::translate('Holocaust'); |
|
1533 | + case '_INTE': |
|
1534 | + switch ($sex) { |
|
1535 | + case 'M': |
|
1536 | + return |
|
1537 | + /* I18N: gedcom tag _INTE */ |
|
1538 | + I18N::translateContext('MALE', 'Interred'); |
|
1539 | + case 'F': |
|
1540 | + return |
|
1541 | + /* I18N: gedcom tag _INTE */ |
|
1542 | + I18N::translateContext('FEMALE', 'Interred'); |
|
1543 | + default: |
|
1544 | + return |
|
1545 | + /* I18N: gedcom tag _INTE */ |
|
1546 | + I18N::translate('Interred'); |
|
1547 | + } |
|
1548 | + case '_LOC': |
|
1549 | + return |
|
1550 | + /* I18N: gedcom tag _LOC */ |
|
1551 | + I18N::translate('Location'); |
|
1552 | + case '_MARI': |
|
1553 | + return |
|
1554 | + /* I18N: gedcom tag _MARI */ |
|
1555 | + I18N::translate('Marriage intention'); |
|
1556 | + case '_MARNM': |
|
1557 | + return |
|
1558 | + /* I18N: gedcom tag _MARNM */ |
|
1559 | + I18N::translate('Married name'); |
|
1560 | + case '_PRIM': |
|
1561 | + return |
|
1562 | + /* I18N: gedcom tag _PRIM */ |
|
1563 | + I18N::translate('Highlighted image'); |
|
1564 | + case '_MARNM_SURN': |
|
1565 | + return I18N::translate('Married surname'); |
|
1566 | + case '_MARR_CHIL': |
|
1567 | + switch ($sex) { |
|
1568 | + case 'M': |
|
1569 | + return I18N::translate('Marriage of a son'); |
|
1570 | + case 'F': |
|
1571 | + return I18N::translate('Marriage of a daughter'); |
|
1572 | + default: |
|
1573 | + return I18N::translate('Marriage of a child'); |
|
1574 | + } |
|
1575 | + case '_MARR_FAMC': |
|
1576 | + return |
|
1577 | + /* I18N: ...to each other */ |
|
1578 | + I18N::translate('Marriage of parents'); |
|
1579 | + case '_MARR_GCHI': |
|
1580 | + switch ($sex) { |
|
1581 | + case 'M': |
|
1582 | + return I18N::translate('Marriage of a grandson'); |
|
1583 | + case 'F': |
|
1584 | + return I18N::translate('Marriage of a granddaughter'); |
|
1585 | + default: |
|
1586 | + return I18N::translate('Marriage of a grandchild'); |
|
1587 | + } |
|
1588 | + case '_MARR_GCH1': |
|
1589 | + switch ($sex) { |
|
1590 | + case 'M': |
|
1591 | + return I18N::translateContext('daughter’s son', 'Marriage of a grandson'); |
|
1592 | + case 'F': |
|
1593 | + return I18N::translateContext('daughter’s daughter', 'Marriage of a granddaughter'); |
|
1594 | + default: |
|
1595 | + return I18N::translate('Marriage of a grandchild'); |
|
1596 | + } |
|
1597 | + case '_MARR_GCH2': |
|
1598 | + switch ($sex) { |
|
1599 | + case 'M': |
|
1600 | + return I18N::translateContext('son’s son', 'Marriage of a grandson'); |
|
1601 | + case 'F': |
|
1602 | + return I18N::translateContext('son’s daughter', 'Marriage of a granddaughter'); |
|
1603 | + default: |
|
1604 | + return I18N::translate('Marriage of a grandchild'); |
|
1605 | + } |
|
1606 | + case '_MARR_HSIB': |
|
1607 | + switch ($sex) { |
|
1608 | + case 'M': |
|
1609 | + return I18N::translate('Marriage of a half-brother'); |
|
1610 | + case 'F': |
|
1611 | + return I18N::translate('Marriage of a half-sister'); |
|
1612 | + default: |
|
1613 | + return I18N::translate('Marriage of a half-sibling'); |
|
1614 | + } |
|
1615 | + case '_MARR_PARE': |
|
1616 | + switch ($sex) { |
|
1617 | + case 'M': |
|
1618 | + return |
|
1619 | + /* I18N: ...to another spouse */ |
|
1620 | + I18N::translate('Marriage of a father'); |
|
1621 | + case 'F': |
|
1622 | + return |
|
1623 | + /* I18N: ...to another spouse */ |
|
1624 | + I18N::translate('Marriage of a mother'); |
|
1625 | + default: |
|
1626 | + return |
|
1627 | + /* I18N: ...to another spouse */ |
|
1628 | + I18N::translate('Marriage of a parent'); |
|
1629 | + } |
|
1630 | + case '_MARR_SIBL': |
|
1631 | + switch ($sex) { |
|
1632 | + case 'M': |
|
1633 | + return I18N::translate('Marriage of a brother'); |
|
1634 | + case 'F': |
|
1635 | + return I18N::translate('Marriage of a sister'); |
|
1636 | + default: |
|
1637 | + return I18N::translate('Marriage of a sibling'); |
|
1638 | + } |
|
1639 | + case '_MBON': |
|
1640 | + return |
|
1641 | + /* I18N: gedcom tag _MBON */ |
|
1642 | + I18N::translate('Marriage bond'); |
|
1643 | + case '_MDCL': |
|
1644 | + return |
|
1645 | + /* I18N: gedcom tag _MDCL */ |
|
1646 | + I18N::translate('Medical'); |
|
1647 | + case '_MEDC': |
|
1648 | + return |
|
1649 | + /* I18N: gedcom tag _MEDC */ |
|
1650 | + I18N::translate('Medical condition'); |
|
1651 | + case '_MEND': |
|
1652 | + return |
|
1653 | + /* I18N: gedcom tag _MEND */ |
|
1654 | + I18N::translate('Marriage ending status'); |
|
1655 | + case '_MILI': |
|
1656 | + return |
|
1657 | + /* I18N: gedcom tag _MILI */ |
|
1658 | + I18N::translate('Military'); |
|
1659 | + case '_MILT': |
|
1660 | + return |
|
1661 | + /* I18N: gedcom tag _MILT */ |
|
1662 | + I18N::translate('Military service'); |
|
1663 | + case '_MREL': |
|
1664 | + return |
|
1665 | + /* I18N: gedcom tag _MREL */ |
|
1666 | + I18N::translate('Relationship to mother'); |
|
1667 | + case '_MSTAT': |
|
1668 | + return |
|
1669 | + /* I18N: gedcom tag _MSTAT */ |
|
1670 | + I18N::translate('Marriage beginning status'); |
|
1671 | + case '_NAME': |
|
1672 | + return |
|
1673 | + /* I18N: gedcom tag _NAME */ |
|
1674 | + I18N::translate('Mailing name'); |
|
1675 | + case '_NAMS': |
|
1676 | + return |
|
1677 | + /* I18N: gedcom tag _NAMS */ |
|
1678 | + I18N::translate('Namesake'); |
|
1679 | + case '_NLIV': |
|
1680 | + return |
|
1681 | + /* I18N: gedcom tag _NLIV */ |
|
1682 | + I18N::translate('Not living'); |
|
1683 | + case '_NMAR': |
|
1684 | + switch ($sex) { |
|
1685 | + case 'M': |
|
1686 | + return |
|
1687 | + /* I18N: gedcom tag _NMAR */ |
|
1688 | + I18N::translateContext('MALE', 'Never married'); |
|
1689 | + case 'F': |
|
1690 | + return |
|
1691 | + /* I18N: gedcom tag _NMAR */ |
|
1692 | + I18N::translateContext('FEMALE', 'Never married'); |
|
1693 | + default: |
|
1694 | + return |
|
1695 | + /* I18N: gedcom tag _NMAR */ |
|
1696 | + I18N::translate('Never married'); |
|
1697 | + } |
|
1698 | + case '_NMR': |
|
1699 | + switch ($sex) { |
|
1700 | + case 'M': |
|
1701 | + return |
|
1702 | + /* I18N: gedcom tag _NMR */ |
|
1703 | + I18N::translateContext('MALE', 'Not married'); |
|
1704 | + case 'F': |
|
1705 | + return |
|
1706 | + /* I18N: gedcom tag _NMR */ |
|
1707 | + I18N::translateContext('FEMALE', 'Not married'); |
|
1708 | + default: |
|
1709 | + return |
|
1710 | + /* I18N: gedcom tag _NMR */ |
|
1711 | + I18N::translate('Not married'); |
|
1712 | + } |
|
1713 | + case '_WT_USER': |
|
1714 | + return I18N::translate('by'); |
|
1715 | + case '_PRMN': |
|
1716 | + return |
|
1717 | + /* I18N: gedcom tag _PRMN */ |
|
1718 | + I18N::translate('Permanent number'); |
|
1719 | + case '_SCBK': |
|
1720 | + return |
|
1721 | + /* I18N: gedcom tag _SCBK */ |
|
1722 | + I18N::translate('Scrapbook'); |
|
1723 | + case '_SEPR': |
|
1724 | + return |
|
1725 | + /* I18N: gedcom tag _SEPR */ |
|
1726 | + I18N::translate('Separated'); |
|
1727 | + case '_SSHOW': |
|
1728 | + return |
|
1729 | + /* I18N: gedcom tag _SSHOW */ |
|
1730 | + I18N::translate('Slide show'); |
|
1731 | + case '_STAT': |
|
1732 | + return |
|
1733 | + /* I18N: gedcom tag _STAT */ |
|
1734 | + I18N::translate('Marriage status'); |
|
1735 | + case '_SUBQ': |
|
1736 | + return |
|
1737 | + /* I18N: gedcom tag _SUBQ */ |
|
1738 | + I18N::translate('Short version'); |
|
1739 | + case '_TODO': |
|
1740 | + return |
|
1741 | + /* I18N: gedcom tag _TODO */ |
|
1742 | + I18N::translate('Research task'); |
|
1743 | + case '_TYPE': |
|
1744 | + return |
|
1745 | + /* I18N: gedcom tag _TYPE */ |
|
1746 | + I18N::translate('Media type'); |
|
1747 | + case '_UID': |
|
1748 | + return |
|
1749 | + /* I18N: gedcom tag _UID */ |
|
1750 | + I18N::translate('Unique identifier'); |
|
1751 | + case '_URL': |
|
1752 | + return |
|
1753 | + /* I18N: gedcom tag _URL */ |
|
1754 | + I18N::translate('URL'); |
|
1755 | + case '_WEIG': |
|
1756 | + return |
|
1757 | + /* I18N: gedcom tag _WEIG */ |
|
1758 | + I18N::translate('Weight'); |
|
1759 | + case '_WITN': |
|
1760 | + return |
|
1761 | + /* I18N: gedcom tag _WITN */ |
|
1762 | + I18N::translate('Witness'); |
|
1763 | + case '_WT_OBJE_SORT': |
|
1764 | + return |
|
1765 | + /* I18N: gedcom tag _WT_OBJE_SORT */ |
|
1766 | + I18N::translate('Re-order media'); |
|
1767 | + case '_YART': |
|
1768 | + return /* I18N: gedcom tag _YART - A yahrzeit is a special anniversary of death in the Hebrew faith/calendar. */ I18N::translate('Yahrzeit'); |
|
1769 | + // Brit milah applies only to males, no need for male/female translations |
|
1770 | + case '__BRTM_CHIL': |
|
1771 | + return I18N::translate('Brit milah of a son'); |
|
1772 | + case '__BRTM_GCHI': |
|
1773 | + return I18N::translate('Brit milah of a grandson'); |
|
1774 | + case '__BRTM_GCH1': |
|
1775 | + return I18N::translateContext('daughter’s son', 'Brit milah of a grandson'); |
|
1776 | + case '__BRTM_GCH2': |
|
1777 | + return I18N::translateContext('son’s son', 'Brit milah of a grandson'); |
|
1778 | + case '__BRTM_HSIB': |
|
1779 | + return I18N::translate('Brit milah of a half-brother'); |
|
1780 | + case '__BRTM_SIBL': |
|
1781 | + return I18N::translate('Brit milah of a brother'); |
|
1782 | + // These "pseudo" tags are generated internally to present information about a media object |
|
1783 | + case '__FILE_SIZE__': |
|
1784 | + return I18N::translate('File size'); |
|
1785 | + case '__IMAGE_SIZE__': |
|
1786 | + return I18N::translate('Image dimensions'); |
|
1787 | + default: |
|
1788 | + // If no specialisation exists (e.g. DEAT:CAUS), then look for the general (CAUS) |
|
1789 | + if (strpos($tag, ':')) { |
|
1790 | + list(, $tag) = explode(':', $tag, 2); |
|
1791 | 1791 | |
1792 | - return self::getLabel($tag, $record); |
|
1793 | - } |
|
1792 | + return self::getLabel($tag, $record); |
|
1793 | + } |
|
1794 | 1794 | |
1795 | - // Still no translation? Highlight this as an error |
|
1796 | - return '<span class="error" title="' . I18N::translate('Unrecognized GEDCOM code') . '">' . Filter::escapeHtml($tag) . '</span>'; |
|
1797 | - } |
|
1798 | - } |
|
1795 | + // Still no translation? Highlight this as an error |
|
1796 | + return '<span class="error" title="' . I18N::translate('Unrecognized GEDCOM code') . '">' . Filter::escapeHtml($tag) . '</span>'; |
|
1797 | + } |
|
1798 | + } |
|
1799 | 1799 | |
1800 | - /** |
|
1801 | - * Translate a label/value pair, such as “Occupation: Farmer” |
|
1802 | - * |
|
1803 | - * @param string $tag |
|
1804 | - * @param string $value |
|
1805 | - * @param GedcomRecord|null $record |
|
1806 | - * @param string|null $element |
|
1807 | - * |
|
1808 | - * @return string |
|
1809 | - */ |
|
1810 | - public static function getLabelValue($tag, $value, GedcomRecord $record = null, $element = 'div') { |
|
1811 | - return |
|
1812 | - '<' . $element . ' class="fact_' . $tag . '">' . |
|
1813 | - /* I18N: a label/value pair, such as “Occupation: Farmer”. Some languages may need to change the punctuation. */ |
|
1814 | - I18N::translate('<span class="label">%1$s:</span> <span class="field" dir="auto">%2$s</span>', self::getLabel($tag, $record), $value) . |
|
1815 | - '</' . $element . '>'; |
|
1816 | - } |
|
1800 | + /** |
|
1801 | + * Translate a label/value pair, such as “Occupation: Farmer” |
|
1802 | + * |
|
1803 | + * @param string $tag |
|
1804 | + * @param string $value |
|
1805 | + * @param GedcomRecord|null $record |
|
1806 | + * @param string|null $element |
|
1807 | + * |
|
1808 | + * @return string |
|
1809 | + */ |
|
1810 | + public static function getLabelValue($tag, $value, GedcomRecord $record = null, $element = 'div') { |
|
1811 | + return |
|
1812 | + '<' . $element . ' class="fact_' . $tag . '">' . |
|
1813 | + /* I18N: a label/value pair, such as “Occupation: Farmer”. Some languages may need to change the punctuation. */ |
|
1814 | + I18N::translate('<span class="label">%1$s:</span> <span class="field" dir="auto">%2$s</span>', self::getLabel($tag, $record), $value) . |
|
1815 | + '</' . $element . '>'; |
|
1816 | + } |
|
1817 | 1817 | |
1818 | - /** |
|
1819 | - * Get a list of facts, for use in the "fact picker" edit control |
|
1820 | - * |
|
1821 | - * @return string[] |
|
1822 | - */ |
|
1823 | - public static function getPicklistFacts($fact_type) { |
|
1824 | - switch ($fact_type) { |
|
1825 | - case 'INDI': |
|
1826 | - $tags = array( |
|
1827 | - // Facts, attributes for individuals (no links to FAMs) |
|
1828 | - 'RESN', 'NAME', 'SEX', 'BIRT', 'CHR', 'DEAT', 'BURI', 'CREM', |
|
1829 | - 'ADOP', 'BAPM', 'BARM', 'BASM', 'BLES', 'CHRA', 'CONF', 'FCOM', 'ORDN', |
|
1830 | - 'NATU', 'EMIG', 'IMMI', 'CENS', 'PROB', 'WILL', 'GRAD', 'RETI', 'EVEN', |
|
1831 | - 'CAST', 'DSCR', 'EDUC', 'IDNO', 'NATI', 'NCHI', 'NMR', |
|
1832 | - 'OCCU', 'PROP', 'RELI', 'RESI', 'SSN', 'TITL', 'FACT', |
|
1833 | - 'BAPL', 'CONL', 'ENDL', 'SLGC', |
|
1834 | - 'SUBM', 'ASSO', 'ALIA', 'ANCI', 'DESI', 'RFN', 'AFN', |
|
1835 | - 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', |
|
1836 | - // non standard tags |
|
1837 | - '_BRTM', '_DEG', '_DNA', '_EYEC', '_FNRL', '_HAIR', '_HEIG', '_HNM', |
|
1838 | - '_HOL', '_INTE', '_MDCL', '_MEDC', '_MILI', '_MILT', '_NAME', '_NAMS', |
|
1839 | - '_NLIV', '_NMAR', '_PRMN', '_TODO', '_UID', '_WEIG', '_YART', |
|
1840 | - ); |
|
1841 | - break; |
|
1842 | - case 'FAM': |
|
1843 | - $tags = array( |
|
1844 | - // Facts for families, left out HUSB, WIFE & CHIL links |
|
1845 | - 'RESN', 'ANUL', 'CENS', 'DIV', 'DIVF', 'ENGA', 'MARB', 'MARC', |
|
1846 | - 'MARR', 'MARL', 'MARS', 'RESI', 'EVEN', 'NCHI', 'SUBM', 'SLGS', |
|
1847 | - 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', |
|
1848 | - // non standard tags |
|
1849 | - '_NMR', 'MARR_CIVIL', 'MARR_RELIGIOUS', 'MARR_PARTNERS', 'MARR_UNKNOWN', |
|
1850 | - '_COML', '_MBON', '_MARI', '_SEPR', '_TODO', |
|
1851 | - ); |
|
1852 | - break; |
|
1853 | - case 'SOUR': |
|
1854 | - $tags = array( |
|
1855 | - // Facts for sources |
|
1856 | - 'DATA', 'AUTH', 'TITL', 'ABBR', 'PUBL', 'TEXT', 'REPO', 'REFN', 'RIN', |
|
1857 | - 'CHAN', 'NOTE', 'SHARED_NOTE', 'OBJE', |
|
1858 | - 'RESN', |
|
1859 | - ); |
|
1860 | - break; |
|
1861 | - case 'REPO': |
|
1862 | - $tags = array( |
|
1863 | - // Facts for repositories |
|
1864 | - 'NAME', 'ADDR', 'PHON', 'EMAIL', 'FAX', 'WWW', |
|
1865 | - 'NOTE', 'SHARED_NOTE', 'REFN', 'RIN', 'CHAN', |
|
1866 | - 'RESN', |
|
1867 | - ); |
|
1868 | - break; |
|
1869 | - case 'PLAC': |
|
1870 | - $tags = array( |
|
1871 | - // Facts for places |
|
1872 | - 'FONE', 'ROMN', |
|
1873 | - // non standard tags |
|
1874 | - '_HEB', |
|
1875 | - ); |
|
1876 | - break; |
|
1877 | - case 'NAME': |
|
1878 | - $tags = array( |
|
1879 | - // Facts subordinate to NAME |
|
1880 | - 'NICK', 'FONE', 'ROMN', |
|
1881 | - // non standard tags |
|
1882 | - '_HEB', '_AKA', |
|
1883 | - ); |
|
1884 | - break; |
|
1885 | - default: |
|
1886 | - $tags = array(); |
|
1887 | - break; |
|
1888 | - } |
|
1818 | + /** |
|
1819 | + * Get a list of facts, for use in the "fact picker" edit control |
|
1820 | + * |
|
1821 | + * @return string[] |
|
1822 | + */ |
|
1823 | + public static function getPicklistFacts($fact_type) { |
|
1824 | + switch ($fact_type) { |
|
1825 | + case 'INDI': |
|
1826 | + $tags = array( |
|
1827 | + // Facts, attributes for individuals (no links to FAMs) |
|
1828 | + 'RESN', 'NAME', 'SEX', 'BIRT', 'CHR', 'DEAT', 'BURI', 'CREM', |
|
1829 | + 'ADOP', 'BAPM', 'BARM', 'BASM', 'BLES', 'CHRA', 'CONF', 'FCOM', 'ORDN', |
|
1830 | + 'NATU', 'EMIG', 'IMMI', 'CENS', 'PROB', 'WILL', 'GRAD', 'RETI', 'EVEN', |
|
1831 | + 'CAST', 'DSCR', 'EDUC', 'IDNO', 'NATI', 'NCHI', 'NMR', |
|
1832 | + 'OCCU', 'PROP', 'RELI', 'RESI', 'SSN', 'TITL', 'FACT', |
|
1833 | + 'BAPL', 'CONL', 'ENDL', 'SLGC', |
|
1834 | + 'SUBM', 'ASSO', 'ALIA', 'ANCI', 'DESI', 'RFN', 'AFN', |
|
1835 | + 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', |
|
1836 | + // non standard tags |
|
1837 | + '_BRTM', '_DEG', '_DNA', '_EYEC', '_FNRL', '_HAIR', '_HEIG', '_HNM', |
|
1838 | + '_HOL', '_INTE', '_MDCL', '_MEDC', '_MILI', '_MILT', '_NAME', '_NAMS', |
|
1839 | + '_NLIV', '_NMAR', '_PRMN', '_TODO', '_UID', '_WEIG', '_YART', |
|
1840 | + ); |
|
1841 | + break; |
|
1842 | + case 'FAM': |
|
1843 | + $tags = array( |
|
1844 | + // Facts for families, left out HUSB, WIFE & CHIL links |
|
1845 | + 'RESN', 'ANUL', 'CENS', 'DIV', 'DIVF', 'ENGA', 'MARB', 'MARC', |
|
1846 | + 'MARR', 'MARL', 'MARS', 'RESI', 'EVEN', 'NCHI', 'SUBM', 'SLGS', |
|
1847 | + 'REFN', 'RIN', 'CHAN', 'NOTE', 'SHARED_NOTE', 'SOUR', 'OBJE', |
|
1848 | + // non standard tags |
|
1849 | + '_NMR', 'MARR_CIVIL', 'MARR_RELIGIOUS', 'MARR_PARTNERS', 'MARR_UNKNOWN', |
|
1850 | + '_COML', '_MBON', '_MARI', '_SEPR', '_TODO', |
|
1851 | + ); |
|
1852 | + break; |
|
1853 | + case 'SOUR': |
|
1854 | + $tags = array( |
|
1855 | + // Facts for sources |
|
1856 | + 'DATA', 'AUTH', 'TITL', 'ABBR', 'PUBL', 'TEXT', 'REPO', 'REFN', 'RIN', |
|
1857 | + 'CHAN', 'NOTE', 'SHARED_NOTE', 'OBJE', |
|
1858 | + 'RESN', |
|
1859 | + ); |
|
1860 | + break; |
|
1861 | + case 'REPO': |
|
1862 | + $tags = array( |
|
1863 | + // Facts for repositories |
|
1864 | + 'NAME', 'ADDR', 'PHON', 'EMAIL', 'FAX', 'WWW', |
|
1865 | + 'NOTE', 'SHARED_NOTE', 'REFN', 'RIN', 'CHAN', |
|
1866 | + 'RESN', |
|
1867 | + ); |
|
1868 | + break; |
|
1869 | + case 'PLAC': |
|
1870 | + $tags = array( |
|
1871 | + // Facts for places |
|
1872 | + 'FONE', 'ROMN', |
|
1873 | + // non standard tags |
|
1874 | + '_HEB', |
|
1875 | + ); |
|
1876 | + break; |
|
1877 | + case 'NAME': |
|
1878 | + $tags = array( |
|
1879 | + // Facts subordinate to NAME |
|
1880 | + 'NICK', 'FONE', 'ROMN', |
|
1881 | + // non standard tags |
|
1882 | + '_HEB', '_AKA', |
|
1883 | + ); |
|
1884 | + break; |
|
1885 | + default: |
|
1886 | + $tags = array(); |
|
1887 | + break; |
|
1888 | + } |
|
1889 | 1889 | |
1890 | - $facts = array(); |
|
1891 | - foreach ($tags as $tag) { |
|
1892 | - $facts[$tag] = self::getLabel($tag, null); |
|
1893 | - } |
|
1894 | - uasort($facts, '\Fisharebest\Webtrees\I18N::strcasecmp'); |
|
1890 | + $facts = array(); |
|
1891 | + foreach ($tags as $tag) { |
|
1892 | + $facts[$tag] = self::getLabel($tag, null); |
|
1893 | + } |
|
1894 | + uasort($facts, '\Fisharebest\Webtrees\I18N::strcasecmp'); |
|
1895 | 1895 | |
1896 | - return $facts; |
|
1897 | - } |
|
1896 | + return $facts; |
|
1897 | + } |
|
1898 | 1898 | |
1899 | - /** |
|
1900 | - * Translate the value for 1 FILE/2 FORM/3 TYPE |
|
1901 | - * |
|
1902 | - * @param string $type |
|
1903 | - * |
|
1904 | - * @return string |
|
1905 | - */ |
|
1906 | - public static function getFileFormTypeValue($type) { |
|
1907 | - switch (strtolower($type)) { |
|
1908 | - case 'audio': |
|
1909 | - return /* I18N: Type of media object */ I18N::translate('Audio'); |
|
1910 | - case 'book': |
|
1911 | - return /* I18N: Type of media object */ I18N::translate('Book'); |
|
1912 | - case 'card': |
|
1913 | - return /* I18N: Type of media object */ I18N::translate('Card'); |
|
1914 | - case 'certificate': |
|
1915 | - return /* I18N: Type of media object */ I18N::translate('Certificate'); |
|
1916 | - case 'coat': |
|
1917 | - return /* I18N: Type of media object */ I18N::translate('Coat of arms'); |
|
1918 | - case 'document': |
|
1919 | - return /* I18N: Type of media object */ I18N::translate('Document'); |
|
1920 | - case 'electronic': |
|
1921 | - return /* I18N: Type of media object */ I18N::translate('Electronic'); |
|
1922 | - case 'fiche': |
|
1923 | - return /* I18N: Type of media object */ I18N::translate('Microfiche'); |
|
1924 | - case 'film': |
|
1925 | - return /* I18N: Type of media object */ I18N::translate('Microfilm'); |
|
1926 | - case 'magazine': |
|
1927 | - return /* I18N: Type of media object */ I18N::translate('Magazine'); |
|
1928 | - case 'manuscript': |
|
1929 | - return /* I18N: Type of media object */ I18N::translate('Manuscript'); |
|
1930 | - case 'map': |
|
1931 | - return /* I18N: Type of media object */ I18N::translate('Map'); |
|
1932 | - case 'newspaper': |
|
1933 | - return /* I18N: Type of media object */ I18N::translate('Newspaper'); |
|
1934 | - case 'photo': |
|
1935 | - return /* I18N: Type of media object */ I18N::translate('Photo'); |
|
1936 | - case 'tombstone': |
|
1937 | - return /* I18N: Type of media object */ I18N::translate('Tombstone'); |
|
1938 | - case 'video': |
|
1939 | - return /* I18N: Type of media object */ I18N::translate('Video'); |
|
1940 | - case 'painting': |
|
1941 | - return /* I18N: Type of media object */ I18N::translate('Painting'); |
|
1942 | - default: |
|
1943 | - return /* I18N: Type of media object */ I18N::translate('Other'); |
|
1944 | - } |
|
1945 | - } |
|
1899 | + /** |
|
1900 | + * Translate the value for 1 FILE/2 FORM/3 TYPE |
|
1901 | + * |
|
1902 | + * @param string $type |
|
1903 | + * |
|
1904 | + * @return string |
|
1905 | + */ |
|
1906 | + public static function getFileFormTypeValue($type) { |
|
1907 | + switch (strtolower($type)) { |
|
1908 | + case 'audio': |
|
1909 | + return /* I18N: Type of media object */ I18N::translate('Audio'); |
|
1910 | + case 'book': |
|
1911 | + return /* I18N: Type of media object */ I18N::translate('Book'); |
|
1912 | + case 'card': |
|
1913 | + return /* I18N: Type of media object */ I18N::translate('Card'); |
|
1914 | + case 'certificate': |
|
1915 | + return /* I18N: Type of media object */ I18N::translate('Certificate'); |
|
1916 | + case 'coat': |
|
1917 | + return /* I18N: Type of media object */ I18N::translate('Coat of arms'); |
|
1918 | + case 'document': |
|
1919 | + return /* I18N: Type of media object */ I18N::translate('Document'); |
|
1920 | + case 'electronic': |
|
1921 | + return /* I18N: Type of media object */ I18N::translate('Electronic'); |
|
1922 | + case 'fiche': |
|
1923 | + return /* I18N: Type of media object */ I18N::translate('Microfiche'); |
|
1924 | + case 'film': |
|
1925 | + return /* I18N: Type of media object */ I18N::translate('Microfilm'); |
|
1926 | + case 'magazine': |
|
1927 | + return /* I18N: Type of media object */ I18N::translate('Magazine'); |
|
1928 | + case 'manuscript': |
|
1929 | + return /* I18N: Type of media object */ I18N::translate('Manuscript'); |
|
1930 | + case 'map': |
|
1931 | + return /* I18N: Type of media object */ I18N::translate('Map'); |
|
1932 | + case 'newspaper': |
|
1933 | + return /* I18N: Type of media object */ I18N::translate('Newspaper'); |
|
1934 | + case 'photo': |
|
1935 | + return /* I18N: Type of media object */ I18N::translate('Photo'); |
|
1936 | + case 'tombstone': |
|
1937 | + return /* I18N: Type of media object */ I18N::translate('Tombstone'); |
|
1938 | + case 'video': |
|
1939 | + return /* I18N: Type of media object */ I18N::translate('Video'); |
|
1940 | + case 'painting': |
|
1941 | + return /* I18N: Type of media object */ I18N::translate('Painting'); |
|
1942 | + default: |
|
1943 | + return /* I18N: Type of media object */ I18N::translate('Other'); |
|
1944 | + } |
|
1945 | + } |
|
1946 | 1946 | |
1947 | - /** |
|
1948 | - * A list of all possible values for 1 FILE/2 FORM/3 TYPE |
|
1949 | - * |
|
1950 | - * @return string[] |
|
1951 | - */ |
|
1952 | - public static function getFileFormTypes() { |
|
1953 | - $values = array(); |
|
1954 | - foreach (self::$OBJE_FILE_FORM_TYPE as $type) { |
|
1955 | - $values[$type] = self::getFileFormTypeValue($type); |
|
1956 | - } |
|
1957 | - uasort($values, '\Fisharebest\Webtrees\I18N::strcasecmp'); |
|
1947 | + /** |
|
1948 | + * A list of all possible values for 1 FILE/2 FORM/3 TYPE |
|
1949 | + * |
|
1950 | + * @return string[] |
|
1951 | + */ |
|
1952 | + public static function getFileFormTypes() { |
|
1953 | + $values = array(); |
|
1954 | + foreach (self::$OBJE_FILE_FORM_TYPE as $type) { |
|
1955 | + $values[$type] = self::getFileFormTypeValue($type); |
|
1956 | + } |
|
1957 | + uasort($values, '\Fisharebest\Webtrees\I18N::strcasecmp'); |
|
1958 | 1958 | |
1959 | - return $values; |
|
1960 | - } |
|
1959 | + return $values; |
|
1960 | + } |
|
1961 | 1961 | |
1962 | - /** |
|
1963 | - * Generate a value for a new _UID field. |
|
1964 | - * Instead of RFC4122-compatible UUIDs, generate ones that |
|
1965 | - * are compatible with PAF, Legacy, RootsMagic, etc. |
|
1966 | - * In these, the string is upper-cased, dashes are removed, |
|
1967 | - * and a two-byte checksum is added. |
|
1968 | - * |
|
1969 | - * @return string |
|
1970 | - */ |
|
1971 | - public static function createUid() { |
|
1972 | - $uid = str_replace('-', '', Uuid::uuid4()); |
|
1962 | + /** |
|
1963 | + * Generate a value for a new _UID field. |
|
1964 | + * Instead of RFC4122-compatible UUIDs, generate ones that |
|
1965 | + * are compatible with PAF, Legacy, RootsMagic, etc. |
|
1966 | + * In these, the string is upper-cased, dashes are removed, |
|
1967 | + * and a two-byte checksum is added. |
|
1968 | + * |
|
1969 | + * @return string |
|
1970 | + */ |
|
1971 | + public static function createUid() { |
|
1972 | + $uid = str_replace('-', '', Uuid::uuid4()); |
|
1973 | 1973 | |
1974 | - $checksum_a = 0; // a sum of the bytes |
|
1975 | - $checksum_b = 0; // a sum of the incremental values of $checksum_a |
|
1974 | + $checksum_a = 0; // a sum of the bytes |
|
1975 | + $checksum_b = 0; // a sum of the incremental values of $checksum_a |
|
1976 | 1976 | |
1977 | - // Compute checksums |
|
1978 | - for ($i = 0; $i < 32; $i += 2) { |
|
1979 | - $checksum_a += hexdec(substr($uid, $i, 2)); |
|
1980 | - $checksum_b += $checksum_a & 0xff; |
|
1981 | - } |
|
1977 | + // Compute checksums |
|
1978 | + for ($i = 0; $i < 32; $i += 2) { |
|
1979 | + $checksum_a += hexdec(substr($uid, $i, 2)); |
|
1980 | + $checksum_b += $checksum_a & 0xff; |
|
1981 | + } |
|
1982 | 1982 | |
1983 | - return strtoupper($uid . substr(dechex($checksum_a), -2) . substr(dechex($checksum_b), -2)); |
|
1984 | - } |
|
1983 | + return strtoupper($uid . substr(dechex($checksum_a), -2) . substr(dechex($checksum_b), -2)); |
|
1984 | + } |
|
1985 | 1985 | } |
@@ -31,95 +31,95 @@ discard block |
||
31 | 31 | * Class IndividualFactsTabModule |
32 | 32 | */ |
33 | 33 | class IndividualFactsTabModule extends AbstractModule implements ModuleTabInterface { |
34 | - /** {@inheritdoc} */ |
|
35 | - public function getTitle() { |
|
36 | - return /* I18N: Name of a module/tab on the individual page. */ I18N::translate('Facts and events'); |
|
37 | - } |
|
38 | - |
|
39 | - /** {@inheritdoc} */ |
|
40 | - public function getDescription() { |
|
41 | - return /* I18N: Description of the “Facts and events” module */ I18N::translate('A tab showing the facts and events of an individual.'); |
|
42 | - } |
|
43 | - |
|
44 | - /** {@inheritdoc} */ |
|
45 | - public function defaultTabOrder() { |
|
46 | - return 10; |
|
47 | - } |
|
48 | - |
|
49 | - /** {@inheritdoc} */ |
|
50 | - public function isGrayedOut() { |
|
51 | - return false; |
|
52 | - } |
|
53 | - |
|
54 | - /** {@inheritdoc} */ |
|
55 | - public function getTabContent() { |
|
56 | - global $controller; |
|
57 | - $EXPAND_HISTO_EVENTS = false; |
|
58 | - |
|
59 | - $indifacts = array(); |
|
60 | - // The individual’s own facts |
|
61 | - foreach ($controller->record->getFacts() as $fact) { |
|
62 | - switch ($fact->getTag()) { |
|
63 | - case 'SEX': |
|
64 | - case 'NAME': |
|
65 | - case 'SOUR': |
|
66 | - case 'OBJE': |
|
67 | - case 'NOTE': |
|
68 | - case 'FAMC': |
|
69 | - case 'FAMS': |
|
70 | - break; |
|
71 | - default: |
|
72 | - if (!array_key_exists('extra_info', Module::getActiveSidebars($controller->record->getTree())) || !ExtraInformationModule::showFact($fact)) { |
|
73 | - $indifacts[] = $fact; |
|
74 | - } |
|
75 | - break; |
|
76 | - } |
|
77 | - } |
|
78 | - |
|
79 | - // Add spouse-family facts |
|
80 | - foreach ($controller->record->getSpouseFamilies() as $family) { |
|
81 | - foreach ($family->getFacts() as $fact) { |
|
82 | - switch ($fact->getTag()) { |
|
83 | - case 'SOUR': |
|
84 | - case 'NOTE': |
|
85 | - case 'OBJE': |
|
86 | - case 'CHAN': |
|
87 | - case '_UID': |
|
88 | - case 'RIN': |
|
89 | - case 'HUSB': |
|
90 | - case 'WIFE': |
|
91 | - case 'CHIL': |
|
92 | - break; |
|
93 | - default: |
|
94 | - $indifacts[] = $fact; |
|
95 | - break; |
|
96 | - } |
|
97 | - } |
|
98 | - $spouse = $family->getSpouse($controller->record); |
|
99 | - if ($spouse) { |
|
100 | - foreach (self::spouseFacts($controller->record, $spouse) as $fact) { |
|
101 | - $indifacts[] = $fact; |
|
102 | - } |
|
103 | - } |
|
104 | - foreach (self::childFacts($controller->record, $family, '_CHIL', '') as $fact) { |
|
105 | - $indifacts[] = $fact; |
|
106 | - } |
|
107 | - } |
|
108 | - |
|
109 | - foreach (self::parentFacts($controller->record, 1) as $fact) { |
|
110 | - $indifacts[] = $fact; |
|
111 | - } |
|
112 | - foreach (self::historicalFacts($controller->record) as $fact) { |
|
113 | - $indifacts[] = $fact; |
|
114 | - } |
|
115 | - foreach (self::associateFacts($controller->record) as $fact) { |
|
116 | - $indifacts[] = $fact; |
|
117 | - } |
|
118 | - |
|
119 | - Functions::sortFacts($indifacts); |
|
120 | - |
|
121 | - ob_start(); |
|
122 | - ?> |
|
34 | + /** {@inheritdoc} */ |
|
35 | + public function getTitle() { |
|
36 | + return /* I18N: Name of a module/tab on the individual page. */ I18N::translate('Facts and events'); |
|
37 | + } |
|
38 | + |
|
39 | + /** {@inheritdoc} */ |
|
40 | + public function getDescription() { |
|
41 | + return /* I18N: Description of the “Facts and events” module */ I18N::translate('A tab showing the facts and events of an individual.'); |
|
42 | + } |
|
43 | + |
|
44 | + /** {@inheritdoc} */ |
|
45 | + public function defaultTabOrder() { |
|
46 | + return 10; |
|
47 | + } |
|
48 | + |
|
49 | + /** {@inheritdoc} */ |
|
50 | + public function isGrayedOut() { |
|
51 | + return false; |
|
52 | + } |
|
53 | + |
|
54 | + /** {@inheritdoc} */ |
|
55 | + public function getTabContent() { |
|
56 | + global $controller; |
|
57 | + $EXPAND_HISTO_EVENTS = false; |
|
58 | + |
|
59 | + $indifacts = array(); |
|
60 | + // The individual’s own facts |
|
61 | + foreach ($controller->record->getFacts() as $fact) { |
|
62 | + switch ($fact->getTag()) { |
|
63 | + case 'SEX': |
|
64 | + case 'NAME': |
|
65 | + case 'SOUR': |
|
66 | + case 'OBJE': |
|
67 | + case 'NOTE': |
|
68 | + case 'FAMC': |
|
69 | + case 'FAMS': |
|
70 | + break; |
|
71 | + default: |
|
72 | + if (!array_key_exists('extra_info', Module::getActiveSidebars($controller->record->getTree())) || !ExtraInformationModule::showFact($fact)) { |
|
73 | + $indifacts[] = $fact; |
|
74 | + } |
|
75 | + break; |
|
76 | + } |
|
77 | + } |
|
78 | + |
|
79 | + // Add spouse-family facts |
|
80 | + foreach ($controller->record->getSpouseFamilies() as $family) { |
|
81 | + foreach ($family->getFacts() as $fact) { |
|
82 | + switch ($fact->getTag()) { |
|
83 | + case 'SOUR': |
|
84 | + case 'NOTE': |
|
85 | + case 'OBJE': |
|
86 | + case 'CHAN': |
|
87 | + case '_UID': |
|
88 | + case 'RIN': |
|
89 | + case 'HUSB': |
|
90 | + case 'WIFE': |
|
91 | + case 'CHIL': |
|
92 | + break; |
|
93 | + default: |
|
94 | + $indifacts[] = $fact; |
|
95 | + break; |
|
96 | + } |
|
97 | + } |
|
98 | + $spouse = $family->getSpouse($controller->record); |
|
99 | + if ($spouse) { |
|
100 | + foreach (self::spouseFacts($controller->record, $spouse) as $fact) { |
|
101 | + $indifacts[] = $fact; |
|
102 | + } |
|
103 | + } |
|
104 | + foreach (self::childFacts($controller->record, $family, '_CHIL', '') as $fact) { |
|
105 | + $indifacts[] = $fact; |
|
106 | + } |
|
107 | + } |
|
108 | + |
|
109 | + foreach (self::parentFacts($controller->record, 1) as $fact) { |
|
110 | + $indifacts[] = $fact; |
|
111 | + } |
|
112 | + foreach (self::historicalFacts($controller->record) as $fact) { |
|
113 | + $indifacts[] = $fact; |
|
114 | + } |
|
115 | + foreach (self::associateFacts($controller->record) as $fact) { |
|
116 | + $indifacts[] = $fact; |
|
117 | + } |
|
118 | + |
|
119 | + Functions::sortFacts($indifacts); |
|
120 | + |
|
121 | + ob_start(); |
|
122 | + ?> |
|
123 | 123 | <table class="facts_table"> |
124 | 124 | <colgroup> |
125 | 125 | <col class="width20"> |
@@ -144,20 +144,20 @@ discard block |
||
144 | 144 | </tr> |
145 | 145 | <?php |
146 | 146 | |
147 | - if (!$indifacts) { |
|
148 | - echo '<tr><td colspan="2" class="facts_value">', I18N::translate('There are no facts for this individual.'), '</td></tr>'; |
|
149 | - } |
|
147 | + if (!$indifacts) { |
|
148 | + echo '<tr><td colspan="2" class="facts_value">', I18N::translate('There are no facts for this individual.'), '</td></tr>'; |
|
149 | + } |
|
150 | 150 | |
151 | - foreach ($indifacts as $fact) { |
|
152 | - FunctionsPrintFacts::printFact($fact, $controller->record); |
|
153 | - } |
|
151 | + foreach ($indifacts as $fact) { |
|
152 | + FunctionsPrintFacts::printFact($fact, $controller->record); |
|
153 | + } |
|
154 | 154 | |
155 | - //-- new fact link |
|
156 | - if ($controller->record->canEdit()) { |
|
157 | - FunctionsPrint::printAddNewFact($controller->record->getXref(), $indifacts, 'INDI'); |
|
158 | - } |
|
155 | + //-- new fact link |
|
156 | + if ($controller->record->canEdit()) { |
|
157 | + FunctionsPrint::printAddNewFact($controller->record->getXref(), $indifacts, 'INDI'); |
|
158 | + } |
|
159 | 159 | |
160 | - ?> |
|
160 | + ?> |
|
161 | 161 | </tbody> |
162 | 162 | </table> |
163 | 163 | <script> |
@@ -166,372 +166,372 @@ discard block |
||
166 | 166 | </script> |
167 | 167 | <?php |
168 | 168 | |
169 | - return '<div id="' . $this->getName() . '_content">' . ob_get_clean() . '</div>'; |
|
170 | - } |
|
171 | - |
|
172 | - /** {@inheritdoc} */ |
|
173 | - public function hasTabContent() { |
|
174 | - return true; |
|
175 | - } |
|
176 | - |
|
177 | - /** {@inheritdoc} */ |
|
178 | - public function canLoadAjax() { |
|
179 | - return !Auth::isSearchEngine(); // Search engines cannot use AJAX |
|
180 | - } |
|
181 | - |
|
182 | - /** {@inheritdoc} */ |
|
183 | - public function getPreLoadContent() { |
|
184 | - return ''; |
|
185 | - } |
|
186 | - |
|
187 | - /** |
|
188 | - * Spouse facts that are shown on an individual’s page. |
|
189 | - * |
|
190 | - * @param Individual $individual Show events that occured during the lifetime of this individual |
|
191 | - * @param Individual $spouse Show events of this individual |
|
192 | - * |
|
193 | - * @return Fact[] |
|
194 | - */ |
|
195 | - private static function spouseFacts(Individual $individual, Individual $spouse) { |
|
196 | - $SHOW_RELATIVES_EVENTS = $individual->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
197 | - |
|
198 | - $facts = array(); |
|
199 | - if (strstr($SHOW_RELATIVES_EVENTS, '_DEAT_SPOU')) { |
|
200 | - // Only include events between birth and death |
|
201 | - $birt_date = $individual->getEstimatedBirthDate(); |
|
202 | - $deat_date = $individual->getEstimatedDeathDate(); |
|
203 | - |
|
204 | - foreach ($spouse->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
205 | - |
|
206 | - $fact_date = $fact->getDate(); |
|
207 | - if ($fact_date->isOK() && Date::compare($birt_date, $fact_date) <= 0 && Date::compare($fact_date, $deat_date) <= 0) { |
|
208 | - // Convert the event to a close relatives event. |
|
209 | - $rela_fact = clone($fact); |
|
210 | - $rela_fact->setTag('_' . $fact->getTag() . '_SPOU'); |
|
211 | - $facts[] = $rela_fact; |
|
212 | - } |
|
213 | - } |
|
214 | - } |
|
215 | - |
|
216 | - return $facts; |
|
217 | - } |
|
218 | - |
|
219 | - /** |
|
220 | - * Get the events of children and grandchildren. |
|
221 | - * |
|
222 | - * @param Individual $person |
|
223 | - * @param Family $family |
|
224 | - * @param string $option |
|
225 | - * @param string $relation |
|
226 | - * |
|
227 | - * @return Fact[] |
|
228 | - */ |
|
229 | - private static function childFacts(Individual $person, Family $family, $option, $relation) { |
|
230 | - global $controller; |
|
231 | - |
|
232 | - $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
233 | - |
|
234 | - $facts = array(); |
|
235 | - |
|
236 | - // Only include events between birth and death |
|
237 | - $birt_date = $controller->record->getEstimatedBirthDate(); |
|
238 | - $deat_date = $controller->record->getEstimatedDeathDate(); |
|
239 | - |
|
240 | - // Deal with recursion. |
|
241 | - switch ($option) { |
|
242 | - case '_CHIL': |
|
243 | - // Add grandchildren |
|
244 | - foreach ($family->getChildren() as $child) { |
|
245 | - foreach ($child->getSpouseFamilies() as $cfamily) { |
|
246 | - switch ($child->getSex()) { |
|
247 | - case 'M': |
|
248 | - foreach (self::childFacts($person, $cfamily, '_GCHI', 'son') as $fact) { |
|
249 | - $facts[] = $fact; |
|
250 | - } |
|
251 | - break; |
|
252 | - case 'F': |
|
253 | - foreach (self::childFacts($person, $cfamily, '_GCHI', 'dau') as $fact) { |
|
254 | - $facts[] = $fact; |
|
255 | - } |
|
256 | - break; |
|
257 | - default: |
|
258 | - foreach (self::childFacts($person, $cfamily, '_GCHI', 'chi') as $fact) { |
|
259 | - $facts[] = $fact; |
|
260 | - } |
|
261 | - break; |
|
262 | - } |
|
263 | - } |
|
264 | - } |
|
265 | - break; |
|
266 | - } |
|
267 | - |
|
268 | - // For each child in the family |
|
269 | - foreach ($family->getChildren() as $child) { |
|
270 | - if ($child->getXref() == $person->getXref()) { |
|
271 | - // We are not our own sibling! |
|
272 | - continue; |
|
273 | - } |
|
274 | - // add child’s birth |
|
275 | - if (strpos($SHOW_RELATIVES_EVENTS, '_BIRT' . str_replace('_HSIB', '_SIBL', $option)) !== false) { |
|
276 | - foreach ($child->getFacts(WT_EVENTS_BIRT) as $fact) { |
|
277 | - $sgdate = $fact->getDate(); |
|
278 | - // Always show _BIRT_CHIL, even if the dates are not known |
|
279 | - if ($option == '_CHIL' || $sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
280 | - if ($option == '_GCHI' && $relation == 'dau') { |
|
281 | - // Convert the event to a close relatives event. |
|
282 | - $rela_fact = clone($fact); |
|
283 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
284 | - $facts[] = $rela_fact; |
|
285 | - } elseif ($option == '_GCHI' && $relation == 'son') { |
|
286 | - // Convert the event to a close relatives event. |
|
287 | - $rela_fact = clone($fact); |
|
288 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
289 | - $facts[] = $rela_fact; |
|
290 | - } else { |
|
291 | - // Convert the event to a close relatives event. |
|
292 | - $rela_fact = clone($fact); |
|
293 | - $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
294 | - $facts[] = $rela_fact; |
|
295 | - } |
|
296 | - } |
|
297 | - } |
|
298 | - } |
|
299 | - // add child’s death |
|
300 | - if (strpos($SHOW_RELATIVES_EVENTS, '_DEAT' . str_replace('_HSIB', '_SIBL', $option)) !== false) { |
|
301 | - foreach ($child->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
302 | - $sgdate = $fact->getDate(); |
|
303 | - if ($sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
304 | - if ($option == '_GCHI' && $relation == 'dau') { |
|
305 | - // Convert the event to a close relatives event. |
|
306 | - $rela_fact = clone($fact); |
|
307 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
308 | - $facts[] = $rela_fact; |
|
309 | - } elseif ($option == '_GCHI' && $relation == 'son') { |
|
310 | - // Convert the event to a close relatives event. |
|
311 | - $rela_fact = clone($fact); |
|
312 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
313 | - $facts[] = $rela_fact; |
|
314 | - } else { |
|
315 | - // Convert the event to a close relatives event. |
|
316 | - $rela_fact = clone($fact); |
|
317 | - $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
318 | - $facts[] = $rela_fact; |
|
319 | - } |
|
320 | - } |
|
321 | - } |
|
322 | - } |
|
323 | - // add child’s marriage |
|
324 | - if (strstr($SHOW_RELATIVES_EVENTS, '_MARR' . str_replace('_HSIB', '_SIBL', $option))) { |
|
325 | - foreach ($child->getSpouseFamilies() as $sfamily) { |
|
326 | - foreach ($sfamily->getFacts('MARR') as $fact) { |
|
327 | - $sgdate = $fact->getDate(); |
|
328 | - if ($sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
329 | - if ($option == '_GCHI' && $relation == 'dau') { |
|
330 | - // Convert the event to a close relatives event. |
|
331 | - $rela_fact = clone($fact); |
|
332 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
333 | - $facts[] = $rela_fact; |
|
334 | - } elseif ($option == '_GCHI' && $relation == 'son') { |
|
335 | - // Convert the event to a close relatives event. |
|
336 | - $rela_fact = clone($fact); |
|
337 | - $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
338 | - $facts[] = $rela_fact; |
|
339 | - } else { |
|
340 | - // Convert the event to a close relatives event. |
|
341 | - $rela_fact = clone($fact); |
|
342 | - $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
343 | - $facts[] = $rela_fact; |
|
344 | - } |
|
345 | - } |
|
346 | - } |
|
347 | - } |
|
348 | - } |
|
349 | - } |
|
350 | - |
|
351 | - return $facts; |
|
352 | - } |
|
353 | - |
|
354 | - /** |
|
355 | - * Get the events of parents and grandparents. |
|
356 | - * |
|
357 | - * @param Individual $person |
|
358 | - * @param int $sosa |
|
359 | - * |
|
360 | - * @return Fact[] |
|
361 | - */ |
|
362 | - private static function parentFacts(Individual $person, $sosa) { |
|
363 | - global $controller; |
|
364 | - |
|
365 | - $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
366 | - |
|
367 | - $facts = array(); |
|
368 | - |
|
369 | - // Only include events between birth and death |
|
370 | - $birt_date = $controller->record->getEstimatedBirthDate(); |
|
371 | - $deat_date = $controller->record->getEstimatedDeathDate(); |
|
372 | - |
|
373 | - if ($sosa == 1) { |
|
374 | - foreach ($person->getChildFamilies() as $family) { |
|
375 | - // Add siblings |
|
376 | - foreach (self::childFacts($person, $family, '_SIBL', '') as $fact) { |
|
377 | - $facts[] = $fact; |
|
378 | - } |
|
379 | - foreach ($family->getSpouses() as $spouse) { |
|
380 | - foreach ($spouse->getSpouseFamilies() as $sfamily) { |
|
381 | - if ($family !== $sfamily) { |
|
382 | - // Add half-siblings |
|
383 | - foreach (self::childFacts($person, $sfamily, '_HSIB', '') as $fact) { |
|
384 | - $facts[] = $fact; |
|
385 | - } |
|
386 | - } |
|
387 | - } |
|
388 | - // Add grandparents |
|
389 | - foreach (self::parentFacts($spouse, $spouse->getSex() == 'F' ? 3 : 2) as $fact) { |
|
390 | - $facts[] = $fact; |
|
391 | - } |
|
392 | - } |
|
393 | - } |
|
394 | - |
|
395 | - if (strstr($SHOW_RELATIVES_EVENTS, '_MARR_PARE')) { |
|
396 | - // add father/mother marriages |
|
397 | - foreach ($person->getChildFamilies() as $sfamily) { |
|
398 | - foreach ($sfamily->getFacts('MARR') as $fact) { |
|
399 | - if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
400 | - // marriage of parents (to each other) |
|
401 | - $rela_fact = clone($fact); |
|
402 | - $rela_fact->setTag('_' . $fact->getTag() . '_FAMC'); |
|
403 | - $facts[] = $rela_fact; |
|
404 | - } |
|
405 | - } |
|
406 | - } |
|
407 | - foreach ($person->getChildStepFamilies() as $sfamily) { |
|
408 | - foreach ($sfamily->getFacts('MARR') as $fact) { |
|
409 | - if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
410 | - // marriage of a parent (to another spouse) |
|
411 | - // Convert the event to a close relatives event |
|
412 | - $rela_fact = clone($fact); |
|
413 | - $rela_fact->setTag('_' . $fact->getTag() . '_PARE'); |
|
414 | - $facts[] = $rela_fact; |
|
415 | - } |
|
416 | - } |
|
417 | - } |
|
418 | - } |
|
419 | - } |
|
420 | - |
|
421 | - foreach ($person->getChildFamilies() as $family) { |
|
422 | - foreach ($family->getSpouses() as $parent) { |
|
423 | - if (strstr($SHOW_RELATIVES_EVENTS, '_DEAT' . ($sosa == 1 ? '_PARE' : '_GPAR'))) { |
|
424 | - foreach ($parent->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
425 | - if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
426 | - switch ($sosa) { |
|
427 | - case 1: |
|
428 | - // Convert the event to a close relatives event. |
|
429 | - $rela_fact = clone($fact); |
|
430 | - $rela_fact->setTag('_' . $fact->getTag() . '_PARE'); |
|
431 | - $facts[] = $rela_fact; |
|
432 | - break; |
|
433 | - case 2: |
|
434 | - // Convert the event to a close relatives event |
|
435 | - $rela_fact = clone($fact); |
|
436 | - $rela_fact->setTag('_' . $fact->getTag() . '_GPA1'); |
|
437 | - $facts[] = $rela_fact; |
|
438 | - break; |
|
439 | - case 3: |
|
440 | - // Convert the event to a close relatives event |
|
441 | - $rela_fact = clone($fact); |
|
442 | - $rela_fact->setTag('_' . $fact->getTag() . '_GPA2'); |
|
443 | - $facts[] = $rela_fact; |
|
444 | - break; |
|
445 | - } |
|
446 | - } |
|
447 | - } |
|
448 | - } |
|
449 | - } |
|
450 | - } |
|
451 | - |
|
452 | - return $facts; |
|
453 | - } |
|
454 | - |
|
455 | - /** |
|
456 | - * Get any historical events. |
|
457 | - * |
|
458 | - * @param Individual $person |
|
459 | - * |
|
460 | - * @return Fact[] |
|
461 | - */ |
|
462 | - private static function historicalFacts(Individual $person) { |
|
463 | - $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
464 | - |
|
465 | - $facts = array(); |
|
466 | - |
|
467 | - if ($SHOW_RELATIVES_EVENTS) { |
|
468 | - // Only include events between birth and death |
|
469 | - $birt_date = $person->getEstimatedBirthDate(); |
|
470 | - $deat_date = $person->getEstimatedDeathDate(); |
|
471 | - |
|
472 | - if (file_exists(Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php')) { |
|
473 | - $histo = array(); |
|
474 | - require Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php'; |
|
475 | - foreach ($histo as $hist) { |
|
476 | - // Earlier versions of the WIKI encouraged people to use HTML entities, |
|
477 | - // rather than UTF8 encoding. |
|
478 | - $hist = html_entity_decode($hist, ENT_QUOTES, 'UTF-8'); |
|
479 | - |
|
480 | - $fact = new Fact($hist, $person, 'histo'); |
|
481 | - $sdate = $fact->getDate(); |
|
482 | - if ($sdate->isOK() && Date::compare($birt_date, $sdate) <= 0 && Date::compare($sdate, $deat_date) <= 0) { |
|
483 | - $facts[] = $fact; |
|
484 | - } |
|
485 | - } |
|
486 | - } |
|
487 | - } |
|
488 | - |
|
489 | - return $facts; |
|
490 | - } |
|
491 | - |
|
492 | - /** |
|
493 | - * Get the events of associates. |
|
494 | - * |
|
495 | - * @param Individual $person |
|
496 | - * |
|
497 | - * @return Fact[] |
|
498 | - */ |
|
499 | - private static function associateFacts(Individual $person) { |
|
500 | - $facts = array(); |
|
501 | - |
|
502 | - $associates = array_merge( |
|
503 | - $person->linkedIndividuals('ASSO'), |
|
504 | - $person->linkedIndividuals('_ASSO'), |
|
505 | - $person->linkedFamilies('ASSO'), |
|
506 | - $person->linkedFamilies('_ASSO') |
|
507 | - ); |
|
508 | - foreach ($associates as $associate) { |
|
509 | - foreach ($associate->getFacts() as $fact) { |
|
510 | - $arec = $fact->getAttribute('_ASSO'); |
|
511 | - if (!$arec) { |
|
512 | - $arec = $fact->getAttribute('ASSO'); |
|
513 | - } |
|
514 | - if ($arec && trim($arec, '@') === $person->getXref()) { |
|
515 | - // Extract the important details from the fact |
|
516 | - $factrec = '1 ' . $fact->getTag(); |
|
517 | - if (preg_match('/\n2 DATE .*/', $fact->getGedcom(), $match)) { |
|
518 | - $factrec .= $match[0]; |
|
519 | - } |
|
520 | - if (preg_match('/\n2 PLAC .*/', $fact->getGedcom(), $match)) { |
|
521 | - $factrec .= $match[0]; |
|
522 | - } |
|
523 | - if ($associate instanceof Family) { |
|
524 | - foreach ($associate->getSpouses() as $spouse) { |
|
525 | - $factrec .= "\n2 _ASSO @" . $spouse->getXref() . '@'; |
|
526 | - } |
|
527 | - } else { |
|
528 | - $factrec .= "\n2 _ASSO @" . $associate->getXref() . '@'; |
|
529 | - } |
|
530 | - $facts[] = new Fact($factrec, $associate, 'asso'); |
|
531 | - } |
|
532 | - } |
|
533 | - } |
|
534 | - |
|
535 | - return $facts; |
|
536 | - } |
|
169 | + return '<div id="' . $this->getName() . '_content">' . ob_get_clean() . '</div>'; |
|
170 | + } |
|
171 | + |
|
172 | + /** {@inheritdoc} */ |
|
173 | + public function hasTabContent() { |
|
174 | + return true; |
|
175 | + } |
|
176 | + |
|
177 | + /** {@inheritdoc} */ |
|
178 | + public function canLoadAjax() { |
|
179 | + return !Auth::isSearchEngine(); // Search engines cannot use AJAX |
|
180 | + } |
|
181 | + |
|
182 | + /** {@inheritdoc} */ |
|
183 | + public function getPreLoadContent() { |
|
184 | + return ''; |
|
185 | + } |
|
186 | + |
|
187 | + /** |
|
188 | + * Spouse facts that are shown on an individual’s page. |
|
189 | + * |
|
190 | + * @param Individual $individual Show events that occured during the lifetime of this individual |
|
191 | + * @param Individual $spouse Show events of this individual |
|
192 | + * |
|
193 | + * @return Fact[] |
|
194 | + */ |
|
195 | + private static function spouseFacts(Individual $individual, Individual $spouse) { |
|
196 | + $SHOW_RELATIVES_EVENTS = $individual->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
197 | + |
|
198 | + $facts = array(); |
|
199 | + if (strstr($SHOW_RELATIVES_EVENTS, '_DEAT_SPOU')) { |
|
200 | + // Only include events between birth and death |
|
201 | + $birt_date = $individual->getEstimatedBirthDate(); |
|
202 | + $deat_date = $individual->getEstimatedDeathDate(); |
|
203 | + |
|
204 | + foreach ($spouse->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
205 | + |
|
206 | + $fact_date = $fact->getDate(); |
|
207 | + if ($fact_date->isOK() && Date::compare($birt_date, $fact_date) <= 0 && Date::compare($fact_date, $deat_date) <= 0) { |
|
208 | + // Convert the event to a close relatives event. |
|
209 | + $rela_fact = clone($fact); |
|
210 | + $rela_fact->setTag('_' . $fact->getTag() . '_SPOU'); |
|
211 | + $facts[] = $rela_fact; |
|
212 | + } |
|
213 | + } |
|
214 | + } |
|
215 | + |
|
216 | + return $facts; |
|
217 | + } |
|
218 | + |
|
219 | + /** |
|
220 | + * Get the events of children and grandchildren. |
|
221 | + * |
|
222 | + * @param Individual $person |
|
223 | + * @param Family $family |
|
224 | + * @param string $option |
|
225 | + * @param string $relation |
|
226 | + * |
|
227 | + * @return Fact[] |
|
228 | + */ |
|
229 | + private static function childFacts(Individual $person, Family $family, $option, $relation) { |
|
230 | + global $controller; |
|
231 | + |
|
232 | + $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
233 | + |
|
234 | + $facts = array(); |
|
235 | + |
|
236 | + // Only include events between birth and death |
|
237 | + $birt_date = $controller->record->getEstimatedBirthDate(); |
|
238 | + $deat_date = $controller->record->getEstimatedDeathDate(); |
|
239 | + |
|
240 | + // Deal with recursion. |
|
241 | + switch ($option) { |
|
242 | + case '_CHIL': |
|
243 | + // Add grandchildren |
|
244 | + foreach ($family->getChildren() as $child) { |
|
245 | + foreach ($child->getSpouseFamilies() as $cfamily) { |
|
246 | + switch ($child->getSex()) { |
|
247 | + case 'M': |
|
248 | + foreach (self::childFacts($person, $cfamily, '_GCHI', 'son') as $fact) { |
|
249 | + $facts[] = $fact; |
|
250 | + } |
|
251 | + break; |
|
252 | + case 'F': |
|
253 | + foreach (self::childFacts($person, $cfamily, '_GCHI', 'dau') as $fact) { |
|
254 | + $facts[] = $fact; |
|
255 | + } |
|
256 | + break; |
|
257 | + default: |
|
258 | + foreach (self::childFacts($person, $cfamily, '_GCHI', 'chi') as $fact) { |
|
259 | + $facts[] = $fact; |
|
260 | + } |
|
261 | + break; |
|
262 | + } |
|
263 | + } |
|
264 | + } |
|
265 | + break; |
|
266 | + } |
|
267 | + |
|
268 | + // For each child in the family |
|
269 | + foreach ($family->getChildren() as $child) { |
|
270 | + if ($child->getXref() == $person->getXref()) { |
|
271 | + // We are not our own sibling! |
|
272 | + continue; |
|
273 | + } |
|
274 | + // add child’s birth |
|
275 | + if (strpos($SHOW_RELATIVES_EVENTS, '_BIRT' . str_replace('_HSIB', '_SIBL', $option)) !== false) { |
|
276 | + foreach ($child->getFacts(WT_EVENTS_BIRT) as $fact) { |
|
277 | + $sgdate = $fact->getDate(); |
|
278 | + // Always show _BIRT_CHIL, even if the dates are not known |
|
279 | + if ($option == '_CHIL' || $sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
280 | + if ($option == '_GCHI' && $relation == 'dau') { |
|
281 | + // Convert the event to a close relatives event. |
|
282 | + $rela_fact = clone($fact); |
|
283 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
284 | + $facts[] = $rela_fact; |
|
285 | + } elseif ($option == '_GCHI' && $relation == 'son') { |
|
286 | + // Convert the event to a close relatives event. |
|
287 | + $rela_fact = clone($fact); |
|
288 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
289 | + $facts[] = $rela_fact; |
|
290 | + } else { |
|
291 | + // Convert the event to a close relatives event. |
|
292 | + $rela_fact = clone($fact); |
|
293 | + $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
294 | + $facts[] = $rela_fact; |
|
295 | + } |
|
296 | + } |
|
297 | + } |
|
298 | + } |
|
299 | + // add child’s death |
|
300 | + if (strpos($SHOW_RELATIVES_EVENTS, '_DEAT' . str_replace('_HSIB', '_SIBL', $option)) !== false) { |
|
301 | + foreach ($child->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
302 | + $sgdate = $fact->getDate(); |
|
303 | + if ($sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
304 | + if ($option == '_GCHI' && $relation == 'dau') { |
|
305 | + // Convert the event to a close relatives event. |
|
306 | + $rela_fact = clone($fact); |
|
307 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
308 | + $facts[] = $rela_fact; |
|
309 | + } elseif ($option == '_GCHI' && $relation == 'son') { |
|
310 | + // Convert the event to a close relatives event. |
|
311 | + $rela_fact = clone($fact); |
|
312 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
313 | + $facts[] = $rela_fact; |
|
314 | + } else { |
|
315 | + // Convert the event to a close relatives event. |
|
316 | + $rela_fact = clone($fact); |
|
317 | + $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
318 | + $facts[] = $rela_fact; |
|
319 | + } |
|
320 | + } |
|
321 | + } |
|
322 | + } |
|
323 | + // add child’s marriage |
|
324 | + if (strstr($SHOW_RELATIVES_EVENTS, '_MARR' . str_replace('_HSIB', '_SIBL', $option))) { |
|
325 | + foreach ($child->getSpouseFamilies() as $sfamily) { |
|
326 | + foreach ($sfamily->getFacts('MARR') as $fact) { |
|
327 | + $sgdate = $fact->getDate(); |
|
328 | + if ($sgdate->isOK() && Date::compare($birt_date, $sgdate) <= 0 && Date::compare($sgdate, $deat_date) <= 0) { |
|
329 | + if ($option == '_GCHI' && $relation == 'dau') { |
|
330 | + // Convert the event to a close relatives event. |
|
331 | + $rela_fact = clone($fact); |
|
332 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH1'); |
|
333 | + $facts[] = $rela_fact; |
|
334 | + } elseif ($option == '_GCHI' && $relation == 'son') { |
|
335 | + // Convert the event to a close relatives event. |
|
336 | + $rela_fact = clone($fact); |
|
337 | + $rela_fact->setTag('_' . $fact->getTag() . '_GCH2'); |
|
338 | + $facts[] = $rela_fact; |
|
339 | + } else { |
|
340 | + // Convert the event to a close relatives event. |
|
341 | + $rela_fact = clone($fact); |
|
342 | + $rela_fact->setTag('_' . $fact->getTag() . $option); |
|
343 | + $facts[] = $rela_fact; |
|
344 | + } |
|
345 | + } |
|
346 | + } |
|
347 | + } |
|
348 | + } |
|
349 | + } |
|
350 | + |
|
351 | + return $facts; |
|
352 | + } |
|
353 | + |
|
354 | + /** |
|
355 | + * Get the events of parents and grandparents. |
|
356 | + * |
|
357 | + * @param Individual $person |
|
358 | + * @param int $sosa |
|
359 | + * |
|
360 | + * @return Fact[] |
|
361 | + */ |
|
362 | + private static function parentFacts(Individual $person, $sosa) { |
|
363 | + global $controller; |
|
364 | + |
|
365 | + $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
366 | + |
|
367 | + $facts = array(); |
|
368 | + |
|
369 | + // Only include events between birth and death |
|
370 | + $birt_date = $controller->record->getEstimatedBirthDate(); |
|
371 | + $deat_date = $controller->record->getEstimatedDeathDate(); |
|
372 | + |
|
373 | + if ($sosa == 1) { |
|
374 | + foreach ($person->getChildFamilies() as $family) { |
|
375 | + // Add siblings |
|
376 | + foreach (self::childFacts($person, $family, '_SIBL', '') as $fact) { |
|
377 | + $facts[] = $fact; |
|
378 | + } |
|
379 | + foreach ($family->getSpouses() as $spouse) { |
|
380 | + foreach ($spouse->getSpouseFamilies() as $sfamily) { |
|
381 | + if ($family !== $sfamily) { |
|
382 | + // Add half-siblings |
|
383 | + foreach (self::childFacts($person, $sfamily, '_HSIB', '') as $fact) { |
|
384 | + $facts[] = $fact; |
|
385 | + } |
|
386 | + } |
|
387 | + } |
|
388 | + // Add grandparents |
|
389 | + foreach (self::parentFacts($spouse, $spouse->getSex() == 'F' ? 3 : 2) as $fact) { |
|
390 | + $facts[] = $fact; |
|
391 | + } |
|
392 | + } |
|
393 | + } |
|
394 | + |
|
395 | + if (strstr($SHOW_RELATIVES_EVENTS, '_MARR_PARE')) { |
|
396 | + // add father/mother marriages |
|
397 | + foreach ($person->getChildFamilies() as $sfamily) { |
|
398 | + foreach ($sfamily->getFacts('MARR') as $fact) { |
|
399 | + if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
400 | + // marriage of parents (to each other) |
|
401 | + $rela_fact = clone($fact); |
|
402 | + $rela_fact->setTag('_' . $fact->getTag() . '_FAMC'); |
|
403 | + $facts[] = $rela_fact; |
|
404 | + } |
|
405 | + } |
|
406 | + } |
|
407 | + foreach ($person->getChildStepFamilies() as $sfamily) { |
|
408 | + foreach ($sfamily->getFacts('MARR') as $fact) { |
|
409 | + if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
410 | + // marriage of a parent (to another spouse) |
|
411 | + // Convert the event to a close relatives event |
|
412 | + $rela_fact = clone($fact); |
|
413 | + $rela_fact->setTag('_' . $fact->getTag() . '_PARE'); |
|
414 | + $facts[] = $rela_fact; |
|
415 | + } |
|
416 | + } |
|
417 | + } |
|
418 | + } |
|
419 | + } |
|
420 | + |
|
421 | + foreach ($person->getChildFamilies() as $family) { |
|
422 | + foreach ($family->getSpouses() as $parent) { |
|
423 | + if (strstr($SHOW_RELATIVES_EVENTS, '_DEAT' . ($sosa == 1 ? '_PARE' : '_GPAR'))) { |
|
424 | + foreach ($parent->getFacts(WT_EVENTS_DEAT) as $fact) { |
|
425 | + if ($fact->getDate()->isOK() && Date::compare($birt_date, $fact->getDate()) <= 0 && Date::compare($fact->getDate(), $deat_date) <= 0) { |
|
426 | + switch ($sosa) { |
|
427 | + case 1: |
|
428 | + // Convert the event to a close relatives event. |
|
429 | + $rela_fact = clone($fact); |
|
430 | + $rela_fact->setTag('_' . $fact->getTag() . '_PARE'); |
|
431 | + $facts[] = $rela_fact; |
|
432 | + break; |
|
433 | + case 2: |
|
434 | + // Convert the event to a close relatives event |
|
435 | + $rela_fact = clone($fact); |
|
436 | + $rela_fact->setTag('_' . $fact->getTag() . '_GPA1'); |
|
437 | + $facts[] = $rela_fact; |
|
438 | + break; |
|
439 | + case 3: |
|
440 | + // Convert the event to a close relatives event |
|
441 | + $rela_fact = clone($fact); |
|
442 | + $rela_fact->setTag('_' . $fact->getTag() . '_GPA2'); |
|
443 | + $facts[] = $rela_fact; |
|
444 | + break; |
|
445 | + } |
|
446 | + } |
|
447 | + } |
|
448 | + } |
|
449 | + } |
|
450 | + } |
|
451 | + |
|
452 | + return $facts; |
|
453 | + } |
|
454 | + |
|
455 | + /** |
|
456 | + * Get any historical events. |
|
457 | + * |
|
458 | + * @param Individual $person |
|
459 | + * |
|
460 | + * @return Fact[] |
|
461 | + */ |
|
462 | + private static function historicalFacts(Individual $person) { |
|
463 | + $SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS'); |
|
464 | + |
|
465 | + $facts = array(); |
|
466 | + |
|
467 | + if ($SHOW_RELATIVES_EVENTS) { |
|
468 | + // Only include events between birth and death |
|
469 | + $birt_date = $person->getEstimatedBirthDate(); |
|
470 | + $deat_date = $person->getEstimatedDeathDate(); |
|
471 | + |
|
472 | + if (file_exists(Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php')) { |
|
473 | + $histo = array(); |
|
474 | + require Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php'; |
|
475 | + foreach ($histo as $hist) { |
|
476 | + // Earlier versions of the WIKI encouraged people to use HTML entities, |
|
477 | + // rather than UTF8 encoding. |
|
478 | + $hist = html_entity_decode($hist, ENT_QUOTES, 'UTF-8'); |
|
479 | + |
|
480 | + $fact = new Fact($hist, $person, 'histo'); |
|
481 | + $sdate = $fact->getDate(); |
|
482 | + if ($sdate->isOK() && Date::compare($birt_date, $sdate) <= 0 && Date::compare($sdate, $deat_date) <= 0) { |
|
483 | + $facts[] = $fact; |
|
484 | + } |
|
485 | + } |
|
486 | + } |
|
487 | + } |
|
488 | + |
|
489 | + return $facts; |
|
490 | + } |
|
491 | + |
|
492 | + /** |
|
493 | + * Get the events of associates. |
|
494 | + * |
|
495 | + * @param Individual $person |
|
496 | + * |
|
497 | + * @return Fact[] |
|
498 | + */ |
|
499 | + private static function associateFacts(Individual $person) { |
|
500 | + $facts = array(); |
|
501 | + |
|
502 | + $associates = array_merge( |
|
503 | + $person->linkedIndividuals('ASSO'), |
|
504 | + $person->linkedIndividuals('_ASSO'), |
|
505 | + $person->linkedFamilies('ASSO'), |
|
506 | + $person->linkedFamilies('_ASSO') |
|
507 | + ); |
|
508 | + foreach ($associates as $associate) { |
|
509 | + foreach ($associate->getFacts() as $fact) { |
|
510 | + $arec = $fact->getAttribute('_ASSO'); |
|
511 | + if (!$arec) { |
|
512 | + $arec = $fact->getAttribute('ASSO'); |
|
513 | + } |
|
514 | + if ($arec && trim($arec, '@') === $person->getXref()) { |
|
515 | + // Extract the important details from the fact |
|
516 | + $factrec = '1 ' . $fact->getTag(); |
|
517 | + if (preg_match('/\n2 DATE .*/', $fact->getGedcom(), $match)) { |
|
518 | + $factrec .= $match[0]; |
|
519 | + } |
|
520 | + if (preg_match('/\n2 PLAC .*/', $fact->getGedcom(), $match)) { |
|
521 | + $factrec .= $match[0]; |
|
522 | + } |
|
523 | + if ($associate instanceof Family) { |
|
524 | + foreach ($associate->getSpouses() as $spouse) { |
|
525 | + $factrec .= "\n2 _ASSO @" . $spouse->getXref() . '@'; |
|
526 | + } |
|
527 | + } else { |
|
528 | + $factrec .= "\n2 _ASSO @" . $associate->getXref() . '@'; |
|
529 | + } |
|
530 | + $facts[] = new Fact($factrec, $associate, 'asso'); |
|
531 | + } |
|
532 | + } |
|
533 | + } |
|
534 | + |
|
535 | + return $facts; |
|
536 | + } |
|
537 | 537 | } |