Review Request 118526: Provide i18nd wrappers in kdeclarative
Martin Gräßlin
mgraesslin at kde.org
Thu Jun 5 08:36:04 UTC 2014
> On June 5, 2014, 10:29 a.m., David Edmundson wrote:
> > +1 from me.
> > The i18nd is definitely useful.
> >
> > The setTranslationDomain isn't ideal, but there's no 100% nice solution to it.
> >
>
> David Edmundson wrote:
> Brainstorming:
>
> There is one other possible way we could have i18n automatically select the right catalog, even if you have imports from QML files all over the place.
>
> - define all i18n functions in javascript instead of C++
> - have them do something like
> function i18n(text) { i18nd(__catalogName, text);
>
> then imports or applications or whatever need to declare a:
> readonly property string __catalogName: "catalogName"
> somewhere in the root file qml file, as well as in any imported file.
>
> Because JS would then be evaluating the catalog name, it would find the variable in the right scope, and thus the right catalogName.
>
it has a disadvantage: if one uses the QML in an application one doesn't want the i18n calls to go through i18nd as KLocalizedString::setApplicationDomain was called.
- Martin
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118526/#review59257
-----------------------------------------------------------
On June 4, 2014, 3:06 p.m., Martin Gräßlin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/118526/
> -----------------------------------------------------------
>
> (Updated June 4, 2014, 3:06 p.m.)
>
>
> Review request for KDE Frameworks, Plasma and Marco Martin.
>
>
> Repository: kdeclarative
>
>
> Description
> -------
>
> Provide i18nd wrappers in kdeclarative
>
> As QML might combine multiple modules with different cataloges we need
> to be able to specify the translation domain explicitly. If there is a
> need to use a specific domain for all i18n calls (e.g. in a library
> using QML) there is the possibility to set a global translation domain
> through KDeclarative. If such a domain is set all i18n calls delegate
> to the i18nd variant.
>
> Due to the nature of KDeclarative we cannot mix i18n calls with
> different domains. If two modules would require to set the translation
> domain it's bound to fail. Thus the recommendation is to use the i18nd
> variants in any QML code which is intended to be used as an import.
>
>
> Diffs
> -----
>
> src/kdeclarative/kdeclarative.h b4a274b710f4de7ffbfc275d1e9a0a93be283053
> src/kdeclarative/kdeclarative.cpp a35dac5cfbd42e75e892d4ad88c491345be4a1b0
> src/kdeclarative/private/kdeclarative_p.h 6b61d123bf74671b413e4e68bf911bb969fdaf53
> src/kdeclarative/private/rootcontext.cpp 123066669b096495910b83ed1e388989042b45a1
> src/kdeclarative/private/rootcontext_p.h 16694b155c668e11cf7a16549a18cdc89b81b3e2
>
> Diff: https://git.reviewboard.kde.org/r/118526/diff/
>
>
> Testing
> -------
>
> adjusted kwineffects KCM and run it with the x-test language: the strings with i18n from QML side are now picking up the translated strings.
>
>
> Thanks,
>
> Martin Gräßlin
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140605/cc1b1a6d/attachment.html>
More information about the Plasma-devel
mailing list