MDImporterConcordanceLists/src/MDConcLanguages.php

76 lines
1.7 KiB
PHP

<?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 {
private const LANGUAGES_LIST = [
# English
'English' => 'en',
'englisch' => 'en',
'eng' => 'en',
'EN' => 'en',
'ENG' => 'en',
# German
'Deutsch' => 'de',
'deutsch' => 'de',
'German' => 'de',
'deu' => 'de',
'Buch' => 'de',
'Deutsch, Latein' => 'de',
'deutsch, französisch' => 'de',
'deutsch, russisch' => 'de',
'deutsch u. plattdeutsch' => 'de',
'deutsch / englisch' => 'de',
'deurtsch' => 'de',
# Hungarian
'Hungarian' => 'hu',
'Magyar' => 'hu',
# 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',
];
/**
* 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];
}
}