@@ -58,19 +58,19 @@ discard block |
||
58 | 58 | UTF8::LATIN_SMALL_LETTER_SHARP_S => 'ss', |
59 | 59 | ]; |
60 | 60 | } |
61 | - public function relationships(): array |
|
61 | + public function relationships(): array |
|
62 | 62 | { |
63 | 63 | // returns array => [nominativ, genitive %s] |
64 | 64 | // $genitive = static fn (string $prefix, string $suffix): array => [$prefix . $suffix, $prefix . 's' . $suffix . '%s']; |
65 | 65 | $genitive = static fn (string $prefix, string $suffix, int $gender): array => |
66 | - ($gender == 0) ? [$prefix . $suffix, '%s' . ' des ' . $prefix . 's' . $suffix] : (($gender == 1) ? [$prefix . $suffix, '%s' . ' der ' . $prefix . $suffix] : [$prefix . $suffix, '%s' . ' der ' . $prefix . $suffix]); |
|
66 | + ($gender == 0) ? [$prefix . $suffix, '%s' . ' des ' . $prefix . 's' . $suffix] : (($gender == 1) ? [$prefix . $suffix, '%s' . ' der ' . $prefix . $suffix] : [$prefix . $suffix, '%s' . ' der ' . $prefix . $suffix]); |
|
67 | 67 | |
68 | 68 | $ur = static fn (int $n, string $simpleGreat, string $suffix, int $gender): array => $genitive( |
69 | - (($n > 1) ? ($n + 1) . ' x Ur' : (($n > -1) ? 'Ur' . str_repeat('ur', $n) : '')) . $simpleGreat, $suffix, $gender |
|
70 | - // $n <= -1 -> '' |
|
71 | - // $n == 0 -> Ur |
|
72 | - // $n == 1 -> Urur |
|
73 | - // $n >= 2 -> $n+1 ' x Ur' |
|
69 | + (($n > 1) ? ($n + 1) . ' x Ur' : (($n > -1) ? 'Ur' . str_repeat('ur', $n) : '')) . $simpleGreat, $suffix, $gender |
|
70 | + // $n <= -1 -> '' |
|
71 | + // $n == 0 -> Ur |
|
72 | + // $n == 1 -> Urur |
|
73 | + // $n >= 2 -> $n+1 ' x Ur' |
|
74 | 74 | ); |
75 | 75 | |
76 | 76 | return [ |
@@ -123,7 +123,7 @@ discard block |
||
123 | 123 | Relationship::fixed('Stiefschwester', '%s der Stiefschwester')->parent()->spouse()->daughter(), |
124 | 124 | Relationship::fixed('Stiefbruder', '%s des Stiefbruders')->parent()->spouse()->son(), |
125 | 125 | Relationship::fixed('Stiefgeschwister', '%s der Stiefgeschwister')->parent()->spouse()->child(), |
126 | - // Cousin / Cousine |
|
126 | + // Cousin / Cousine |
|
127 | 127 | Relationship::fixed('Cousine', '%s der Cousine')->parent()->sister()->child()->female(), |
128 | 128 | Relationship::fixed('Cousine', '%s der Cousine')->parent()->brother()->child()->female(), |
129 | 129 | Relationship::fixed('Cousin', '%s des Cousins')->parent()->sister()->child()->male(), |
@@ -145,7 +145,7 @@ discard block |
||
145 | 145 | Relationship::fixed('Schwiegertochter', '%s der Schwiegertochter')->child()->wife(), |
146 | 146 | Relationship::fixed('Schwiegersohn', '%s des Schwiegersohnes')->child()->husband(), |
147 | 147 | Relationship::fixed('Schwiegerkind', '%s des Schwiegerkindes')->child()->married()->spouse(), |
148 | - // |
|
148 | + // |
|
149 | 149 | Relationship::fixed('Schwägerin', '%s der Schwägerin')->sibling()->spouse()->sister(), |
150 | 150 | Relationship::fixed('Schwager', '%s des Schwagers')->sibling()->spouse()->brother(), |
151 | 151 | Relationship::fixed('Schwager/Schwägerin', '%s des Schwagers / der Schwägerin')->sibling()->spouse()->sibling(), |
@@ -162,7 +162,7 @@ discard block |
||
162 | 162 | Relationship::fixed('Großmutter väterlicherseits', '%s der Großmutter (väterlicherseits)')->father()->mother(), |
163 | 163 | Relationship::fixed('Großvater väterlicherseits', '%s des Großvaters (väterlicherseits)')->father()->father(), |
164 | 164 | Relationship::fixed('Großeltern väterlicherseits', '%s der Großeltern (väterlicherseits)')->father()->parent(), |
165 | - // |
|
165 | + // |
|
166 | 166 | Relationship::fixed('Großmutter', '%s der Großmutter')->parent()->mother(), |
167 | 167 | Relationship::fixed('Großvater', '%s des Großvaters')->parent()->father(), |
168 | 168 | Relationship::fixed('Großeltern', '%s der Großeltern')->parent()->parent(), |
@@ -170,43 +170,43 @@ discard block |
||
170 | 170 | Relationship::fixed('Enkelin', '%s der Enkelin')->child()->daughter(), |
171 | 171 | Relationship::fixed('Enkel', '%s des Enkels')->child()->son(), |
172 | 172 | Relationship::fixed('Enkelin/Enkel', '%s der Enkelin/des Enkels')->child()->child(), |
173 | - // Nichte / Neffe |
|
173 | + // Nichte / Neffe |
|
174 | 174 | Relationship::fixed('Nichte', '%s der Nichte')->sibling()->daughter(), |
175 | 175 | Relationship::fixed('Nichte', '%s der Nichte')->married()->spouse()->sibling()->daughter(), |
176 | 176 | Relationship::fixed('Neffe', '%s des Neffen')->sibling()->son(), |
177 | 177 | Relationship::fixed('Neffe', '%s des Neffen')->married()->spouse()->sibling()->son(), |
178 | 178 | Relationship::fixed('Nichte/Neffe', '%s der Nichte / des Neffen')->sibling()->child(), |
179 | 179 | Relationship::fixed('Nichte/Neffe', '%s der Nichte/ des Neffen')->married()->spouse()->sibling()->child(), |
180 | - // Großnichte / Großneffe |
|
180 | + // Großnichte / Großneffe |
|
181 | 181 | Relationship::fixed('Großnichte', '%s der Großnichte')->sibling()->child()->child()->female(), |
182 | 182 | Relationship::fixed('Großnichte', '%s der Großnichte')->married()->spouse()->sibling()->child()->child()->female(), |
183 | 183 | Relationship::fixed('Großneffe', '%s des Großneffen')->sibling()->child()->child()->male(), |
184 | 184 | Relationship::fixed('Großneffe', '%s des Großneffen')->married()->spouse()->sibling()->child()->child()->male(), |
185 | - // Tante / Onkel |
|
185 | + // Tante / Onkel |
|
186 | 186 | Relationship::fixed('Tante', '%s der Tante')->parent()->sister(), |
187 | 187 | Relationship::fixed('Tante', '%s der Tante')->parent()->brother()->wife(), |
188 | 188 | Relationship::fixed('Onkel', '%s des Onkels')->parent()->sister()->husband(), |
189 | 189 | Relationship::fixed('Onkel', '%s des Onkels')->parent()->brother(), |
190 | - // Großtante / Großonkel |
|
190 | + // Großtante / Großonkel |
|
191 | 191 | Relationship::fixed('Großtante', '%s der Großtante')->parent()->parent()->sister(), |
192 | 192 | Relationship::fixed('Großtante', '%s der Großtante')->parent()->parent()->brother()->wife(), |
193 | 193 | Relationship::fixed('Großonkel', '%s des Großonkels')->parent()->parent()->brother(), |
194 | 194 | Relationship::fixed('Großonkel', '%s des Großonkels')->parent()->parent()->sister()->husband(), |
195 | 195 | // Relationships with dynamically generated names |
196 | - // ancestors: n=2 -> Urgroßmutter (mütterlicherseits) / Großmutter der Mutter |
|
196 | + // ancestors: n=2 -> Urgroßmutter (mütterlicherseits) / Großmutter der Mutter |
|
197 | 197 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großmutter', ' (mütterlicherseits) ', 1))->mother()->ancestor()->female(), |
198 | 198 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großvater', ' (mütterlicherseits) ', 0))->mother()->ancestor()->male(), |
199 | 199 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großmutter', ' (väterlicherseits) ', 1))->father()->ancestor()->female(), |
200 | 200 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großvater', ' (väterlicherseits) ', 0))->father()->ancestor()->male(), |
201 | - // |
|
201 | + // |
|
202 | 202 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großeltern', ' (väterlicherseits) ', 2))->father()->ancestor(), |
203 | 203 | Relationship::dynamic(static fn (int $n) => $ur($n - 2, 'großeltern', ' (mütterlicherseits) ', 2))->mother()->ancestor(), |
204 | - // |
|
204 | + // |
|
205 | 205 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großtante', ' ', 1))->ancestor()->sister(), |
206 | 206 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großtante', ' ', 1))->ancestor()->sibling()->wife(), |
207 | 207 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großonkel', ' ', 0))->ancestor()->brother(), |
208 | 208 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großonkel', ' ', 0))->ancestor()->sibling()->husband(), |
209 | - // descendants |
|
209 | + // descendants |
|
210 | 210 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großnichte', ' ', 1))->sibling()->descendant()->female(), |
211 | 211 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großnichte', ' ', 1))->married()->spouse()->sibling()->descendant()->female(), |
212 | 212 | Relationship::dynamic(static fn (int $n) => $ur($n - 3, 'großneffe', ' ', 0))->sibling()->descendant()->male(), |