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