Review Request 119738: Port Fuzzy Clock to Plasma 5

David Edmundson david at davidedmundson.co.uk
Mon Aug 18 09:21:51 UTC 2014



> On Aug. 14, 2014, 4:58 p.m., David Edmundson wrote:
> > applets/fuzzy-clock/package/contents/ui/FuzzyClock.qml, line 118
> > <https://git.reviewboard.kde.org/r/119738/diff/1/?file=304020#file304020line118>
> >
> >     we don't need the i18n here, we'd be trying to translate an already translated string.
> >     
> >     hourNames[Math.floor()] seems wrong, would that not give us
> >     
> >     5 to 9
> >     
> >     when it's 9:55?
> 
> Kai Uwe Broulik wrote:
>     Ah, that is why :) 
>     
>     Hmm, the original implementation just casts to int, I think. Would a Math.round fix that?
> 
> Kai Uwe Broulik wrote:
>     But honestly I don't really get that fuzzy logic either. Will test.
> 
> Marco Martin wrote:
>     Math.round seems more correct, yes
> 
> David Edmundson wrote:
>     I don't think either works. Assume the time is 10:30
>     
>     in English that's half past ten.
>     In German that's half to eleven.
>     
>     Not sure how to solve that.
> 
> Kai Uwe Broulik wrote:
>     http://websvn.kde.org/*checkout*/branches/stable/l10n-kde4/de/messages/kdeplasma-addons/plasma_applet_fuzzy_clock.po
>     
>     That is the German translation file. And it does some "30 Minuten nach %1|/|halb $[stunde+1 %1]" magic. How does that work? eins|/|$[Eigenschaft stunde+1 zwei] $[Eigenschaft vollestunde ein] ?! So I guess here lies the trick.
> 
> Lasse Liehu wrote:
>     This is scripting translations using Transcript, https://techbase.kde.org/Localization/Concepts/Transcript
>     
>     A property stunde+1 is added to each hour message. For example "one" is translated as "eins|/|$[Eigenschaft stunde+1 zwei] $[Eigenschaft vollestunde ein]". Then translation of "half past %1" uses that property by calling "$[stunde+1 %1]", which returns "zwei".
> 
> Kai Uwe Broulik wrote:
>     Thanks for the reference! So what adjustments are needed in the plasmoid, or should it just work the way it is now?
> 
> David Edmundson wrote:
>     this definitely won't work as-is.
>     
>     you're putting a string that's translated back into i18n. So you'll be running
>     i18n("zehn nach %1", 11), the first argument won't match anything in the .pot file which is looking for "ten past %1", so it'll just fail to find anything but if you do a simple find and replace on $1 to the hour, you won't get this transcript thing running. 
>     
>     Hardcoding a hack for this won't work as we also need the 10:25 going to "five to half to eleven" that we have in German.
>     
>     I think we're going to need methods in kdeclarative that return KLocalizedStrings exposed via ki18nc. Then add expose these as QML metatypes. Then we need to add i18, i18c, i18nc, i18d, i18ncd methods that accept KLocalizedStrings as arguments as a first arg QStrings.. for every amount of arguments.
>     
>     Or you can make everyone learn English where we're all normal.
> 
> Lasse Liehu wrote:
>     Exactly. Just wondering, would it be easier to have functions like subs (for inserting parameters) and toString (converting into final translated string) in KLocalizedString in QML? There is no need to have each variant of i18n take a KLocalizedString, is there?
> 
> David Edmundson wrote:
>     /Maybe/ we'd have to wrap KLocalizedString in a QObject  (or wait for Q_GADGET changes).
>     
>     Actually we don't need to have to change each existing i18, but have methods like:
>      Q_INVOKABLE KLocalisedSubString(KLocalisedString kls, const QSTring &arg1, QString arg2=(), QString arg3=());
>      Q_INVOKABLE KLocalisedToString(KLocalisedString kls);
>      
>      we still need all the ki18n variants though :(

I'm an idiot. 

There's a far far easier solution that doesn't involve changing kdeclarative.

Instead of having an array in readonly property var normalFuzzy.

have a

function createstring(int fuzzy, int hour) {
switch (index) {
 case 0:
   return i18n("five past %1", hour);
  case 1:
}

this way you're not passing un-subbed i18n strings about so we don't need klocalisedstring


- David


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


On Aug. 12, 2014, 6:08 p.m., Kai Uwe Broulik wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119738/
> -----------------------------------------------------------
> 
> (Updated Aug. 12, 2014, 6:08 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: kdeplasma-addons
> 
> 
> Description
> -------
> 
> This ports the infamous Fuzzy Clock to Plasma 5.
> 
> The code is derived from digital clock with the fuzzy logic derived from the original implementation.
> 
> I had to substitute %1 by $1 in the i18n strings (and replace them back), otherwise I got "I18N_EXCESSIVE_ARGUMENTS" thingies appended to my fuzzy string.
> 
> Missing is the ability to show the time zone (really needed here?), and the "Percent of taskbar size" slider because that layouting logic copied from digital clock is beyond me :)
> Also missing is the "Configure time format" (why's there no "Configure Date and Time" in digital clock?) because fuzzy clock doesn't really adhere to the locale anyway and I didn't want to yet again duplicate that ProcessRunner plugin which seems to have been copied all over the place already.
> 
> 
> Diffs
> -----
> 
>   applets/fuzzy-clock/fuzzyClockConfig.ui 15cc658 
>   applets/fuzzy-clock/package/contents/config/config.qml PRE-CREATION 
>   applets/fuzzy-clock/package/contents/config/main.xml PRE-CREATION 
>   applets/fuzzy-clock/package/contents/ui/FuzzyClock.qml PRE-CREATION 
>   applets/fuzzy-clock/package/contents/ui/configAppearance.qml PRE-CREATION 
>   applets/fuzzy-clock/package/contents/ui/main.qml PRE-CREATION 
>   applets/fuzzy-clock/package/metadata.desktop PRE-CREATION 
>   applets/fuzzy-clock/plasma-clock-fuzzy.desktop 5f6d30b 
>   applets/CMakeLists.txt 661ecb4 
>   applets/fuzzy-clock/CMakeLists.txt 1068150 
>   applets/fuzzy-clock/Messages.sh c8c9f06 
>   applets/fuzzy-clock/fuzzyClock.h 9bf5c4e 
>   applets/fuzzy-clock/fuzzyClock.cpp 2cd189d 
> 
> Diff: https://git.reviewboard.kde.org/r/119738/diff/
> 
> 
> Testing
> -------
> 
> I've been running it since yesterday evening and didn't notice unusual behavior, except that due to the update interval of 30s it doesn't update right away when session is resumed from Suspend (but I guess this is a Plasma issue?).
> 
> Also it tends to cut off in a vertical panel due to its (sane) minimum font size (smallest theme font) being larger than in the original implementation where it used to get super tiny then.
> 
> 
> File Attachments
> ----------------
> 
> In horizontal panel
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/08/12/35e0fea1-8a28-4ddb-9a81-9112bb85eab5__fuzzyinapanel.png
> On the Desktop
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/08/12/a246f3b3-bb12-4756-8069-594d25bd39f6__fuzzyonthedesktop.png
> Configuration UI
>   https://git.reviewboard.kde.org/media/uploaded/files/2014/08/12/a144ea07-e18a-4a90-965a-3db51d91fb5d__fuzzyconfig.png
> 
> 
> Thanks,
> 
> Kai Uwe Broulik
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140818/eda5a0f3/attachment-0001.html>


More information about the Plasma-devel mailing list