xref: /webtrees/app/Module/LanguageEstonian.php (revision d11be7027e34e3121be11cc025421873364403f9)
102086832SGreg Roach<?php
23976b470SGreg Roach
302086832SGreg Roach/**
402086832SGreg Roach * webtrees: online genealogy
5*d11be702SGreg Roach * Copyright (C) 2023 webtrees development team
602086832SGreg Roach * This program is free software: you can redistribute it and/or modify
702086832SGreg Roach * it under the terms of the GNU General Public License as published by
802086832SGreg Roach * the Free Software Foundation, either version 3 of the License, or
902086832SGreg Roach * (at your option) any later version.
1002086832SGreg Roach * This program is distributed in the hope that it will be useful,
1102086832SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
1202086832SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1302086832SGreg Roach * GNU General Public License for more details.
1402086832SGreg Roach * You should have received a copy of the GNU General Public License
1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
1602086832SGreg Roach */
17fcfa147eSGreg Roach
1802086832SGreg Roachdeclare(strict_types=1);
1902086832SGreg Roach
2002086832SGreg Roachnamespace Fisharebest\Webtrees\Module;
2102086832SGreg Roach
2202086832SGreg Roachuse Fisharebest\Localization\Locale\LocaleEt;
2302086832SGreg Roachuse Fisharebest\Localization\Locale\LocaleInterface;
2452288ec7SGreg Roachuse Fisharebest\Webtrees\Encodings\UTF8;
254a9a6095SGreg Roachuse Illuminate\Database\Query\Builder;
2602086832SGreg Roach
2702086832SGreg Roach/**
2802086832SGreg Roach * Class LanguageEstonian.
2902086832SGreg Roach */
3002086832SGreg Roachclass LanguageEstonian extends AbstractModule implements ModuleLanguageInterface
3102086832SGreg Roach{
3202086832SGreg Roach    use ModuleLanguageTrait;
3302086832SGreg Roach
3402086832SGreg Roach    /**
354a9a6095SGreg Roach     * Phone-book ordering of letters.
364a9a6095SGreg Roach     *
374a9a6095SGreg Roach     * @return array<int,string>
384a9a6095SGreg Roach     */
394a9a6095SGreg Roach    public function alphabet(): array
404a9a6095SGreg Roach    {
4152288ec7SGreg Roach        return [
4252288ec7SGreg Roach            'A',
4352288ec7SGreg Roach            'B',
4452288ec7SGreg Roach            'C',
4552288ec7SGreg Roach            'D',
4652288ec7SGreg Roach            'E',
4752288ec7SGreg Roach            'F',
4852288ec7SGreg Roach            'G',
4952288ec7SGreg Roach            'H',
5052288ec7SGreg Roach            'I',
5152288ec7SGreg Roach            'J',
5252288ec7SGreg Roach            'K',
5352288ec7SGreg Roach            'L',
5452288ec7SGreg Roach            'M',
5552288ec7SGreg Roach            'N',
5652288ec7SGreg Roach            'O',
5752288ec7SGreg Roach            'P',
5852288ec7SGreg Roach            'Q',
5952288ec7SGreg Roach            'R',
6052288ec7SGreg Roach            'S',
6152288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_S_WITH_CARON,
6252288ec7SGreg Roach            'Z',
6352288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_Z_WITH_CARON,
6452288ec7SGreg Roach            'T',
6552288ec7SGreg Roach            'U',
6652288ec7SGreg Roach            'V',
6752288ec7SGreg Roach            'W',
6852288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_O_WITH_TILDE,
6952288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS,
7052288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS,
7152288ec7SGreg Roach            UTF8::LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS,
7252288ec7SGreg Roach            'X',
7352288ec7SGreg Roach            'Y',
7452288ec7SGreg Roach        ];
754a9a6095SGreg Roach    }
764a9a6095SGreg Roach
774a9a6095SGreg Roach    /**
7802086832SGreg Roach     * @return LocaleInterface
7902086832SGreg Roach     */
8002086832SGreg Roach    public function locale(): LocaleInterface
8102086832SGreg Roach    {
8202086832SGreg Roach        return new LocaleEt();
8302086832SGreg Roach    }
8452288ec7SGreg Roach
8552288ec7SGreg Roach    /**
8652288ec7SGreg Roach     * Letters with diacritics that are considered distinct letters in this language.
8752288ec7SGreg Roach     *
8852288ec7SGreg Roach     * @return array<string,string>
8952288ec7SGreg Roach     */
9052288ec7SGreg Roach    protected function normalizeExceptions(): array
9152288ec7SGreg Roach    {
9252288ec7SGreg Roach        return [
9352288ec7SGreg Roach            'S' . UTF8::COMBINING_CARON     => UTF8::LATIN_CAPITAL_LETTER_S_WITH_CARON,
9452288ec7SGreg Roach            'Z' . UTF8::COMBINING_CARON     => UTF8::LATIN_CAPITAL_LETTER_Z_WITH_CARON,
9552288ec7SGreg Roach            'O' . UTF8::COMBINING_TILDE     => UTF8::LATIN_CAPITAL_LETTER_O_WITH_TILDE,
9652288ec7SGreg Roach            'A' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS,
9752288ec7SGreg Roach            'O' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS,
9852288ec7SGreg Roach            'U' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS,
9952288ec7SGreg Roach            's' . UTF8::COMBINING_CARON     => UTF8::LATIN_SMALL_LETTER_S_WITH_CARON,
10052288ec7SGreg Roach            'z' . UTF8::COMBINING_CARON     => UTF8::LATIN_SMALL_LETTER_Z_WITH_CARON,
10152288ec7SGreg Roach            'o' . UTF8::COMBINING_TILDE     => UTF8::LATIN_SMALL_LETTER_O_WITH_TILDE,
10252288ec7SGreg Roach            'a' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_SMALL_LETTER_A_WITH_DIAERESIS,
10352288ec7SGreg Roach            'o' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_SMALL_LETTER_O_WITH_DIAERESIS,
10452288ec7SGreg Roach            'u' . UTF8::COMBINING_DIAERESIS => UTF8::LATIN_SMALL_LETTER_U_WITH_DIAERESIS,
10552288ec7SGreg Roach        ];
10652288ec7SGreg Roach    }
10702086832SGreg Roach}
108