summaryrefslogtreecommitdiffstats
path: root/desktop
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-12-19 12:24:31 +0100
committerEike Rathke <erack@redhat.com>2013-12-19 12:30:30 +0100
commit03e7a16fe2802160b8344058f225a57bdb9c59f5 (patch)
tree042a43f5b536003bd24d5f46ff04b6348e9fa9b9 /desktop
parentoox: import drawingml border color for TextFrames (diff)
downloadcore-03e7a16fe2802160b8344058f225a57bdb9c59f5.tar.gz
core-03e7a16fe2802160b8344058f225a57bdb9c59f5.zip
use proper LanguageTag fallback instead of dumb startsWith(), fdo#68714
A ca_ES@valencia (=> ca-ES-valencia) locale did not result in 'ca-valencia' UI being selected but 'ca' only instead. Change-Id: Ifa405add2ff7b45e030b02af4338de195b457cb2
Diffstat (limited to 'desktop')
-rw-r--r--desktop/source/app/langselect.cxx13
1 files changed, 4 insertions, 9 deletions
diff --git a/desktop/source/app/langselect.cxx b/desktop/source/app/langselect.cxx
index 49d001a087dc..291e70822222 100644
--- a/desktop/source/app/langselect.cxx
+++ b/desktop/source/app/langselect.cxx
@@ -58,20 +58,15 @@ OUString getInstalledLocale(
return installed[i];
}
}
- // FIXME: It is not very clever to handle the zh-HK -> zh-TW fallback here,
- // but right now, there is no place that handles those fallbacks globally:
- if (locale == "zh-HK") {
+ ::std::vector<OUString> fallbacks( LanguageTag( locale).getFallbackStrings( false));
+ for (size_t f=0; f < fallbacks.size(); ++f) {
+ const OUString& rf = fallbacks[f];
for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
- if (installed[i] == "zh-TW") {
+ if (installed[i] == rf) {
return installed[i];
}
}
}
- for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
- if (locale.startsWith(installed[i])) {
- return installed[i];
- }
- }
return OUString();
}