1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2022 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\Elements; 21 22use Fisharebest\Webtrees\I18N; 23 24use function strtoupper; 25 26/** 27 * NAME_TYPE := {Size=5:30} 28 * [ aka | birth | immigrant | maiden | married | <user defined>] 29 * Indicates the name type, for example the name issued or assumed as an immigrant. 30 * aka = also known as, alias, etc. 31 * birth = name given on birth certificate. 32 * immigrant = name assumed at the time of immigration. 33 * maiden = maiden name, name before first marriage. 34 * married =name was persons previous married name. 35 * user_defined = other text name that defines the name type. 36 */ 37class NameType extends AbstractElement 38{ 39 public const TYPE_ADOPTED = 'ADOPTED'; 40 public const TYPE_AKA = 'AKA'; 41 public const TYPE_BIRTH = 'BIRTH'; 42 public const TYPE_CHANGE = 'CHANGE'; 43 public const TYPE_ESTATE = 'ESTATE'; 44 public const TYPE_IMMIGRANT = 'IMMIGRANT'; 45 public const TYPE_MAIDEN = 'MAIDEN'; 46 public const TYPE_MARRIED = 'MARRIED'; 47 public const TYPE_RELIGIOUS = 'RELIGIOUS'; 48 49 /** 50 * Convert a value to a canonical form. 51 * 52 * @param string $value 53 * 54 * @return string 55 */ 56 public function canonical(string $value): string 57 { 58 return strtoupper(parent::canonical($value)); 59 } 60 61 /** 62 * A list of controlled values for this element 63 * 64 * @return array<int|string,string> 65 */ 66 public function values(): array 67 { 68 return [ 69 '' => '', 70 /* I18N: The name given to a child by its adoptive parents */ 71 self::TYPE_ADOPTED => I18N::translate('adopted name'), 72 /* I18N: The name by which an individual is also known. e.g. a professional name or a stage name */ 73 self::TYPE_AKA => I18N::translate('also known as'), 74 /* I18N: The name given to an individual at their birth */ 75 self::TYPE_BIRTH => I18N::translate('birth name'), 76 /* I18N: A name chosen by an individual, to replace their existing name (whether legal or otherwise) */ 77 self::TYPE_CHANGE => I18N::translate('change of name'), 78 /* I18N: A name given to an individual, from the farm or estate on which they lived or worked */ 79 self::TYPE_ESTATE => I18N::translate('estate name'), 80 /* I18N: A name taken on immigration - e.g. migrants to the USA frequently anglicized their names */ 81 self::TYPE_IMMIGRANT => I18N::translate('immigration name'), 82 /* I18N: A woman’s name, before she marries (in cultures where women take their new husband’s name on marriage) */ 83 self::TYPE_MAIDEN => I18N::translate('maiden name'), 84 /* I18N: A name taken on marriage - usually the wife takes the husband’s surname */ 85 self::TYPE_MARRIED => I18N::translate('married name'), 86 /* I18N: A name taken when entering a religion or a religious order */ 87 self::TYPE_RELIGIOUS => I18N::translate('religious name'), 88 ]; 89 } 90} 91