add lang de/pl/pt/ro/ru/sv

This commit is contained in:
xiaomlove
2025-04-22 19:35:05 +07:00
parent ca33cbacfe
commit 2b970305a5
940 changed files with 48796 additions and 1 deletions

View File

@@ -76,6 +76,19 @@ class CrowdinSync extends Command
protected array $languages;
/**
* laravel-lang to crowdin map
* some is not the same
* --lang option use laravel-lang style
*
* @var array|string[]
*/
protected array $customMap = [
'pt' => 'pt-PT',
'es' => 'es-ES',
'sv' => 'sv-SE',
];
/**
* Execute the console command.
*/
@@ -419,6 +432,10 @@ class CrowdinSync extends Command
$this->warn("skip extra to lang code: {$langCode} due to not in specified language code.");
continue;
}
$customMap = array_flip($this->customMap);
if (isset($customMap[$langCode])) {
$langCode = $customMap[$langCode];
}
//use underline
$targetDir = "{$this->translationsDir}/" . str_replace("-", "_", $langCode);
$this->info("Moving translations to {$targetDir}");
@@ -489,6 +506,9 @@ class CrowdinSync extends Command
{
$engineInfo = $this->getMachineTranslationEngine();
$languages = array_intersect($targetLanguages, $engineInfo['supportedLanguageIds']);
if (empty($languages)) {
throw new \RuntimeException('No languages available, target: ' . json_encode($targetLanguages) . ', supported: ' . json_encode($engineInfo['supportedLanguageIds']));
}
$params = [
'languageIds' => $languages,
'fileIds' => $fileIds,
@@ -518,7 +538,7 @@ class CrowdinSync extends Command
protected function wait(callable $callback)
{
$maxAttempts = 20;
$maxAttempts = 60;
$attempt = 0;
$isDone = false;
while (!$isDone && $attempt < $maxAttempts) {
@@ -554,6 +574,9 @@ class CrowdinSync extends Command
if (empty(trim($language))) {
continue;
}
if (isset($this->customMap[$language])) {
$language = $this->customMap[$language];
}
//crowdin use -
$result[] = str_replace('_', '-', $language);
}

View File

@@ -60,6 +60,51 @@ class Language extends NexusModel
'lang_name_cn' => '法语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'de' => [
'lang_name' => 'German',
'lang_name_cn' => '德语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'el' => [
'lang_name' => 'Greek',
'lang_name_cn' => '希腊语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'nb' => [
'lang_name' => 'Norwegian',
'lang_name_cn' => '挪威语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'pl' => [
'lang_name' => 'Polish',
'lang_name_cn' => '波兰语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'pt' => [
'lang_name' => 'Portuguese',
'lang_name_cn' => '葡萄牙语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'ro' => [
'lang_name' => 'Romanian',
'lang_name_cn' => '罗马尼亚语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'ru' => [
'lang_name' => 'Russian',
'lang_name_cn' => '俄语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'es' => [
'lang_name' => 'Spanish',
'lang_name_cn' => '西班牙语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
'sv' => [
'lang_name' => 'Swedish',
'lang_name_cn' => '瑞典语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
],
];
protected $table = 'language';