<table><tr><td style="">wbauer created this revision.<br />wbauer added a reviewer: Frameworks.<br />wbauer added a project: Frameworks.<br />Restricted Application added a project: Build System.<br />Restricted Application added a subscriber: Build System.<br />wbauer requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D9793" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>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.<br />
That's because bcp47Name() returns "de-AT" for de_AT (though in the case of de_DE e.g. it does return "de").</p>

<p>This patch instead tries to fall back to the general language by taking the part of the locale name before the first '_'.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Rebuilt kwidgetsaddons with this change.<br />
Unset $LANGUAGE (if set) and set $LANG=de_AT.UTF-8 (or set $LANGUAGE=de_AT in the first place)<br />
Ran systemsettings5 and enter some module.</p>

<p>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).<br />
With this patch the buttons are translated, the translations are now loaded from share/locale/de/ (after trying share/locale/de_AT/ and failing).</p>

<p>Also ran "kdesu xxx". "Password:", "Remember password", "Cancel" were untranslated in the password dialog before, they are translated to german now.</p>

<p>Tests that passed before still pass.<br />
The new/modified test passes now too, it fails with the original code.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R240 Extra CMake Modules</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D9793" rel="noreferrer">https://phabricator.kde.org/D9793</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>modules/ECMQmLoader.cpp.in<br />
tests/ECMPoQmToolsTest/check.cmake.in</div></div></div><br /><div><strong>To: </strong>wbauer, Frameworks<br /><strong>Cc: </strong>Build System<br /></div>