MDImporterConcordanceLists/src/MDConcLanguages.php

76 lines
1.7 KiB
PHP
Raw Normal View History

2023-05-07 02:27:49 +02:00
<?PHP
/**
* Constains lists for grouping languages.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Provides lists for categorizing spelled out languages.
*/
final class MDConcLanguages implements MDImporterConcordanceListInterface {
2023-05-07 02:27:49 +02:00
private const LANGUAGES_LIST = [
2023-07-25 22:35:10 +02:00
# English
'English' => 'en',
2024-11-15 17:22:05 +01:00
'englisch' => 'en',
2023-07-25 22:35:10 +02:00
'eng' => 'en',
'EN' => 'en',
'ENG' => 'en',
2023-07-25 22:35:10 +02:00
# German
2023-05-07 02:27:49 +02:00
'Deutsch' => 'de',
2024-11-15 17:22:05 +01:00
'deutsch' => 'de',
2023-05-07 02:27:49 +02:00
'German' => 'de',
2023-07-25 22:35:10 +02:00
'deu' => 'de',
2024-11-15 17:22:05 +01:00
'Buch' => 'de',
'Deutsch, Latein' => 'de',
'deutsch, französisch' => 'de',
'deutsch, russisch' => 'de',
'deutsch u. plattdeutsch' => 'de',
'deutsch / englisch' => 'de',
'deurtsch' => 'de',
2023-07-25 22:35:10 +02:00
# Hungarian
'Hungarian' => 'hu',
'Magyar' => 'hu',
2024-11-15 17:22:05 +01:00
# Czech
'Tschechisch' => 'cs',
'tschechisch' => 'cs',
'cz' => 'cs',
# Plattdeutsch / Niederdeutsch
'plattdeutsch' => 'nds',
# Latin
'Latein' => 'la',
'Latein, Deutsch, Italenisch, Spanisch, Englisch' => 'la',
# French
'französisch' => 'fr',
# Italian
'italienisch' => 'it',
2023-05-07 02:27:49 +02:00
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LANGUAGES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown language type: " . $input);
}
return self::LANGUAGES_LIST[$input];
}
2023-05-07 02:27:49 +02:00
}