xref: /webtrees/app/CustomTags/Aldfaer.php (revision d11be7027e34e3121be11cc025421873364403f9)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2023 webtrees development team
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17
18declare(strict_types=1);
19
20namespace Fisharebest\Webtrees\CustomTags;
21
22use Fisharebest\Webtrees\Contracts\CustomTagInterface;
23use Fisharebest\Webtrees\Contracts\ElementInterface;
24use Fisharebest\Webtrees\Elements\AddressEmail;
25use Fisharebest\Webtrees\Elements\AddressFax;
26use Fisharebest\Webtrees\Elements\AddressLine;
27use Fisharebest\Webtrees\Elements\AddressWebPage;
28use Fisharebest\Webtrees\Elements\CustomElement;
29use Fisharebest\Webtrees\Elements\DateValue;
30use Fisharebest\Webtrees\Elements\EmptyElement;
31use Fisharebest\Webtrees\Elements\Marriage;
32use Fisharebest\Webtrees\Elements\PhoneNumber;
33use Fisharebest\Webtrees\Elements\TimeValue;
34use Fisharebest\Webtrees\I18N;
35
36/**
37 * GEDCOM files created by Aldfaer
38 *
39 * @see http://aldfaer.net
40 */
41class Aldfaer implements CustomTagInterface
42{
43    /**
44     * The name of the application.
45     *
46     * @return string
47     */
48    public function name(): string
49    {
50        return 'Aldfaer';
51    }
52
53    /**
54     * Tags created by this application.
55     *
56     * @return array<string,ElementInterface>
57     */
58    public function tags(): array
59    {
60        return [
61            'FAM:MARR_CIVIL'           => new Marriage(I18N::translate('Civil marriage')),
62            'FAM:MARR_PARTNERS'        => new Marriage(I18N::translate('Registered partnership')),
63            'FAM:MARR_RELIGIOUS'       => new Marriage(I18N::translate('Religious marriage')),
64            'FAM:MARR_UNKNOWN'         => new Marriage(I18N::translate('Marriage')),
65            'FAM:_ALDFAER_NOREL'       => new EmptyElement('No relation'), // What is this?
66            'HEAD:SUBM:ADDR'           => new AddressLine(I18N::translate('Address')),
67            'HEAD:SUBM:PHON'           => new PhoneNumber(I18N::translate('Phone')),
68            'HEAD:SUBM:_EMAI'          => new AddressEmail(I18N::translate('Email')),
69            'HEAD:SUBM:_FAX'           => new AddressFax(I18N::translate('Fax')),
70            'HEAD:SUBM:_WWW'           => new AddressWebPage(I18N::translate('URL')),
71            'INDI:BIRT:_ALDFAER_TIME'  => new TimeValue(I18N::translate('Time of birth')),
72            'INDI:BIRT:_LENGTH'        => new CustomElement(I18N::translate('Length')),
73            'INDI:BIRT:_WEIGHT'        => new CustomElement(I18N::translate('Weight')),
74            'INDI:DEAT:_ALDFAER_TIME'  => new TimeValue(I18N::translate('Time of death')),
75            'INDI:_REFERENCE'          => new CustomElement(''),
76            'INDI:_PRIVACY'            => new CustomElement(''),
77            'INDI:_PRIVACY:_OBJECTION' => new CustomElement(''),
78            'INDI:_PRIVACY:_PUBLISH'   => new CustomElement(''),
79            'INDI:NAME:_SURNAS'        => new CustomElement(I18N::translate('Alternative spelling of surname')),
80            'INDI:DEAT:_DATE'          => new DateValue(I18N::translate('Date')),
81            'INDI:_INQUBIRT'           => new CustomElement(''),
82            'INDI:_INQUCHIL'           => new CustomElement(''),
83            'INDI:_INQURELA'           => new CustomElement(''),
84            'INDI:_INQUDEAT'           => new CustomElement(''),
85            'INDI:_INQUVAR1'           => new CustomElement(''),
86            'INDI:_INQUVAR1CAT'        => new CustomElement(''),
87            'INDI:_INQUVAR2'           => new CustomElement(''),
88            'INDI:_INQUVAR2CAT'        => new CustomElement(''),
89            'INDI:_INQUVAR3'           => new CustomElement(''),
90            'INDI:_INQUVAR3CAT'        => new CustomElement(''),
91            'INDI:_NOPARTNER'          => new CustomElement(''),
92            'INDI:_NEW'                => new CustomElement(''),
93            'INDI:_BOLD'               => new CustomElement(''),
94            'INDI:_ITALIC'             => new CustomElement(''),
95            'INDI:_UNDERLINE'          => new CustomElement(''),
96            'INDI:_COLOR'              => new CustomElement(''),
97        ];
98    }
99}
100