xref: /webtrees/app/Elements/PedigreeLinkageType.php (revision 3d2c98d1066d5e178a3d1ceb3bdc58b7ba8ee926)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2021 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
24/**
25 * PEDIGREE_LINKAGE_TYPE := {Size=5:7}
26 * [ adopted | birth | foster | sealing ]
27 * A code used to indicate the child to family relationship for pedigree navigation purposes.
28 * Where:
29 * adopted = indicates adoptive parents.
30 * birth   = indicates birth parents.
31 * foster  = indicates child was included in a foster or guardian family.
32 * sealing = indicates child was sealed to parents other than birth parents.
33 */
34class PedigreeLinkageType extends AbstractElement
35{
36    protected const MAXIMUM_LENGTH = 7;
37
38    /**
39     * A list of controlled values for this element
40     *
41     * @param string $sex - the text depends on the sex of the individual
42     *
43     * @return array<int|string,string>
44     */
45    public function values(string $sex = 'U'): array
46    {
47        $values = [
48            'M' => [
49                ''        => '',
50                'birth'   => I18N::translateContext('Male pedigree', 'Birth'),
51                'adopted' => I18N::translateContext('Male pedigree', 'Adopted'),
52                'foster'  => I18N::translateContext('Male pedigree', 'Foster'),
53                'sealing' => /* I18N: “sealing” is a Mormon ceremony. */
54                    I18N::translateContext('Male pedigree', 'Sealing'),
55                'rada'    => /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */
56                    I18N::translateContext('Male pedigree', 'Rada'),
57            ],
58            'F' => [
59                ''        => '',
60                'birth'   => I18N::translateContext('Female pedigree', 'Birth'),
61                'adopted' => I18N::translateContext('Female pedigree', 'Adopted'),
62                'foster'  => I18N::translateContext('Female pedigree', 'Foster'),
63                'sealing' => /* I18N: “sealing” is a Mormon ceremony. */
64                    I18N::translateContext('Female pedigree', 'Sealing'),
65                'rada'    => /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */
66                    I18N::translateContext('Female pedigree', 'Rada'),
67            ],
68            'U' => [
69                ''        => '',
70                'birth'   => I18N::translateContext('Pedigree', 'Birth'),
71                'adopted' => I18N::translateContext('Pedigree', 'Adopted'),
72                'foster'  => I18N::translateContext('Pedigree', 'Foster'),
73                'sealing' => /* I18N: “sealing” is a Mormon ceremony. */
74                    I18N::translateContext('Pedigree', 'Sealing'),
75                'rada'    => /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */
76                    I18N::translateContext('Pedigree', 'Rada'),
77            ],
78        ];
79
80        return $values[$sex] ?? $values['U'];
81    }
82}
83