xref: /webtrees/app/CustomTags/MyHeritage.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\AutomatedRecordId;
25use Fisharebest\Webtrees\Elements\CustomElement;
26use Fisharebest\Webtrees\Elements\PafUid;
27use Fisharebest\Webtrees\I18N;
28
29/**
30 * GEDCOM files created by MyHeritage
31 *
32 * @see https://www.myheritage.com
33 */
34class MyHeritage implements CustomTagInterface
35{
36    /**
37     * The name of the application.
38     *
39     * @return string
40     */
41    public function name(): string
42    {
43        return 'MyHeritage';
44    }
45
46    /**
47     * Tags created by this application.
48     *
49     * @return array<string,ElementInterface>
50     */
51    public function tags(): array
52    {
53        return [
54            'FAM:*:_UID'                  => new PafUid(I18N::translate('Unique identifier')),
55            'FAM:*:RIN'                   => new AutomatedRecordId(I18N::translate('Record ID number')),
56            'HEAD:DATE:_TIMEZONE'         => new CustomElement(I18N::translate('Time zone')),
57            'HEAD:SOUR:_RTLSAVE'          => new CustomElement(I18N::translate('Text direction')), // ?
58            'HEAD:_RINS'                  => new CustomElement(I18N::translate('Record ID number')), // ?
59            'HEAD:_UID'                   => new PafUid(I18N::translate('Unique identifier')),
60            'HEAD:_PROJECT_GUID'          => new PafUid(I18N::translate('Unique identifier')),
61            'HEAD:_EXPORTED_FROM_SITE_ID' => new CustomElement(I18N::translate('Site identification code')),
62            'HEAD:_DESCRIPTION_AWARE'     => new CustomElement(I18N::translate('Description')), // ?
63            'INDI:PERSONALPHOTO'          => new CustomElement(I18N::translate('Photograph')),
64            'INDI:*:_UID'                 => new PafUid(I18N::translate('Unique identifier')),
65            'INDI:*:RIN'                  => new AutomatedRecordId(I18N::translate('Record ID number')),
66            '*:_UPD'                      => new CustomElement(I18N::translate('Updated at')),
67        ];
68    }
69}
70