xref: /webtrees/app/CustomTags/RootsMagic.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\AddressWebPage;
25use Fisharebest\Webtrees\Elements\CustomElement;
26use Fisharebest\Webtrees\Elements\EmptyElement;
27use Fisharebest\Webtrees\Elements\PafUid;
28use Fisharebest\Webtrees\I18N;
29
30/**
31 * GEDCOM files created by Roots Magic
32 *
33 * @see https://www.rootsmagic.com/
34 */
35class RootsMagic implements CustomTagInterface
36{
37    /**
38     * The name of the application.
39     *
40     * @return string
41     */
42    public function name(): string
43    {
44        return 'RootsMagic';
45    }
46
47    /**
48     * Tags created by this application.
49     *
50     * @return array<string,ElementInterface>
51     */
52    public function tags(): array
53    {
54        return [
55            'FAM:*:SOUR:_TMPLT'              => new EmptyElement(I18N::translate('Template')),
56            'FAM:*:SOUR:_TMPLT:FIELD'        => /* I18N: Data entry field */ new EmptyElement(I18N::translate('Field')),
57            'FAM:*:SOUR:_TMPLT:FIELD:NAME'   => /* I18N: Data entry field */ new CustomElement(I18N::translate('Field name')),
58            'FAM:*:SOUR:_TMPLT:FIELD:VALUE'  => /* I18N: Data entry field */ new CustomElement(I18N::translate('Field value')),
59            'FAM:SOUR:_TMPLT'                => new EmptyElement(''),
60            'FAM:SOUR:_TMPLT:FIELD'          => new EmptyElement(''),
61            'FAM:SOUR:_TMPLT:FIELD:NAME'     => new CustomElement(I18N::translate('Field name')),
62            'FAM:SOUR:_TMPLT:FIELD:VALUE'    => new CustomElement(I18N::translate('Field value')),
63            'FAM:_UID'                       => new PafUid(I18N::translate('Unique identifier')),
64            'INDI:*:SOUR:_TMPLT'             => new EmptyElement(''),
65            'INDI:*:SOUR:_TMPLT:FIELD'       => new EmptyElement(''),
66            'INDI:*:SOUR:_TMPLT:FIELD:NAME'  => new CustomElement(I18N::translate('Field name')),
67            'INDI:*:SOUR:_TMPLT:FIELD:VALUE' => new CustomElement(I18N::translate('Field value')),
68            'INDI:SOUR:_TMPLT'               => new EmptyElement(''),
69            'INDI:SOUR:_TMPLT:FIELD'         => new EmptyElement(''),
70            'INDI:SOUR:_TMPLT:FIELD:NAME'    => new CustomElement(I18N::translate('Field name')),
71            'INDI:SOUR:_TMPLT:FIELD:VALUE'   => new CustomElement(I18N::translate('Field value')),
72            'INDI:_DNA'                      => new CustomElement(I18N::translate('DNA markers')),
73            'INDI:_UID'                      => new PafUid(I18N::translate('Unique identifier')),
74            'INDI:_WEBTAG'                   => new CustomElement(I18N::translate('External link')),
75            'INDI:_WEBTAG:NAME'              => new CustomElement(I18N::translate('Text')),
76            'INDI:_WEBTAG:URL'               => new AddressWebPage(I18N::translate('URL')),
77            'OBJE:_UID'                      => new PafUid(I18N::translate('Unique identifier')),
78            'REPO:_UID'                      => new PafUid(I18N::translate('Unique identifier')),
79            'SOUR:_BIBL'                     => new CustomElement(I18N::translate('Bibliography')),
80            'SOUR:_SUBQ'                     => new CustomElement(I18N::translate('Abbreviation')),
81            'SOUR:_UID'                      => new PafUid(I18N::translate('Unique identifier')),
82        ];
83    }
84}
85