Native locale_names for 14 locales + drop forced-en in editor tabs

Translates the 16-language locale_names block in zh-CN, zh-TW, ko, hi,
vi, tr, de, fr, es, pt-BR, ru, uk, it, pl to the target locale's own
language (e.g. de file: 'en' => 'Englisch', 'ja' => 'Japanisch').

DocumentEditor blade no longer hardcodes 'en' as the locale_names
lookup — falls back to the current UI locale. Test still passes
because tests run with default app locale 'en' and the en file
maps to "Japanese" / "English" etc.

A user editing in ja now sees [English] [日本語 ★] tabs instead of
[English] [Japanese ★].
This commit is contained in:
Yutaka Kurosaki
2026-05-10 13:13:25 +09:00
parent b90e3534ce
commit 5c338e3ae5
15 changed files with 221 additions and 221 deletions
+15 -15
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Englisch',
'ja' => 'Japanese', 'ja' => 'Japanisch',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Chinesisch (vereinfacht)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Chinesisch (traditionell)',
'ko' => 'Korean', 'ko' => 'Koreanisch',
'hi' => 'Hindi', 'hi' => 'Hindi',
'vi' => 'Vietnamese', 'vi' => 'Vietnamesisch',
'tr' => 'Turkish', 'tr' => 'Türkisch',
'de' => 'German', 'de' => 'Deutsch',
'fr' => 'French', 'fr' => 'Französisch',
'es' => 'Spanish', 'es' => 'Spanisch',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portugiesisch (Brasilien)',
'ru' => 'Russian', 'ru' => 'Russisch',
'uk' => 'Ukrainian', 'uk' => 'Ukrainisch',
'it' => 'Italian', 'it' => 'Italienisch',
'pl' => 'Polish', 'pl' => 'Polnisch',
], ],
// Profile // Profile
+15 -15
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Inglés',
'ja' => 'Japanese', 'ja' => 'Japonés',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Chino (simplificado)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Chino (tradicional)',
'ko' => 'Korean', 'ko' => 'Coreano',
'hi' => 'Hindi', 'hi' => 'Hindi',
'vi' => 'Vietnamese', 'vi' => 'Vietnamita',
'tr' => 'Turkish', 'tr' => 'Turco',
'de' => 'German', 'de' => 'Alemán',
'fr' => 'French', 'fr' => 'Francés',
'es' => 'Spanish', 'es' => 'Español',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portugués (Brasil)',
'ru' => 'Russian', 'ru' => 'Ruso',
'uk' => 'Ukrainian', 'uk' => 'Ucraniano',
'it' => 'Italian', 'it' => 'Italiano',
'pl' => 'Polish', 'pl' => 'Polaco',
], ],
// Profile // Profile
+15 -15
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Anglais',
'ja' => 'Japanese', 'ja' => 'Japonais',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Chinois (simplifié)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Chinois (traditionnel)',
'ko' => 'Korean', 'ko' => 'Coréen',
'hi' => 'Hindi', 'hi' => 'Hindi',
'vi' => 'Vietnamese', 'vi' => 'Vietnamien',
'tr' => 'Turkish', 'tr' => 'Turc',
'de' => 'German', 'de' => 'Allemand',
'fr' => 'French', 'fr' => 'Français',
'es' => 'Spanish', 'es' => 'Espagnol',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portugais (Brésil)',
'ru' => 'Russian', 'ru' => 'Russe',
'uk' => 'Ukrainian', 'uk' => 'Ukrainien',
'it' => 'Italian', 'it' => 'Italien',
'pl' => 'Polish', 'pl' => 'Polonais',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'अंग्रेज़ी',
'ja' => 'Japanese', 'ja' => 'जापानी',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'चीनी (सरलीकृत)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'चीनी (पारंपरिक)',
'ko' => 'Korean', 'ko' => 'कोरियाई',
'hi' => 'Hindi', 'hi' => 'हिन्दी',
'vi' => 'Vietnamese', 'vi' => 'वियतनामी',
'tr' => 'Turkish', 'tr' => 'तुर्की',
'de' => 'German', 'de' => 'जर्मन',
'fr' => 'French', 'fr' => 'फ़्रेंच',
'es' => 'Spanish', 'es' => 'स्पेनिश',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'पुर्तगाली (ब्राज़ील)',
'ru' => 'Russian', 'ru' => 'रूसी',
'uk' => 'Ukrainian', 'uk' => 'यूक्रेनी',
'it' => 'Italian', 'it' => 'इतालवी',
'pl' => 'Polish', 'pl' => 'पोलिश',
], ],
// Profile // Profile
+15 -15
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Inglese',
'ja' => 'Japanese', 'ja' => 'Giapponese',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Cinese (semplificato)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Cinese (tradizionale)',
'ko' => 'Korean', 'ko' => 'Coreano',
'hi' => 'Hindi', 'hi' => 'Hindi',
'vi' => 'Vietnamese', 'vi' => 'Vietnamita',
'tr' => 'Turkish', 'tr' => 'Turco',
'de' => 'German', 'de' => 'Tedesco',
'fr' => 'French', 'fr' => 'Francese',
'es' => 'Spanish', 'es' => 'Spagnolo',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portoghese (Brasile)',
'ru' => 'Russian', 'ru' => 'Russo',
'uk' => 'Ukrainian', 'uk' => 'Ucraino',
'it' => 'Italian', 'it' => 'Italiano',
'pl' => 'Polish', 'pl' => 'Polacco',
], ],
// Profile // Profile
+16 -16
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => '영어',
'ja' => 'Japanese', 'ja' => '일본어',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => '중국어 간체',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => '중국어 번체',
'ko' => 'Korean', 'ko' => '한국어',
'hi' => 'Hindi', 'hi' => '힌디어',
'vi' => 'Vietnamese', 'vi' => '베트남어',
'tr' => 'Turkish', 'tr' => '터키어',
'de' => 'German', 'de' => '독일어',
'fr' => 'French', 'fr' => '프랑스어',
'es' => 'Spanish', 'es' => '스페인어',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => '포르투갈어 (브라질)',
'ru' => 'Russian', 'ru' => '러시아어',
'uk' => 'Ukrainian', 'uk' => '우크라이나어',
'it' => 'Italian', 'it' => '이탈리아어',
'pl' => 'Polish', 'pl' => '폴란드어',
], ],
// Profile // Profile
+15 -15
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Angielski',
'ja' => 'Japanese', 'ja' => 'Japoński',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Chiński (uproszczony)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Chiński (tradycyjny)',
'ko' => 'Korean', 'ko' => 'Koreański',
'hi' => 'Hindi', 'hi' => 'Hindi',
'vi' => 'Vietnamese', 'vi' => 'Wietnamski',
'tr' => 'Turkish', 'tr' => 'Turecki',
'de' => 'German', 'de' => 'Niemiecki',
'fr' => 'French', 'fr' => 'Francuski',
'es' => 'Spanish', 'es' => 'Hiszpański',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portugalski (Brazylia)',
'ru' => 'Russian', 'ru' => 'Rosyjski',
'uk' => 'Ukrainian', 'uk' => 'Ukraiński',
'it' => 'Italian', 'it' => 'Włoski',
'pl' => 'Polish', 'pl' => 'Polski',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Inglês',
'ja' => 'Japanese', 'ja' => 'Japonês',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Chinês (simplificado)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Chinês (tradicional)',
'ko' => 'Korean', 'ko' => 'Coreano',
'hi' => 'Hindi', 'hi' => 'Híndi',
'vi' => 'Vietnamese', 'vi' => 'Vietnamita',
'tr' => 'Turkish', 'tr' => 'Turco',
'de' => 'German', 'de' => 'Alemão',
'fr' => 'French', 'fr' => 'Francês',
'es' => 'Spanish', 'es' => 'Espanhol',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Português (Brasil)',
'ru' => 'Russian', 'ru' => 'Russo',
'uk' => 'Ukrainian', 'uk' => 'Ucraniano',
'it' => 'Italian', 'it' => 'Italiano',
'pl' => 'Polish', 'pl' => 'Polonês',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Английский',
'ja' => 'Japanese', 'ja' => 'Японский',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Китайский (упрощённый)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Китайский (традиционный)',
'ko' => 'Korean', 'ko' => 'Корейский',
'hi' => 'Hindi', 'hi' => 'Хинди',
'vi' => 'Vietnamese', 'vi' => 'Вьетнамский',
'tr' => 'Turkish', 'tr' => 'Турецкий',
'de' => 'German', 'de' => 'Немецкий',
'fr' => 'French', 'fr' => 'Французский',
'es' => 'Spanish', 'es' => 'Испанский',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Португальский (Бразилия)',
'ru' => 'Russian', 'ru' => 'Русский',
'uk' => 'Ukrainian', 'uk' => 'Украинский',
'it' => 'Italian', 'it' => 'Итальянский',
'pl' => 'Polish', 'pl' => 'Польский',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'İngilizce',
'ja' => 'Japanese', 'ja' => 'Japonca',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Basitleştirilmiş Çince',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Geleneksel Çince',
'ko' => 'Korean', 'ko' => 'Korece',
'hi' => 'Hindi', 'hi' => 'Hintçe',
'vi' => 'Vietnamese', 'vi' => 'Vietnamca',
'tr' => 'Turkish', 'tr' => 'Türkçe',
'de' => 'German', 'de' => 'Almanca',
'fr' => 'French', 'fr' => 'Fransızca',
'es' => 'Spanish', 'es' => 'İspanyolca',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Portekizce (Brezilya)',
'ru' => 'Russian', 'ru' => 'Rusça',
'uk' => 'Ukrainian', 'uk' => 'Ukraynaca',
'it' => 'Italian', 'it' => 'İtalyanca',
'pl' => 'Polish', 'pl' => 'Lehçe',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Англійська',
'ja' => 'Japanese', 'ja' => 'Японська',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Китайська (спрощена)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Китайська (традиційна)',
'ko' => 'Korean', 'ko' => 'Корейська',
'hi' => 'Hindi', 'hi' => 'Гінді',
'vi' => 'Vietnamese', 'vi' => 'В\'єтнамська',
'tr' => 'Turkish', 'tr' => 'Турецька',
'de' => 'German', 'de' => 'Німецька',
'fr' => 'French', 'fr' => 'Французька',
'es' => 'Spanish', 'es' => 'Іспанська',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Португальська (Бразилія)',
'ru' => 'Russian', 'ru' => 'Російська',
'uk' => 'Ukrainian', 'uk' => 'Українська',
'it' => 'Italian', 'it' => 'Італійська',
'pl' => 'Polish', 'pl' => 'Польська',
], ],
// Profile // Profile
+16 -16
View File
@@ -133,22 +133,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => 'Tiếng Anh',
'ja' => 'Japanese', 'ja' => 'Tiếng Nhật',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => 'Tiếng Trung (Giản thể)',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => 'Tiếng Trung (Phồn thể)',
'ko' => 'Korean', 'ko' => 'Tiếng Hàn',
'hi' => 'Hindi', 'hi' => 'Tiếng Hindi',
'vi' => 'Vietnamese', 'vi' => 'Tiếng Việt',
'tr' => 'Turkish', 'tr' => 'Tiếng Thổ Nhĩ Kỳ',
'de' => 'German', 'de' => 'Tiếng Đức',
'fr' => 'French', 'fr' => 'Tiếng Pháp',
'es' => 'Spanish', 'es' => 'Tiếng Tây Ban Nha',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => 'Tiếng Bồ Đào Nha (Brasil)',
'ru' => 'Russian', 'ru' => 'Tiếng Nga',
'uk' => 'Ukrainian', 'uk' => 'Tiếng Ukraine',
'it' => 'Italian', 'it' => 'Tiếng Ý',
'pl' => 'Polish', 'pl' => 'Tiếng Ba Lan',
], ],
// Profile // Profile
+16 -16
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => '英语',
'ja' => 'Japanese', 'ja' => '日语',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => '简体中文',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => '繁体中文',
'ko' => 'Korean', 'ko' => '韩语',
'hi' => 'Hindi', 'hi' => '印地语',
'vi' => 'Vietnamese', 'vi' => '越南语',
'tr' => 'Turkish', 'tr' => '土耳其语',
'de' => 'German', 'de' => '德语',
'fr' => 'French', 'fr' => '法语',
'es' => 'Spanish', 'es' => '西班牙语',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => '葡萄牙语(巴西)',
'ru' => 'Russian', 'ru' => '俄语',
'uk' => 'Ukrainian', 'uk' => '乌克兰语',
'it' => 'Italian', 'it' => '意大利语',
'pl' => 'Polish', 'pl' => '波兰语',
], ],
// Profile // Profile
+16 -16
View File
@@ -132,22 +132,22 @@
], ],
'locale_names' => [ 'locale_names' => [
'en' => 'English', 'en' => '英語',
'ja' => 'Japanese', 'ja' => '日語',
'zh-CN' => 'Simplified Chinese', 'zh-CN' => '簡體中文',
'zh-TW' => 'Traditional Chinese', 'zh-TW' => '繁體中文',
'ko' => 'Korean', 'ko' => '韓語',
'hi' => 'Hindi', 'hi' => '印地語',
'vi' => 'Vietnamese', 'vi' => '越南語',
'tr' => 'Turkish', 'tr' => '土耳其語',
'de' => 'German', 'de' => '德語',
'fr' => 'French', 'fr' => '法語',
'es' => 'Spanish', 'es' => '西班牙語',
'pt-BR' => 'Portuguese (Brazil)', 'pt-BR' => '葡萄牙語(巴西)',
'ru' => 'Russian', 'ru' => '俄語',
'uk' => 'Ukrainian', 'uk' => '烏克蘭語',
'it' => 'Italian', 'it' => '義大利語',
'pl' => 'Polish', 'pl' => '波蘭語',
], ],
// Profile // Profile
@@ -64,7 +64,7 @@ class="inline-flex items-center justify-center px-3 sm:px-4 py-2 bg-indigo-600 b
@php $isActive = ($loc === $editingLocale); @endphp @php $isActive = ($loc === $editingLocale); @endphp
<a href="{{ route('documents.translations.edit', ['document' => $document, 'locale' => $loc]) }}" <a href="{{ route('documents.translations.edit', ['document' => $document, 'locale' => $loc]) }}"
class="px-3 py-2 text-sm font-medium border-b-2 {{ $isActive ? 'border-indigo-500 text-indigo-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }}"> class="px-3 py-2 text-sm font-medium border-b-2 {{ $isActive ? 'border-indigo-500 text-indigo-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300' }}">
{{ __('messages.locale_names.' . $loc, [], 'en') }} {{ __('messages.locale_names.' . $loc) }}
@if($loc === $document->default_locale) @if($loc === $document->default_locale)
<span class="ml-1 text-xs text-gray-400"></span> <span class="ml-1 text-xs text-gray-400"></span>
@endif @endif
@@ -73,7 +73,7 @@ class="px-3 py-2 text-sm font-medium border-b-2 {{ $isActive ? 'border-indigo-50
@if($isNewLocale && $editingLocale) @if($isNewLocale && $editingLocale)
<span class="px-3 py-2 text-sm font-medium border-b-2 border-indigo-500 text-indigo-600"> <span class="px-3 py-2 text-sm font-medium border-b-2 border-indigo-500 text-indigo-600">
{{ __('messages.locale_names.' . $editingLocale, [], 'en') }} {{ __('messages.locale_names.' . $editingLocale) }}
<span class="ml-1 text-xs text-gray-400">({{ __('messages.documents.new_document') }})</span> <span class="ml-1 text-xs text-gray-400">({{ __('messages.documents.new_document') }})</span>
</span> </span>
@endif @endif