Use locale_get_display_name for language labels

locale_get_display_language reads only the language subtag and ignores
the region, so zh-cn and zh-tw both rendered as 'Chinese - 中文'.
Switching to locale_get_display_name disambiguates region variants
(Chinese (China) / Chinese (Taiwan)) while leaving all region-less
locales unchanged.

Updated the settings language dropdown and the /i/lang picker.
pull/7263/head
Your Name 1 week ago
parent 0f10ec0a47
commit f4dbddd8b5

@ -70,7 +70,7 @@
<div class="col-sm-9">
<select class="form-control" name="language">
@foreach(App\Util\Localization\Localization::languages() as $lang)
<option value="{{$lang}}" {{(Auth::user()->language ?? 'en') == $lang ? 'selected':''}}>{{locale_get_display_language($lang, 'en')}} - {{locale_get_display_language($lang, $lang)}}</option>
<option value="{{$lang}}" {{(Auth::user()->language ?? 'en') == $lang ? 'selected':''}}>{{locale_get_display_name($lang, 'en')}} - {{locale_get_display_name($lang, $lang)}}</option>
@endforeach
</select>
</div>

@ -10,8 +10,8 @@
@foreach(App\Util\Localization\Localization::languages() as $lang)
<div class="col-12 col-md-4 mb-2">
<a href="/i/lang/{{$lang}}" class="{{$current == $lang ? 'font-weight-bold text-primary' : 'text-muted'}} pr-3 b-3">
{{locale_get_display_language($lang, $lang)}}
<span class="small text-lighter">({{locale_get_display_language($lang, 'en')}})</span>
{{locale_get_display_name($lang, $lang)}}
<span class="small text-lighter">({{locale_get_display_name($lang, 'en')}})</span>
</a>
</div>
@endforeach

Loading…
Cancel
Save