. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Elements; use Fisharebest\Webtrees\I18N; use function strtoupper; /** * PEDIGREE_LINKAGE_TYPE := {Size=5:7} * [ adopted | birth | foster | sealing ] * A code used to indicate the child to family relationship for pedigree navigation purposes. * Where: * adopted = indicates adoptive parents. * birth = indicates birth parents. * foster = indicates child was included in a foster or guardian family. * sealing = indicates child was sealed to parents other than birth parents. */ class PedigreeLinkageType extends AbstractElement { protected const MAXIMUM_LENGTH = 7; public const TYPE_ADOPTED = 'ADOPTED'; public const TYPE_BIRTH = 'BIRTH'; public const TYPE_FOSTER = 'FOSTER'; public const TYPE_SEALING = 'SEALING'; public const TYPE_RADA = 'RADA'; /** * Convert a value to a canonical form. * * @param string $value * * @return string */ public function canonical(string $value): string { return strtoupper(parent::canonical($value)); } /** * A list of controlled values for this element * * @param string $sex - the text depends on the sex of the individual * * @return array */ public function values(string $sex = 'U'): array { $values = [ 'M' => [ '' => '', self::TYPE_BIRTH => I18N::translateContext('Male pedigree', 'Birth'), self::TYPE_ADOPTED => I18N::translateContext('Male pedigree', 'Adopted'), self::TYPE_FOSTER => I18N::translateContext('Male pedigree', 'Foster'), /* I18N: “sealing” is a Mormon ceremony. */ self::TYPE_SEALING => I18N::translateContext('Male pedigree', 'Sealing'), /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */ self::TYPE_RADA => I18N::translateContext('Male pedigree', 'Rada'), ], 'F' => [ '' => '', self::TYPE_BIRTH => I18N::translateContext('Female pedigree', 'Birth'), self::TYPE_ADOPTED => I18N::translateContext('Female pedigree', 'Adopted'), self::TYPE_FOSTER => I18N::translateContext('Female pedigree', 'Foster'), /* I18N: “sealing” is a Mormon ceremony. */ self::TYPE_SEALING => I18N::translateContext('Female pedigree', 'Sealing'), /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */ self::TYPE_RADA => I18N::translateContext('Female pedigree', 'Rada'), ], 'U' => [ '' => '', self::TYPE_BIRTH => I18N::translateContext('Pedigree', 'Birth'), self::TYPE_ADOPTED => I18N::translateContext('Pedigree', 'Adopted'), self::TYPE_FOSTER => I18N::translateContext('Pedigree', 'Foster'), /* I18N: “sealing” is a Mormon ceremony. */ self::TYPE_SEALING => I18N::translateContext('Pedigree', 'Sealing'), /* I18N: “rada” is an Arabic word, pronounced “ra DAH”. It is child-to-parent pedigree, established by wet-nursing. */ self::TYPE_RADA => I18N::translateContext('Pedigree', 'Rada'), ], ]; return $values[$sex] ?? $values['U']; } }