-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125682/#review86995
-----------------------------------------------------------


This should work, but IMHO it does not go far enough. I can see many more calls 
to QCoreApplication::translate(...) with user defined content in this file 
(kaboutdata.cpp), which is also affected, as for example credits, authors, 
copyright statements and so on...

Furthermore feeding in already-translated strings at application start will 
break the feature of language switching at run time and it might confuse the 
developers who have to pass some strings with I18N_NOOP(), some with i18n(). I 
think that "translation on demand" is the right way, we just need to find a way 
to make it work.

As I wrote in the corresponding bug report: using gettext() should work for 
these use cases, but unfortunately only without context. What about using the 
strings like "NAMES OF TRANSLATORS" as message string, without translation 
context, and then using some low level API like dcgettext? I tried that here 
and it worked fine (using the application name as "domain" paramter of 
dcgettext). But that was only a quick experiment, maybe someone knows a more 
elegant way to solve this...

- Thomas Eschenbacher


On Okt. 18, 2015, 2:13 vorm., Michael Pyne wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125682/
> -----------------------------------------------------------
> 
> (Updated Okt. 18, 2015, 2:13 vorm.)
> 
> 
> Review request for KDE Frameworks, Localization and Translation (l10n) and 
> Albert Astals Cid.
> 
> 
> Bugs: 345320
>     https://bugs.kde.org/show_bug.cgi?id=345320
> 
> 
> Repository: kxmlgui
> 
> 
> Description
> -------
> 
> KAboutData has a placeholder for information regarding who translated the 
> running KDE-based application (KAboutData::translators()). However it relies 
> on the application developer to call KAboutData::setTranslator() since 
> KCoreAddons (a Tier 1 framework) cannot use KI18n directly. Instead the Qt 
> translation infrastructure is used where translations are unavoidable, but 
> that is not compatible with KF5's i18n. This (IIUC) gives different behavior 
> than KDE4, where KAboutData could (and did!) directly pull the translated 
> list of translators, so application authors didn't have to do anything 
> special for their about dialog to have the list of translators.
> 
> For the majority of our applications we can make the ::setTranslator() call 
> on the application developer's behalf, as recommended by Albert on 
> kdeframeworks-devel, and by doing so from KMainWindow (a relatively central 
> location for KF5-using applications) we can use KI18n and get the 
> accurately-translated message. Feeding the already-translated information 
> into KAboutData should work to form the list of translators for later use by 
> KAboutApplicationDialog, or other accessors of that information.
> 
> This patch implements all that. I avoided using a global startup method as 
> suggested by Albert (since the Qt docs suggest that this startup would happen 
> *before* the GUI starts up, and I want to make sure KI18n is available); 
> KMainWindow seems the next best option, and even non-KXmlGuiWindow users 
> might use this. There are probably other good alternatives too (maybe even 
> the platform plugin?).
> 
> 
> Diffs
> -----
> 
>   src/kmainwindow.cpp 7c86841 
> 
> Diff: https://git.reviewboard.kde.org/r/125682/diff/
> 
> 
> Testing
> -------
> 
> Compiled, apps all still work.
> 
> I find it hard to test whether the translators actually show up or not 
> though, as I do not use translated KF5 apps.
> 
> 
> Thanks,
> 
> Michael Pyne
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to