wbauer created this revision.
wbauer added a reviewer: Frameworks.
wbauer added a project: Frameworks.
Restricted Application added a project: Build System.
Restricted Application added a subscriber: Build System.
wbauer requested review of this revision.

REVISION SUMMARY
  For locales like de_AT, the current code only looks in share/locale/de_AT/ 
and share/locale/de-AT/ for translation catalogs, but not in share/locale/de/ 
where they most likely are.
  That's because bcp47Name() returns "de-AT" for de_AT (though in the case of 
de_DE e.g. it does return "de").
  
  This patch instead tries to fall back to the general language by taking the 
part of the locale name before the first '_'.

TEST PLAN
  Rebuilt kwidgetsaddons with this change.
  Unset $LANGUAGE (if set) and set $LANG=de_AT.UTF-8 (or set $LANGUAGE=de_AT in 
the first place)
  Ran systemsettings5 and enter some module.
  
  Without this patch the Help/Default/Reset/Apply buttons are untranslated 
because the kwidgetsaddons translations are not loaded (according to strace or 
added debug output they are only looked up in share/locale/de_AT/ and 
share/locale/de-AT/, they are in share/locale/de/ on my system).
  With this patch the buttons are translated, the translations are now loaded 
from share/locale/de/ (after trying share/locale/de_AT/ and failing).
  
  Also ran "kdesu xxx". "Password:", "Remember password", "Cancel" were 
untranslated in the password dialog before, they are translated to german now.
  
  Tests that passed before still pass.
  The new/modified test passes now too, it fails with the original code.

REPOSITORY
  R240 Extra CMake Modules

REVISION DETAIL
  https://phabricator.kde.org/D9793

AFFECTED FILES
  modules/ECMQmLoader.cpp.in
  tests/ECMPoQmToolsTest/check.cmake.in

To: wbauer, #frameworks
Cc: #build_system

Reply via email to