-
- Downloads
[FIX] models: avoid Unicode error when translating that error message
The patch fa492d87 has been backported from Odoo 12.0, that runs on Python 3. The string '\n\n({} {}, {} {})' to be formatted is a byte-string in Python 2, while the return value of _() is always a unicode-string. As format() is (too?) nice, it attempts to convert the unicode-strings into ascii in order to inject them in the format pattern. With some languages that are written in ascii, this works -- by chance. When you use non-ascii languages like Japanese, it fails. We then fix that issue by using unicode-strings in the formatting pattern. #OneCharacterPatch B-) opw-2032016 ----------------------------- For full technical understanding: Python 2.7.16 (default, Mar 11 2019, 18:59:25) [GCC 8.2.1 20181127] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> '{}'.format('test') 'test' >>> '{}'.format(u'test') 'test' >>> '{}'.format(u'エ') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\u30a8' in position 0: ordinal not in range(128) >>> u'{}'.format(u'エ') u'\u30a8' closes odoo/odoo#34698 Signed-off-by:Richard Mathot (rim) <rim@openerp.com>
Loading
Please register or sign in to comment