[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwrite-devel
Subject:    Re: Using i18n
From:       Albert Astals Cid <aacid () kde ! org>
Date:       2013-05-04 14:29:56
Message-ID: 1455434.7vNGr340IZ () xps
[Download RAW message or body]

El Divendres, 3 de maig de 2013, a les 22:17:29, Philipp A. va escriure:
> well, it is:
> >>> from sys import version_info
> >>> version_info[:2]
> 
> (3, 3)
> 
> >>> from PyKDE4.kdecore import versionString, i18n
> >>> versionString()
> 
> '4.10.2'
> 
> >>> i18n(' ·'.encode('utf-8'))
> 
> ' ·'
> 
> >>> print(i18n(' ·'))
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> UnicodeEncodeError: 'ascii' codec can't encode character '\xb7' in position
> 0: ordinal not in range(128)
> 
> note that the result of i18n *is* a unicode string, and i18n *accepts*
> unicode strings, but only if those unicode strings happen to only contain
> ascii – just like in the bad old python2 times.
> 
> so i18n is buggy on KDE 4.10, and we have to work around it.

Why is it buggy? i18n only works on utf8 formatted "ascii strings"

Are you expecting something in the python part to do some magic?

Cheers,
  Albert

> 
> 
> 2013/5/3 Shaheed Haque <srhaque@theiet.org>
> 
> > Just after I hit "send", I found this:
> > 
> > http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg14058.html
> > 
> > which suggests this is not an issue???
> > 
> > On 3 May 2013 20:42, Shaheed Haque <srhaque@theiet.org> wrote:
> >> Hi Philipp,
> >> 
> >> On 3 May 2013 19:56, Philipp A. <flying-sheep@web.de> wrote:
> >>> Hi, i've seen some uses of kdecore.i18n popping up in Paté plugins, and
> >>> have some recommendations:
> >>> 
> >>> 2. It takes more than one argument. so for the sake of consistency
> >>> instead of doing the ugly
> >>> 
> >>>     i18n(b'foo %(name)s.') % { 'name': 'bar'}
> >>> 
> >>> or even the better
> >>> 
> >>>     i18n(b'foo {name}.').format(name='bar')
> >>> 
> >>> we should do the Qt-style
> >>> 
> >>>     i18n(b'foo %1.', 'bar')
> >>> 
> >>> 1.  i18n takes byte strings. even on python3. this means that every time
> >>> a developer accustomed to python2 who doesn't know it tries to use it,
> >>> the
> >>> plugin WILL break for python3 users.
> >> 
> >> I've been using the argument syntax of the third form, but simply
> >> specified quoted strings (i.e. without the "b" prefix). Without really
> >> thinking about it, I had assumed that i18n would have done something
> >> plausible on Python2 (not sure exactly what though!), and on Python3 it
> >> would just be Unicode all the way. I'd certainly prefer not avoid having
> >> to
> >> use "b" all over the place.
> >> 
> >> https://github.com/Werkov/PyQt4/blob/master/examples/tools/i18n/i18n.py
> >> 
> >> seems to suggest that something like that is possible, but when I went
> >> looking for some docs on this, but could not see an obvious spec. Do you
> >> have a reference handy?
> >> 
> >> Thanks, Shaheed
> >> 
> >>> we have to come up with a solution.
> >>> 
> >>> there is a possible solution here, but it involves a fairly convoluted
> >>> i18n replacement:
> >>> 
> >>> https://projects.kde.org/projects/kde/applications/kate/repository/revis
> >>> ions/master/entry/addons/kate/pate/src/plugins/python_console_ipython/py
> >>> thon_console_ipython.py#L36
> >>> 
> >>> should we add that function to libkatepate and call it a day?
> >>> 
> >>> _______________________________________________
> >>> KWrite-Devel mailing list
> >>> KWrite-Devel@kde.org
> >>> https://mail.kde.org/mailman/listinfo/kwrite-devel
> > 
> > _______________________________________________
> > KWrite-Devel mailing list
> > KWrite-Devel@kde.org
> > https://mail.kde.org/mailman/listinfo/kwrite-devel
_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic