. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\ExtCalendar\CalendarInterface; use Fisharebest\Localization\Locale\LocaleInterface; use Fisharebest\Webtrees\Relationship; use Illuminate\Database\Query\Builder; /** * Interface ModuleLanguageInterface - provide translation and localization. */ interface ModuleLanguageInterface extends ModuleInterface { /** * Phone-book ordering of letters. * * @return array */ public function alphabet(): array; /** * Default calendar used by this language. * * @return CalendarInterface */ public function calendar(): CalendarInterface; /** * One of: 'DMY', 'MDY', 'YMD'. * * @return string */ public function dateOrder(): string; /** * Some languages treat certain letter-combinations as equivalent. * * @return array */ public function equivalentLetters(): array; /** * Some languages use digraphs and trigraphs. * * @param string $string * * @return string */ public function initialLetter(string $string): string; /** * @param string $column * @param string $letter * @param Builder $query * * @return void */ public function initialLetterSQL(string $column, string $letter, Builder $query): void; /** * @return LocaleInterface */ public function locale(): LocaleInterface; /** * @return array */ public function relationships(): array; }