Transfer remaining class constants in autotranslater to enum
This commit is contained in:
parent
ea832e2160
commit
59c858fb0f
@ -14,198 +14,6 @@ final class NodaTimeAutotranslater {
|
|||||||
|
|
||||||
// TODO: Move these to NodaTimeAutotranslaterLocales
|
// TODO: Move these to NodaTimeAutotranslaterLocales
|
||||||
|
|
||||||
const LANGS_SINCE_START_FORMAT_YEAR = [
|
|
||||||
'ar' => '%s-',
|
|
||||||
'de' => 'Seit %s',
|
|
||||||
'en' => 'Since %s',
|
|
||||||
'es' => 'Desde %s',
|
|
||||||
'fa' => '%s-',
|
|
||||||
'fr' => 'Depuis %s',
|
|
||||||
'hu' => '%s-től',
|
|
||||||
'id' => 'Sejak %s',
|
|
||||||
'it' => 'Dal %s',
|
|
||||||
'ka' => '%s წლიდან',
|
|
||||||
'ko' => '%s부터',
|
|
||||||
'pl' => 'Od %s r.',
|
|
||||||
'pt' => '%s dC',
|
|
||||||
'ro' => 'Din %s',
|
|
||||||
'ru' => 'С %s г.',
|
|
||||||
'ta' => '%s முதல்',
|
|
||||||
'tl' => 'Mula noong %s',
|
|
||||||
'tr' => '%s-',
|
|
||||||
|
|
||||||
// Languages that don't really need a specific locale
|
|
||||||
'ja' => '%s以来',
|
|
||||||
'zh' => '自%s以來',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_AFTER_START_FORMAT_YEAR = [
|
|
||||||
'ar' => '%s-',
|
|
||||||
'de' => 'Nach %s',
|
|
||||||
'en' => 'After %s',
|
|
||||||
'es' => 'Despues de %s',
|
|
||||||
'fa' => '%s-',
|
|
||||||
'fr' => 'Après %s',
|
|
||||||
'hu' => '%s után',
|
|
||||||
'id' => 'Setelah %s',
|
|
||||||
'it' => 'Dopo il %s',
|
|
||||||
'ka' => '%s წლის შემდეგ',
|
|
||||||
'ko' => '%s 년 이후',
|
|
||||||
'pl' => 'Po %s r.',
|
|
||||||
'pt' => 'Depois de %s',
|
|
||||||
'ro' => 'După %s',
|
|
||||||
'ru' => 'после %s г.',
|
|
||||||
'ta' => '%s க்குப் பிறகு',
|
|
||||||
'tl' => 'Pagkaraan ng %s',
|
|
||||||
'tr' => '%s-',
|
|
||||||
|
|
||||||
// Languages that don't really need a specific locale
|
|
||||||
'ja' => '%s以降',
|
|
||||||
'zh' => '%s以后',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_UNTIL_START_FORMAT_YEAR = [
|
|
||||||
'ar' => '-%s',
|
|
||||||
'de' => 'Bis %s',
|
|
||||||
'en' => 'Until %s',
|
|
||||||
'es' => 'Hasta %s',
|
|
||||||
'fa' => '-%s',
|
|
||||||
'fr' => 'Jusqu\'en %s',
|
|
||||||
'hu' => '%s-ig',
|
|
||||||
'id' => 'Sampai %s',
|
|
||||||
'it' => 'Fino al %s',
|
|
||||||
'ka' => '%s წლამდე',
|
|
||||||
'ko' => '%s까지',
|
|
||||||
'pl' => 'do %s roku',
|
|
||||||
'pt' => 'até %s',
|
|
||||||
'ro' => 'până în %s',
|
|
||||||
'ru' => 'до %s г.',
|
|
||||||
'ta' => '%s வரை',
|
|
||||||
'tl' => 'Hanggang %s',
|
|
||||||
'tr' => '%s-',
|
|
||||||
|
|
||||||
// Languages that don't really need a specific locale
|
|
||||||
'ja' => '%sまで',
|
|
||||||
'zh' => '直到%s',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_BEFORE_START_FORMAT_YEAR = [
|
|
||||||
'ar' => '-%s',
|
|
||||||
'de' => 'Vor %s',
|
|
||||||
'en' => 'Before %s',
|
|
||||||
'es' => 'Antes de %s',
|
|
||||||
'fa' => '-%s',
|
|
||||||
'fr' => 'Avant %s',
|
|
||||||
'hu' => '%s előtt',
|
|
||||||
'id' => 'Sebelum %s',
|
|
||||||
'it' => 'Prima del %s',
|
|
||||||
'ka' => '%s წლამდე',
|
|
||||||
'ko' => '%s 년 이전',
|
|
||||||
'pl' => 'Przed %s',
|
|
||||||
'pt' => 'Antes de %s',
|
|
||||||
'ro' => 'înainte de %s',
|
|
||||||
'ru' => 'до %s г.',
|
|
||||||
'ta' => '%s க்கு முன்',
|
|
||||||
'tl' => 'Bago ang %s',
|
|
||||||
'tr' => '%s-',
|
|
||||||
|
|
||||||
// Languages that don't really need a specific locale
|
|
||||||
'ja' => '%s以前',
|
|
||||||
'zh' => '%s之前',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_CENTURY_FORMAT = [
|
|
||||||
'ar' => 'القرن ال %s',
|
|
||||||
'de' => '%s. Jahrhundert',
|
|
||||||
'en' => '%s. century',
|
|
||||||
'es' => 'Siglo %s',
|
|
||||||
'fa' => 'قرن %s',
|
|
||||||
'fr' => '%sème siècle',
|
|
||||||
'hu' => '%s. század',
|
|
||||||
'id' => 'Abad ke-%s',
|
|
||||||
'it' => '%sesimo secolo',
|
|
||||||
'ka' => 'მე -%s საუკუნე',
|
|
||||||
'ko' => '%s 세기',
|
|
||||||
'pl' => '%s wiek',
|
|
||||||
'pt' => 'Século %s',
|
|
||||||
'ro' => 'Secolul al %s-lea',
|
|
||||||
'ru' => '%s век',
|
|
||||||
'ta' => '%s ஆம் நூற்றாண்டு',
|
|
||||||
'tl' => 'Ika-%s na siglo',
|
|
||||||
'tr' => '%s. yüzyıl',
|
|
||||||
'ja' => '%s世紀',
|
|
||||||
'zh' => '%s世紀',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_CENTURIES_FORMAT = [
|
|
||||||
'ar' => 'القرن ال %s-%s',
|
|
||||||
'de' => '%s.-%s. Jahrhundert',
|
|
||||||
'en' => '%s.-%s. century',
|
|
||||||
'es' => 'Siglo %s-%s',
|
|
||||||
'fa' => 'قرن %s-%s',
|
|
||||||
'fr' => '%s-%sème siècle',
|
|
||||||
'hu' => '%s.-%s. század',
|
|
||||||
'id' => 'Abad ke-%s-%s',
|
|
||||||
'it' => '%s-%sesimo secolo',
|
|
||||||
'ka' => 'მე -%s-%s საუკუნე',
|
|
||||||
'ko' => '%s-%s 세기',
|
|
||||||
'pl' => '%s-%s wiek',
|
|
||||||
'pt' => 'Século %s-%s',
|
|
||||||
'ro' => 'Secolul al %s-%s-lea',
|
|
||||||
'ru' => '%s-%s век',
|
|
||||||
'ta' => '%s-%s ஆம் நூற்றாண்டு',
|
|
||||||
'tl' => 'Ika-%s hanggang ika-%s na siglo',
|
|
||||||
'tr' => '%s.-%s. yüzyıl',
|
|
||||||
'ja' => '%s世紀-%s世紀',
|
|
||||||
'zh' => '%s-%s世紀',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_DECADE_FORMAT = [
|
|
||||||
'ar' => '%s-%s',
|
|
||||||
'de' => '%ser Jahre',
|
|
||||||
'en' => '%ss',
|
|
||||||
'es' => '%s-%s',
|
|
||||||
'fa' => 'دهه %s',
|
|
||||||
'fr' => 'Années %s',
|
|
||||||
'hu' => '%s-as évek',
|
|
||||||
'id' => 'Tahun %s-an',
|
|
||||||
'it' => '%ss',
|
|
||||||
'ka' => '%s-იანი წლები',
|
|
||||||
'ko' => '%s 년대',
|
|
||||||
'pl' => '%s roku',
|
|
||||||
'pt' => 'Década de %s',
|
|
||||||
'ro' => 'Anii %s',
|
|
||||||
'ru' => '%s-е годы',
|
|
||||||
'ta' => '%s கள்',
|
|
||||||
'tl' => '%ss',
|
|
||||||
'tr' => '%s\'ler',
|
|
||||||
'ja' => '%s年代',
|
|
||||||
'zh' => '%s年代',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_DECADES_FORMAT = [
|
|
||||||
'ar' => '%s-%s',
|
|
||||||
'de' => '%s-%ser Jahre',
|
|
||||||
'en' => '%s-%ss',
|
|
||||||
'es' => '%s-%s',
|
|
||||||
'fa' => 'دهه %s-%s',
|
|
||||||
'fr' => 'Années %s-%s',
|
|
||||||
'hu' => '%s-%s-as évek',
|
|
||||||
'id' => 'Tahun %s-an sampai tahun %s-an',
|
|
||||||
'it' => '%s-%ss',
|
|
||||||
'ka' => '%s-%s-იანი წლები',
|
|
||||||
'ko' => '%s-%s 년대',
|
|
||||||
'pl' => '%s-%s roku',
|
|
||||||
'pt' => 'Décadas de %s-%s',
|
|
||||||
'ro' => 'Anii %s-%s',
|
|
||||||
'ru' => '%s-%s-е годы',
|
|
||||||
'ta' => '%s-%s கள்',
|
|
||||||
'tl' => '%s-%ss',
|
|
||||||
'tr' => '%s-%s\'ler',
|
|
||||||
'ja' => '%s年代から%s年代',
|
|
||||||
'zh' => '%s年代-%s年代',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LANGS_SYLLABLE_CLEANING = [
|
const LANGS_SYLLABLE_CLEANING = [
|
||||||
"hu" => [
|
"hu" => [
|
||||||
"10-as évek" => "10-es évek",
|
"10-as évek" => "10-es évek",
|
||||||
@ -307,21 +115,21 @@ final class NodaTimeAutotranslater {
|
|||||||
/**
|
/**
|
||||||
* Applies suffix format to a time string.
|
* Applies suffix format to a time string.
|
||||||
*
|
*
|
||||||
* @param string $tLang Two digit ANSI language code.
|
* @param NodaTimeAutotranslaterLocales $tLang Two digit ANSI language code.
|
||||||
* @param string $timeName Time name.
|
* @param string $timeName Time name.
|
||||||
* @param NodaTimeAutotranslaterSuffixMode $suffixMode Suffix mode.
|
* @param NodaTimeAutotranslaterSuffixMode $suffixMode Suffix mode.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function applyBcBceFormat(string $tLang, string $timeName, NodaTimeAutotranslaterSuffixMode $suffixMode):string {
|
private static function _applyBcBceFormat(NodaTimeAutotranslaterLocales $tLang, string $timeName, NodaTimeAutotranslaterSuffixMode $suffixMode):string {
|
||||||
|
|
||||||
switch ($suffixMode) {
|
switch ($suffixMode) {
|
||||||
case NodaTimeAutotranslaterSuffixMode::ANY:
|
case NodaTimeAutotranslaterSuffixMode::ANY:
|
||||||
return $timeName;
|
return $timeName;
|
||||||
case NodaTimeAutotranslaterSuffixMode::CE:
|
case NodaTimeAutotranslaterSuffixMode::CE:
|
||||||
return \sprintf(NodaTimeAutotranslaterLocales::fromString($tLang)->eraFormatCeForSprintf(), $timeName);
|
return \sprintf($tLang->eraFormatCeForSprintf(), $timeName);
|
||||||
case NodaTimeAutotranslaterSuffixMode::BCE:
|
case NodaTimeAutotranslaterSuffixMode::BCE:
|
||||||
return \sprintf(NodaTimeAutotranslaterLocales::fromString($tLang)->eraFormatBceForSprintf(), $timeName);
|
return \sprintf($tLang->eraFormatBceForSprintf(), $timeName);
|
||||||
default:
|
default:
|
||||||
throw new Exception("Unknown case encountered for time translations.");
|
throw new Exception("Unknown case encountered for time translations.");
|
||||||
}
|
}
|
||||||
@ -351,6 +159,8 @@ final class NodaTimeAutotranslater {
|
|||||||
|
|
||||||
$output = [];
|
$output = [];
|
||||||
$cases = NodaTimeAutotranslaterLocales::cases();
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
|
|
||||||
|
// TODO: Run gettranslations first, then loop
|
||||||
foreach ($cases as $tLang) {
|
foreach ($cases as $tLang) {
|
||||||
|
|
||||||
if ($suffixMode === NodaTimeAutotranslaterSuffixMode::BCE) {
|
if ($suffixMode === NodaTimeAutotranslaterSuffixMode::BCE) {
|
||||||
@ -371,7 +181,7 @@ final class NodaTimeAutotranslater {
|
|||||||
else $year = \sprintf($tLang->formatYearspanForSprintf(), (string)\abs($start), (string)\abs($end));
|
else $year = \sprintf($tLang->formatYearspanForSprintf(), (string)\abs($start), (string)\abs($end));
|
||||||
}
|
}
|
||||||
|
|
||||||
$output[$tLang->name] = self::applyBcBceFormat($tLang->name, $year, $suffixMode);
|
$output[$tLang->name] = self::_applyBcBceFormat($tLang, $year, $suffixMode);
|
||||||
|
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
@ -446,17 +256,17 @@ final class NodaTimeAutotranslater {
|
|||||||
|
|
||||||
$output = [];
|
$output = [];
|
||||||
|
|
||||||
if ($start_cen === $end_cen) {
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
foreach (self::LANGS_CENTURY_FORMAT as $tLang => $format) {
|
foreach ($cases as $tLang) {
|
||||||
$tLangValue = \sprintf($format, (string)\abs($start_cen));
|
|
||||||
$output[$tLang] = self::applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
if ($start_cen === $end_cen) {
|
||||||
|
$tLangValue = \sprintf($tLang->formatCenturyForSprintf(), (string)\abs($start_cen));
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
else {
|
$tLangValue = \sprintf($tLang->formatCenturiesForSprintf(), (string)\abs($start_cen), (string)\abs($end_cen));
|
||||||
foreach (self::LANGS_CENTURIES_FORMAT as $tLang => $format) {
|
|
||||||
$tLangValue = \sprintf($format, (string)\abs($start_cen), (string)\abs($end_cen));
|
|
||||||
$output[$tLang] = self::applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
|
||||||
}
|
}
|
||||||
|
$output[$tLang->name] = self::_applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
||||||
|
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
|
|
||||||
@ -480,20 +290,21 @@ final class NodaTimeAutotranslater {
|
|||||||
|
|
||||||
$output = [];
|
$output = [];
|
||||||
|
|
||||||
if ($start_cen === $end_cen - 9) {
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
foreach (self::LANGS_DECADE_FORMAT as $tLang => $format) {
|
foreach ($cases as $tLang) {
|
||||||
$tLangValue = \sprintf($format, (string)$start_cen, (string)$end_cen);
|
|
||||||
if (!empty(self::LANGS_SYLLABLE_CLEANING[$tLang])) $tLangValue = \strtr($tLangValue, self::LANGS_SYLLABLE_CLEANING[$tLang]);
|
if ($start_cen === $end_cen - 9) {
|
||||||
$output[$tLang] = self::applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
$tLangValue = \sprintf($tLang->formatDecadeForSprintf(), (string)$start_cen, (string)$end_cen);
|
||||||
|
if (!empty(self::LANGS_SYLLABLE_CLEANING[$tLang->name])) $tLangValue = \strtr($tLangValue, self::LANGS_SYLLABLE_CLEANING[$tLang->name]);
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
else {
|
$tLangValue = \sprintf($tLang->formatDecadesForSprintf(), (string)$start_cen, (string)($end_cen - 9));
|
||||||
foreach (self::LANGS_DECADES_FORMAT as $tLang => $format) {
|
if (!empty(self::LANGS_SYLLABLE_CLEANING[$tLang->name])) $tLangValue = \strtr($tLangValue, self::LANGS_SYLLABLE_CLEANING[$tLang->name]);
|
||||||
$tLangValue = \sprintf($format, (string)$start_cen, (string)($end_cen - 9));
|
|
||||||
if (!empty(self::LANGS_SYLLABLE_CLEANING[$tLang])) $tLangValue = \strtr($tLangValue, self::LANGS_SYLLABLE_CLEANING[$tLang]);
|
|
||||||
$output[$tLang] = self::applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
|
||||||
}
|
}
|
||||||
|
$output[$tLang->name] = self::_applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -515,12 +326,15 @@ final class NodaTimeAutotranslater {
|
|||||||
$innerTimeInfo['zeit_ende'] = $timeInfo['zeit_beginn'];
|
$innerTimeInfo['zeit_ende'] = $timeInfo['zeit_beginn'];
|
||||||
$output = [];
|
$output = [];
|
||||||
|
|
||||||
foreach (self::LANGS_AFTER_START_FORMAT_YEAR as $tLang => $format) {
|
$innerTls = self::getTranslations($innerTimeInfo);
|
||||||
|
|
||||||
$dateAlone = self::getTranslations($innerTimeInfo)[$tLang];
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
|
foreach ($cases as $tLang) {
|
||||||
|
|
||||||
$timeName = \sprintf($format, $dateAlone);
|
$dateAlone = $innerTls[$tLang->name];
|
||||||
$output[$tLang] = $timeName;
|
|
||||||
|
$timeName = \sprintf($tLang->formatYearsAfterStartForSprintf(), $dateAlone);
|
||||||
|
$output[$tLang->name] = $timeName;
|
||||||
|
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
@ -546,12 +360,15 @@ final class NodaTimeAutotranslater {
|
|||||||
$innerTimeInfo['zeit_ende'] = $timeInfo['zeit_beginn'];
|
$innerTimeInfo['zeit_ende'] = $timeInfo['zeit_beginn'];
|
||||||
$output = [];
|
$output = [];
|
||||||
|
|
||||||
foreach (self::LANGS_SINCE_START_FORMAT_YEAR as $tLang => $format) {
|
$innerTls = self::getTranslations($innerTimeInfo);
|
||||||
|
|
||||||
$dateAlone = self::getTranslations($innerTimeInfo)[$tLang];
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
|
foreach ($cases as $tLang) {
|
||||||
|
|
||||||
$timeName = \sprintf($format, $dateAlone);
|
$dateAlone = $innerTls[$tLang->name];
|
||||||
$output[$tLang] = $timeName;
|
|
||||||
|
$timeName = \sprintf($tLang->formatYearsSinceStartForSprintf(), $dateAlone);
|
||||||
|
$output[$tLang->name] = $timeName;
|
||||||
|
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
@ -576,12 +393,17 @@ final class NodaTimeAutotranslater {
|
|||||||
$innerTimeInfo['zeit_beginn'] = $timeInfo['zeit_ende'];
|
$innerTimeInfo['zeit_beginn'] = $timeInfo['zeit_ende'];
|
||||||
|
|
||||||
$output = [];
|
$output = [];
|
||||||
foreach (self::LANGS_BEFORE_START_FORMAT_YEAR as $tLang => $format) {
|
|
||||||
|
|
||||||
$dateAlone = self::getTranslations($innerTimeInfo)[$tLang];
|
$innerTls = self::getTranslations($innerTimeInfo);
|
||||||
|
|
||||||
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
|
foreach ($cases as $tLang) {
|
||||||
|
|
||||||
|
$dateAlone = $innerTls[$tLang->name];
|
||||||
|
|
||||||
|
$timeName = \sprintf($tLang->formatYearsBeforeStartForSprintf(), $dateAlone);
|
||||||
|
$output[$tLang->name] = $timeName;
|
||||||
|
|
||||||
$timeName = \sprintf($format, $dateAlone);
|
|
||||||
$output[$tLang] = $timeName;
|
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
|
|
||||||
@ -606,12 +428,16 @@ final class NodaTimeAutotranslater {
|
|||||||
$innerTimeInfo['zeit_beginn'] = $timeInfo['zeit_ende'];
|
$innerTimeInfo['zeit_beginn'] = $timeInfo['zeit_ende'];
|
||||||
|
|
||||||
$output = [];
|
$output = [];
|
||||||
foreach (self::LANGS_UNTIL_START_FORMAT_YEAR as $tLang => $format) {
|
|
||||||
|
|
||||||
$dateAlone = self::getTranslations($innerTimeInfo)[$tLang];
|
$innerTls = self::getTranslations($innerTimeInfo);
|
||||||
|
|
||||||
$timeName = \sprintf($format, $dateAlone);
|
$cases = NodaTimeAutotranslaterLocales::cases();
|
||||||
$output[$tLang] = $timeName;
|
foreach ($cases as $tLang) {
|
||||||
|
|
||||||
|
$dateAlone = $innerTls[$tLang->name];
|
||||||
|
|
||||||
|
$timeName = \sprintf($tLang->formatYearsUntilStartForSprintf(), $dateAlone);
|
||||||
|
$output[$tLang->name] = $timeName;
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
|
|
||||||
@ -743,7 +569,7 @@ final class NodaTimeAutotranslater {
|
|||||||
);
|
);
|
||||||
if (($tLangValue = $fmt->format($dateGeneral)) === false) continue;
|
if (($tLangValue = $fmt->format($dateGeneral)) === false) continue;
|
||||||
|
|
||||||
$output[$tLang->name] = self::applyBcBceFormat($tLang->name, $tLangValue, $suffixMode);
|
$output[$tLang->name] = self::_applyBcBceFormat($tLang, $tLangValue, $suffixMode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,6 +260,275 @@ enum NodaTimeAutotranslaterLocales {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a timespan since a start year.
|
||||||
|
* Expects to be used as a format for sprintf.
|
||||||
|
* Example use case: Since 1921.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatYearsSinceStartForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '%s-',
|
||||||
|
self::de => 'Seit %s',
|
||||||
|
self::en => 'Since %s',
|
||||||
|
self::es => 'Desde %s',
|
||||||
|
self::fa => '%s-',
|
||||||
|
self::fr => 'Depuis %s',
|
||||||
|
self::hu => '%s-től',
|
||||||
|
self::id => 'Sejak %s',
|
||||||
|
self::it => 'Dal %s',
|
||||||
|
self::ka => '%s წლიდან',
|
||||||
|
self::ko => '%s부터',
|
||||||
|
self::pl => 'Od %s r.',
|
||||||
|
self::pt => '%s dC',
|
||||||
|
self::ro => 'Din %s',
|
||||||
|
self::ru => 'С %s г.',
|
||||||
|
self::ta => '%s முதல்',
|
||||||
|
self::tl => 'Mula noong %s',
|
||||||
|
self::tr => '%s-',
|
||||||
|
|
||||||
|
self::ja => '%s以来',
|
||||||
|
self::zh => '自%s以來',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a timespan after a start year.
|
||||||
|
* Expects to be used as a format for sprintf.
|
||||||
|
* Example use case: After 1921.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatYearsAfterStartForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '%s-',
|
||||||
|
self::de => 'Nach %s',
|
||||||
|
self::en => 'After %s',
|
||||||
|
self::es => 'Despues de %s',
|
||||||
|
self::fa => '%s-',
|
||||||
|
self::fr => 'Après %s',
|
||||||
|
self::hu => '%s után',
|
||||||
|
self::id => 'Setelah %s',
|
||||||
|
self::it => 'Dopo il %s',
|
||||||
|
self::ka => '%s წლის შემდეგ',
|
||||||
|
self::ko => '%s 년 이후',
|
||||||
|
self::pl => 'Po %s r.',
|
||||||
|
self::pt => 'Depois de %s',
|
||||||
|
self::ro => 'După %s',
|
||||||
|
self::ru => 'после %s г.',
|
||||||
|
self::ta => '%s க்குப் பிறகு',
|
||||||
|
self::tl => 'Pagkaraan ng %s',
|
||||||
|
self::tr => '%s-',
|
||||||
|
self::ja => '%s以降',
|
||||||
|
self::zh => '%s以后',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a timespan until an end year.
|
||||||
|
* Expects to be used as a format for sprintf.
|
||||||
|
* Example use case: Until 1921.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatYearsUntilStartForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '-%s',
|
||||||
|
self::de => 'Bis %s',
|
||||||
|
self::en => 'Until %s',
|
||||||
|
self::es => 'Hasta %s',
|
||||||
|
self::fa => '-%s',
|
||||||
|
self::fr => 'Jusqu\'en %s',
|
||||||
|
self::hu => '%s-ig',
|
||||||
|
self::id => 'Sampai %s',
|
||||||
|
self::it => 'Fino al %s',
|
||||||
|
self::ka => '%s წლამდე',
|
||||||
|
self::ko => '%s까지',
|
||||||
|
self::pl => 'do %s roku',
|
||||||
|
self::pt => 'até %s',
|
||||||
|
self::ro => 'până în %s',
|
||||||
|
self::ru => 'до %s г.',
|
||||||
|
self::ta => '%s வரை',
|
||||||
|
self::tl => 'Hanggang %s',
|
||||||
|
self::tr => '%s-',
|
||||||
|
self::ja => '%sまで',
|
||||||
|
self::zh => '直到%s',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a century name.
|
||||||
|
* Example use case: 19th century.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatCenturyForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => 'القرن ال %s',
|
||||||
|
self::de => '%s. Jahrhundert',
|
||||||
|
self::en => '%s. century',
|
||||||
|
self::es => 'Siglo %s',
|
||||||
|
self::fa => 'قرن %s',
|
||||||
|
self::fr => '%sème siècle',
|
||||||
|
self::hu => '%s. század',
|
||||||
|
self::id => 'Abad ke-%s',
|
||||||
|
self::it => '%sesimo secolo',
|
||||||
|
self::ka => 'მე -%s საუკუნე',
|
||||||
|
self::ko => '%s 세기',
|
||||||
|
self::pl => '%s wiek',
|
||||||
|
self::pt => 'Século %s',
|
||||||
|
self::ro => 'Secolul al %s-lea',
|
||||||
|
self::ru => '%s век',
|
||||||
|
self::ta => '%s ஆம் நூற்றாண்டு',
|
||||||
|
self::tl => 'Ika-%s na siglo',
|
||||||
|
self::tr => '%s. yüzyıl',
|
||||||
|
self::ja => '%s世紀',
|
||||||
|
self::zh => '%s世紀',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a name spanning multiple centuries.
|
||||||
|
* Example use case: 19th-20th centuries.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatCenturiesForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => 'القرن ال %s-%s',
|
||||||
|
self::de => '%s.-%s. Jahrhundert',
|
||||||
|
self::en => '%s.-%s. century',
|
||||||
|
self::es => 'Siglo %s-%s',
|
||||||
|
self::fa => 'قرن %s-%s',
|
||||||
|
self::fr => '%s-%sème siècle',
|
||||||
|
self::hu => '%s.-%s. század',
|
||||||
|
self::id => 'Abad ke-%s-%s',
|
||||||
|
self::it => '%s-%sesimo secolo',
|
||||||
|
self::ka => 'მე -%s-%s საუკუნე',
|
||||||
|
self::ko => '%s-%s 세기',
|
||||||
|
self::pl => '%s-%s wiek',
|
||||||
|
self::pt => 'Século %s-%s',
|
||||||
|
self::ro => 'Secolul al %s-%s-lea',
|
||||||
|
self::ru => '%s-%s век',
|
||||||
|
self::ta => '%s-%s ஆம் நூற்றாண்டு',
|
||||||
|
self::tl => 'Ika-%s hanggang ika-%s na siglo',
|
||||||
|
self::tr => '%s.-%s. yüzyıl',
|
||||||
|
self::ja => '%s世紀-%s世紀',
|
||||||
|
self::zh => '%s-%s世紀',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a name spanning a single decade.
|
||||||
|
* Example use case: 1920s.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatDecadeForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '%s-%s',
|
||||||
|
self::de => '%ser Jahre',
|
||||||
|
self::en => '%ss',
|
||||||
|
self::es => '%s-%s',
|
||||||
|
self::fa => 'دهه %s',
|
||||||
|
self::fr => 'Années %s',
|
||||||
|
self::hu => '%s-as évek',
|
||||||
|
self::id => 'Tahun %s-an',
|
||||||
|
self::it => '%ss',
|
||||||
|
self::ka => '%s-იანი წლები',
|
||||||
|
self::ko => '%s 년대',
|
||||||
|
self::pl => '%s roku',
|
||||||
|
self::pt => 'Década de %s',
|
||||||
|
self::ro => 'Anii %s',
|
||||||
|
self::ru => '%s-е годы',
|
||||||
|
self::ta => '%s கள்',
|
||||||
|
self::tl => '%ss',
|
||||||
|
self::tr => '%s\'ler',
|
||||||
|
self::ja => '%s年代',
|
||||||
|
self::zh => '%s年代',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a name spanning a some decades.
|
||||||
|
* Example use case: 1920s-1930s.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatDecadesForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '%s-%s',
|
||||||
|
self::de => '%s-%ser Jahre',
|
||||||
|
self::en => '%s-%ss',
|
||||||
|
self::es => '%s-%s',
|
||||||
|
self::fa => 'دهه %s-%s',
|
||||||
|
self::fr => 'Années %s-%s',
|
||||||
|
self::hu => '%s-%s-as évek',
|
||||||
|
self::id => 'Tahun %s-an sampai tahun %s-an',
|
||||||
|
self::it => '%s-%ss',
|
||||||
|
self::ka => '%s-%s-იანი წლები',
|
||||||
|
self::ko => '%s-%s 년대',
|
||||||
|
self::pl => '%s-%s roku',
|
||||||
|
self::pt => 'Décadas de %s-%s',
|
||||||
|
self::ro => 'Anii %s-%s',
|
||||||
|
self::ru => '%s-%s-е годы',
|
||||||
|
self::ta => '%s-%s கள்',
|
||||||
|
self::tl => '%s-%ss',
|
||||||
|
self::tr => '%s-%s\'ler',
|
||||||
|
self::ja => '%s年代から%s年代',
|
||||||
|
self::zh => '%s年代-%s年代',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the appropriate format for a timespan before an end year.
|
||||||
|
* Expects to be used as a format for sprintf.
|
||||||
|
* Example use case: Before 1921.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function formatYearsBeforeStartForSprintf():string {
|
||||||
|
|
||||||
|
return match($this) {
|
||||||
|
self::ar => '-%s',
|
||||||
|
self::de => 'Vor %s',
|
||||||
|
self::en => 'Before %s',
|
||||||
|
self::es => 'Antes de %s',
|
||||||
|
self::fa => '-%s',
|
||||||
|
self::fr => 'Avant %s',
|
||||||
|
self::hu => '%s előtt',
|
||||||
|
self::id => 'Sebelum %s',
|
||||||
|
self::it => 'Prima del %s',
|
||||||
|
self::ka => '%s წლამდე',
|
||||||
|
self::ko => '%s 년 이전',
|
||||||
|
self::pl => 'Przed %s',
|
||||||
|
self::pt => 'Antes de %s',
|
||||||
|
self::ro => 'înainte de %s',
|
||||||
|
self::ru => 'до %s г.',
|
||||||
|
self::ta => '%s க்கு முன்',
|
||||||
|
self::tl => 'Bago ang %s',
|
||||||
|
self::tr => '%s-',
|
||||||
|
self::ja => '%s以前',
|
||||||
|
self::zh => '%s之前',
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the appropriate format for formatting a full date (Y-m-d) in a given language
|
* Returns the appropriate format for formatting a full date (Y-m-d) in a given language
|
||||||
* using strftime.
|
* using strftime.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user