76 lines
1.7 KiB
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];
|
|
|
|
}
|
|
}
|