Hello community, here is the log from the commit of package python-oslo.i18n for openSUSE:Factory checked in at 2015-10-30 13:42:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oslo.i18n (Old) and /work/SRC/openSUSE:Factory/.python-oslo.i18n.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.i18n" Changes: -------- --- /work/SRC/openSUSE:Factory/python-oslo.i18n/python-oslo.i18n.changes 2015-08-27 08:54:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-oslo.i18n.new/python-oslo.i18n.changes 2015-10-30 13:42:19.000000000 +0100 @@ -1,0 +2,9 @@ +Wed Sep 9 06:57:21 UTC 2015 - [email protected] + +- update to 2.6.0: +* Updated from global requirements +* Trap formatting errors +* Imported Translations from Transifex +* Clean up _translate_msgid logic a bit + +------------------------------------------------------------------- Old: ---- oslo.i18n-2.2.0.tar.gz New: ---- oslo.i18n-2.6.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oslo.i18n.spec ++++++ --- /var/tmp/diff_new_pack.5IxgUD/_old 2015-10-30 13:42:20.000000000 +0100 +++ /var/tmp/diff_new_pack.5IxgUD/_new 2015-10-30 13:42:20.000000000 +0100 @@ -19,7 +19,7 @@ %global sname oslo.i18n Name: python-oslo.i18n -Version: 2.2.0 +Version: 2.6.0 Release: 0 Summary: OpenStack i18n library License: Apache-2.0 ++++++ oslo.i18n-2.2.0.tar.gz -> oslo.i18n-2.6.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/AUTHORS new/oslo.i18n-2.6.0/AUTHORS --- old/oslo.i18n-2.2.0/AUTHORS 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/AUTHORS 2015-09-08 17:41:43.000000000 +0200 @@ -2,6 +2,7 @@ Anderson Mesquita <[email protected]> Andreas Jaeger <[email protected]> Andrey Kurilin <[email protected]> +Balazs Gibizer <[email protected]> Ben Nemec <[email protected]> Brant Knudson <[email protected]> Chang Bo Guo <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/ChangeLog new/oslo.i18n-2.6.0/ChangeLog --- old/oslo.i18n-2.2.0/ChangeLog 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/ChangeLog 2015-09-08 17:41:43.000000000 +0200 @@ -1,6 +1,32 @@ CHANGES ======= +2.6.0 +----- + +* Updated from global requirements +* Updated from global requirements + +2.5.0 +----- + +* Trap formatting errors + +2.4.0 +----- + +* Imported Translations from Transifex +* Updated from global requirements +* Imported Translations from Transifex +* Updated from global requirements +* Clean up _translate_msgid logic a bit + +2.3.0 +----- + +* Imported Translations from Transifex +* Updated from global requirements + 2.2.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/PKG-INFO new/oslo.i18n-2.6.0/PKG-INFO --- old/oslo.i18n-2.2.0/PKG-INFO 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/PKG-INFO 2015-09-08 17:41:43.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: oslo.i18n -Version: 2.2.0 +Version: 2.6.0 Summary: Oslo i18n library Home-page: http://launchpad.net/oslo Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/de/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/de/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/de/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/de/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -4,20 +4,21 @@ # # Translators: # Andreas Jaeger <[email protected]>, 2014 +# Robert Simai, 2015 msgid "" msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" -"PO-Revision-Date: 2014-07-07 16:53+0000\n" -"Last-Translator: Andreas Jaeger <[email protected]>\n" -"Language-Team: German (http://www.transifex.com/projects/p/osloi18n/language/" +"POT-Creation-Date: 2015-08-13 06:02+0000\n" +"PO-Revision-Date: 2015-08-12 10:58+0000\n" +"Last-Translator: Robert Simai\n" +"Language-Team: German (http://www.transifex.com/openstack/osloi18n/language/" "de/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "Message-Objekt unterstützt keine Addition." @@ -27,4 +28,4 @@ "characters. Please use unicode() or translate() instead." msgstr "" "Message-Objekte unterstützen str() nicht, da diese Nicht-ASCII Charackter " -"enthalten können. Bitte benutze unicode() oder translate()." +"enthalten können. Bitte verwenden Sie unicode() oder translate()." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/en_GB/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/en_GB/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/en_GB/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/en_GB/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-09-02 09:09+0000\n" "Last-Translator: Andi Chandler <[email protected]>\n" -"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/" +"Language-Team: English (United Kingdom) (http://www.transifex.com/openstack/" "osloi18n/language/en_GB/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "Message objects do not support addition." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/es/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/es/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/es/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/es/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2015-06-22 21:03+0000\n" "Last-Translator: Adriana Chisco Landazábal <[email protected]>\n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/osloi18n/" -"language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/openstack/osloi18n/language/" +"es/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "Objectos de mensaje no soportan adición." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/fr/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/fr/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/fr/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/fr/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -9,16 +9,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-09-25 09:36+0000\n" "Last-Translator: Jonathan Dupart <[email protected]>\n" -"Language-Team: French (http://www.transifex.com/projects/p/osloi18n/language/" +"Language-Team: French (http://www.transifex.com/openstack/osloi18n/language/" "fr/)\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "Les objects message ne supportent pas l'ajout." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/it/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/it/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/it/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/it/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-08-24 11:27+0000\n" "Last-Translator: PierAlberto <[email protected]>\n" -"Language-Team: Italian (http://www.transifex.com/projects/p/osloi18n/" -"language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/openstack/osloi18n/language/" +"it/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "I messaggi oggetti non supportano aggiunte." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/ko_KR/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/ko_KR/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/ko_KR/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/ko_KR/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-09-24 16:32+0000\n" "Last-Translator: Sungjin Kang <[email protected]>\n" -"Language-Team: Korean (Korea) (http://www.transifex.com/projects/p/osloi18n/" +"Language-Team: Korean (Korea) (http://www.transifex.com/openstack/osloi18n/" "language/ko_KR/)\n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "메시지 객체는 추가 지원을하지 않습니다." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-critical.pot new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-critical.pot --- old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-critical.pot 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-critical.pot 2015-09-08 17:41:03.000000000 +0200 @@ -1,19 +1,19 @@ # Translations template for oslo.i18n. -# Copyright (C) 2014 ORGANIZATION +# Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the oslo.i18n project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: oslo.i18n 0.1.0.6.gc9d841b\n" +"Project-Id-Version: oslo.i18n 2.2.1.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-07-25 06:03+0000\n" +"POT-Creation-Date: 2015-07-29 06:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-error.pot new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-error.pot --- old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-error.pot 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-error.pot 2015-09-08 17:41:03.000000000 +0200 @@ -1,19 +1,19 @@ # Translations template for oslo.i18n. -# Copyright (C) 2014 ORGANIZATION +# Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the oslo.i18n project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: oslo.i18n 0.1.0.6.gc9d841b\n" +"Project-Id-Version: oslo.i18n 2.2.1.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-07-25 06:03+0000\n" +"POT-Creation-Date: 2015-07-29 06:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-info.pot new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-info.pot --- old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-info.pot 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-info.pot 2015-09-08 17:41:03.000000000 +0200 @@ -1,19 +1,19 @@ # Translations template for oslo.i18n. -# Copyright (C) 2014 ORGANIZATION +# Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the oslo.i18n project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: oslo.i18n 0.1.0.6.gc9d841b\n" +"Project-Id-Version: oslo.i18n 2.2.1.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-07-25 06:03+0000\n" +"POT-Creation-Date: 2015-07-29 06:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-warning.pot new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-warning.pot --- old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n-log-warning.pot 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n-log-warning.pot 2015-09-08 17:41:03.000000000 +0200 @@ -1,19 +1,19 @@ # Translations template for oslo.i18n. -# Copyright (C) 2014 ORGANIZATION +# Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the oslo.i18n project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: oslo.i18n 0.1.0.6.gc9d841b\n" +"Project-Id-Version: oslo.i18n 2.2.1.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-07-25 06:03+0000\n" +"POT-Creation-Date: 2015-07-29 06:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n.pot new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n.pot --- old/oslo.i18n-2.2.0/oslo.i18n/locale/oslo.i18n.pot 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/oslo.i18n.pot 2015-09-08 17:41:03.000000000 +0200 @@ -1,27 +1,27 @@ # Translations template for oslo.i18n. -# Copyright (C) 2014 ORGANIZATION +# Copyright (C) 2015 ORGANIZATION # This file is distributed under the same license as the oslo.i18n project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: oslo.i18n 73d16d8\n" +"Project-Id-Version: oslo.i18n 2.2.1.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-06-05 22:20+0200\n" +"POT-Creation-Date: 2015-07-29 06:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" -#: oslo/i18n/gettextutils.py:315 +#: oslo_i18n/_message.py:194 msgid "Message objects do not support addition." msgstr "" -#: oslo/i18n/gettextutils.py:325 +#: oslo_i18n/_message.py:205 msgid "" "Message objects do not support str() because they may contain non-ascii " "characters. Please use unicode() or translate() instead." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/pl_PL/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/pl_PL/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/pl_PL/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/pl_PL/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,17 +8,17 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-08-21 11:28+0000\n" "Last-Translator: Łukasz Jernaś <[email protected]>\n" -"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/osloi18n/" +"Language-Team: Polish (Poland) (http://www.transifex.com/openstack/osloi18n/" "language/pl_PL/)\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "Obiekty Message nie wspierają dodawania." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/pt/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/pt/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/pt/LC_MESSAGES/oslo.i18n.po 1970-01-01 01:00:00.000000000 +0100 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/pt/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -0,0 +1,30 @@ +# Portuguese translations for oslo.i18n. +# Copyright (C) 2015 ORGANIZATION +# This file is distributed under the same license as the oslo.i18n project. +# +# Translators: +# MMSRS, 2015 +msgid "" +msgstr "" +"Project-Id-Version: oslo.i18n\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2015-08-13 06:02+0000\n" +"PO-Revision-Date: 2015-08-11 17:02+0000\n" +"Last-Translator: MMSRS\n" +"Language-Team: Portuguese (http://www.transifex.com/openstack/osloi18n/" +"language/pt/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.0\n" + +msgid "Message objects do not support addition." +msgstr "Os objetos de mensagem não suportam a adição." + +msgid "" +"Message objects do not support str() because they may contain non-ascii " +"characters. Please use unicode() or translate() instead." +msgstr "" +"Os objetos de mensagem não suportam str() porque eles poderão conter " +"carateres não ascii. Por favor, use unicode() ou translate()." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n/locale/zh_CN/LC_MESSAGES/oslo.i18n.po new/oslo.i18n-2.6.0/oslo.i18n/locale/zh_CN/LC_MESSAGES/oslo.i18n.po --- old/oslo.i18n-2.2.0/oslo.i18n/locale/zh_CN/LC_MESSAGES/oslo.i18n.po 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n/locale/zh_CN/LC_MESSAGES/oslo.i18n.po 2015-09-08 17:41:03.000000000 +0200 @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: oslo.i18n\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-07-23 06:01+0000\n" +"POT-Creation-Date: 2015-08-04 06:16+0000\n" "PO-Revision-Date: 2014-11-20 00:40+0000\n" "Last-Translator: Xiao Xi LIU <[email protected]>\n" -"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/osloi18n/" +"Language-Team: Chinese (China) (http://www.transifex.com/openstack/osloi18n/" "language/zh_CN/)\n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 2.0\n" msgid "Message objects do not support addition." msgstr "消息对象不支持添加操作。" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n.egg-info/PKG-INFO new/oslo.i18n-2.6.0/oslo.i18n.egg-info/PKG-INFO --- old/oslo.i18n-2.2.0/oslo.i18n.egg-info/PKG-INFO 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n.egg-info/PKG-INFO 2015-09-08 17:41:43.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: oslo.i18n -Version: 2.2.0 +Version: 2.6.0 Summary: Oslo i18n library Home-page: http://launchpad.net/oslo Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n.egg-info/SOURCES.txt new/oslo.i18n-2.6.0/oslo.i18n.egg-info/SOURCES.txt --- old/oslo.i18n-2.2.0/oslo.i18n.egg-info/SOURCES.txt 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n.egg-info/SOURCES.txt 2015-09-08 17:41:43.000000000 +0200 @@ -42,6 +42,7 @@ oslo.i18n/locale/it/LC_MESSAGES/oslo.i18n.po oslo.i18n/locale/ko_KR/LC_MESSAGES/oslo.i18n.po oslo.i18n/locale/pl_PL/LC_MESSAGES/oslo.i18n.po +oslo.i18n/locale/pt/LC_MESSAGES/oslo.i18n.po oslo.i18n/locale/zh_CN/LC_MESSAGES/oslo.i18n.po oslo_i18n/__init__.py oslo_i18n/_factory.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n.egg-info/pbr.json new/oslo.i18n-2.6.0/oslo.i18n.egg-info/pbr.json --- old/oslo.i18n-2.2.0/oslo.i18n.egg-info/pbr.json 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n.egg-info/pbr.json 2015-09-08 17:41:43.000000000 +0200 @@ -1 +1 @@ -{"is_release": true, "git_version": "cefa610"} \ No newline at end of file +{"is_release": true, "git_version": "4417d33"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo.i18n.egg-info/requires.txt new/oslo.i18n-2.6.0/oslo.i18n.egg-info/requires.txt --- old/oslo.i18n-2.2.0/oslo.i18n.egg-info/requires.txt 2015-07-27 21:57:00.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo.i18n.egg-info/requires.txt 2015-09-08 17:41:43.000000000 +0200 @@ -1,3 +1,3 @@ -pbr<2.0,>=1.3 +pbr<2.0,>=1.6 Babel>=1.3 six>=1.9.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo_i18n/_message.py new/oslo.i18n-2.6.0/oslo_i18n/_message.py --- old/oslo.i18n-2.2.0/oslo_i18n/_message.py 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo_i18n/_message.py 2015-09-08 17:41:03.000000000 +0200 @@ -19,6 +19,7 @@ import copy import gettext import locale +import logging import os import six @@ -30,6 +31,9 @@ CONTEXT_SEPARATOR = "\x04" +LOG = logging.getLogger(__name__) + + class Message(six.text_type): """A Message object is a unicode object that can be translated. @@ -90,9 +94,7 @@ translated_params = _translate.translate_args(self.params, desired_locale) - translated_message = translated_message % translated_params - - return translated_message + return self._safe_translate(translated_message, translated_params) @staticmethod def _translate_msgid(msgid, domain, desired_locale=None, @@ -110,15 +112,17 @@ languages=[desired_locale], fallback=True) - # Primary translation function if not has_contextual_form and not has_plural_form: + # This is the most common case, so check it first. translator = lang.gettext if six.PY3 else lang.ugettext - translated_message = translator(msgid) - return translated_message - # Contextual translation function - if has_contextual_form and not has_plural_form: + elif has_contextual_form and has_plural_form: + # Reserved for contextual and plural translation function, + # which is not yet implemented. + raise ValueError("Unimplemented.") + + elif has_contextual_form: (msgctx, msgtxt) = msgid translator = lang.gettext if six.PY3 else lang.ugettext @@ -126,31 +130,42 @@ translated_message = translator(msg_with_ctx) if CONTEXT_SEPARATOR in translated_message: - # Translation not found + # Translation not found, use the original text translated_message = msgtxt - return translated_message - - # Plural translation function - if not has_contextual_form and has_plural_form: + elif has_plural_form: (msgsingle, msgplural, msgcount) = msgid translator = lang.ngettext if six.PY3 else lang.ungettext - translated_message = translator(msgsingle, msgplural, msgcount) - return translated_message - # Reserved for contextual and plural translation function - if has_contextual_form and has_plural_form: - raise ValueError("Unimplemented.") + return translated_message - raise TypeError("Unknown msgid type.") + def _safe_translate(self, translated_message, translated_params): + try: + translated_message = translated_message % translated_params + except (KeyError, TypeError) as err: + # KeyError for parameters named in the translated_message + # but not found in translated_params and TypeError for + # type strings that do not match the type of the + # parameter. + # + # Log the error translating the message and use the + # original message string so the translator's bad message + # catalog doesn't break the caller. + LOG.debug( + (u'Failed to insert replacement values into translated ' + u'message %s (Original: %r): %s'), + translated_message, self.msgid, err) + translated_message = self.msgid % translated_params + + return translated_message def __mod__(self, other): # When we mod a Message we want the actual operation to be performed # by the parent class (i.e. unicode()), the only thing we do here is # save the original msgid and the parameters in case of a translation params = self._sanitize_mod_params(other) - unicode_mod = super(Message, self).__mod__(params) + unicode_mod = self._safe_translate(six.text_type(self), params) modded = Message(self.msgid, msgtext=unicode_mod, params=params, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/oslo_i18n/tests/test_message.py new/oslo.i18n-2.6.0/oslo_i18n/tests/test_message.py --- old/oslo.i18n-2.2.0/oslo_i18n/tests/test_message.py 2015-07-27 21:56:30.000000000 +0200 +++ new/oslo.i18n-2.6.0/oslo_i18n/tests/test_message.py 2015-09-08 17:41:03.000000000 +0200 @@ -157,6 +157,41 @@ self.assertEqual(expected, result) self.assertEqual(expected, result.translate()) + def test_mod_with_wrong_field_type_in_trans(self): + msgid = "Correct type %(arg1)s" + params = {'arg1': 'test1'} + with mock.patch('gettext.translation') as trans: + # Set up ugettext to return the original message with the + # correct format string. + trans.return_value.ugettext.return_value = msgid + # Build a message and give it some parameters. + result = _message.Message(msgid) % params + # Now set up ugettext to return the translated version of + # the original message, with a bad format string. + wrong_type = u'Wrong type %(arg1)d' + if six.PY3: + trans.return_value.gettext.return_value = wrong_type + else: + trans.return_value.ugettext.return_value = wrong_type + trans_result = result.translate() + expected = msgid % params + self.assertEqual(expected, trans_result) + + def test_mod_with_wrong_field_type(self): + msgid = "Test that we handle unused args %(arg1)d" + params = {'arg1': 'test1'} + + self.assertRaises(TypeError, lambda: _message.Message(msgid) % params) + + def test_mod_with_missing_arg(self): + msgid = "Test that we handle missing args %(arg1)s %(arg2)s" + params = {'arg1': 'test1'} + + e = self.assertRaises(KeyError, + lambda: _message.Message(msgid) % params) + self.assertIn('arg2', six.text_type(e), + 'Missing key \'arg2\' was not flagged') + def test_mod_with_integer_parameters(self): msgid = "Some string with params: %d" params = [0, 1, 10, 24124] @@ -258,16 +293,6 @@ # Make sure unused params still there self.assertEqual(result.params.keys(), params.keys()) - def test_mod_with_missing_named_parameters(self): - msgid = ("Some string with params: %(param1)s %(param2)s" - " and a missing one %(missing)s") - params = {'param1': 'test', - 'param2': 'test2'} - - test_me = lambda: _message.Message(msgid) % params - # Just like with strings missing named parameters raise KeyError - self.assertRaises(KeyError, test_me) - def test_add_disabled(self): msgid = "A message" test_me = lambda: _message.Message(msgid) + ' some string' @@ -353,6 +378,59 @@ self.assertEqual(default_translation, msg.translate('XX')) @mock.patch('gettext.translation') + @mock.patch('oslo_i18n._message.LOG') + def test_translate_message_bad_translation(self, mock_log, + mock_translation): + message_with_params = 'A message: %s' + es_translation = 'A message in Spanish: %s %s' + param = 'A Message param' + + translations = {message_with_params: es_translation} + translator = fakes.FakeTranslations.translator({'es': translations}) + mock_translation.side_effect = translator + + msg = _message.Message(message_with_params) + msg = msg % param + self.assertFalse(mock_log.debug.called) + + default_translation = message_with_params % param + self.assertEqual(default_translation, msg.translate('es')) + mock_log.debug.assert_called_with(('Failed to insert replacement ' + 'values into translated message %s ' + '(Original: %r): %s'), + es_translation, + message_with_params, + mock.ANY) + + @mock.patch('gettext.translation') + @mock.patch('locale.getdefaultlocale', return_value=('es', '')) + @mock.patch('oslo_i18n._message.LOG') + def test_translate_message_bad_default_translation(self, mock_log, + mock_local, + mock_translation): + message_with_params = 'A message: %s' + es_translation = 'A message in Spanish: %s %s' + param = 'A Message param' + + translations = {message_with_params: es_translation} + translator = fakes.FakeTranslations.translator({'es': translations}) + mock_translation.side_effect = translator + + msg = _message.Message(message_with_params) + msg = msg % param + mock_log.debug.assert_called_with(('Failed to insert replacement ' + 'values into translated message %s ' + '(Original: %r): %s'), + es_translation, + message_with_params, + mock.ANY) + mock_log.reset_mock() + + default_translation = message_with_params % param + self.assertEqual(default_translation, msg) + self.assertFalse(mock_log.debug.called) + + @mock.patch('gettext.translation') def test_translate_message_with_object_param(self, mock_translation): message_with_params = 'A message: %s' es_translation = 'A message in Spanish: %s' @@ -516,3 +594,73 @@ # Translation into other locales still works self.assertEqual(zh_translation, msg.translate('zh')) self.assertEqual(fr_translation, msg.translate('fr')) + + +class TranslateMsgidTest(test_base.BaseTestCase): + + @mock.patch('gettext.translation') + def test_contextual(self, translation): + lang = mock.Mock() + translation.return_value = lang + trans = mock.Mock() + trans.return_value = 'translated' + lang.gettext = trans + lang.ugettext = trans + result = _message.Message._translate_msgid( + ('context', 'message'), + domain='domain', + has_contextual_form=True, + has_plural_form=False, + ) + self.assertEqual('translated', result) + trans.assert_called_with( + 'context' + _message.CONTEXT_SEPARATOR + 'message' + ) + + @mock.patch('gettext.translation') + def test_contextual_untranslatable(self, translation): + msg_with_context = 'context' + _message.CONTEXT_SEPARATOR + 'message' + lang = mock.Mock() + translation.return_value = lang + trans = mock.Mock() + trans.return_value = msg_with_context + lang.gettext = trans + lang.ugettext = trans + result = _message.Message._translate_msgid( + ('context', 'message'), + domain='domain', + has_contextual_form=True, + has_plural_form=False, + ) + self.assertEqual('message', result) + trans.assert_called_with(msg_with_context) + + @mock.patch('gettext.translation') + def test_plural(self, translation): + lang = mock.Mock() + translation.return_value = lang + trans = mock.Mock() + trans.return_value = 'translated' + lang.ngettext = trans + lang.ungettext = trans + result = _message.Message._translate_msgid( + ('single', 'plural', -1), + domain='domain', + has_contextual_form=False, + has_plural_form=True, + ) + self.assertEqual('translated', result) + trans.assert_called_with( + 'single', 'plural', -1, + ) + + @mock.patch('gettext.translation') + def test_contextual_and_plural(self, translation): + self.assertRaises( + ValueError, + _message.Message._translate_msgid, + 'nothing', + domain='domain', + has_contextual_form=True, + has_plural_form=True, + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/requirements.txt new/oslo.i18n-2.6.0/requirements.txt --- old/oslo.i18n-2.2.0/requirements.txt 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/requirements.txt 2015-09-08 17:41:03.000000000 +0200 @@ -2,6 +2,6 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -pbr<2.0,>=1.3 +pbr<2.0,>=1.6 Babel>=1.3 six>=1.9.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-2.2.0/test-requirements.txt new/oslo.i18n-2.6.0/test-requirements.txt --- old/oslo.i18n-2.2.0/test-requirements.txt 2015-07-27 21:56:31.000000000 +0200 +++ new/oslo.i18n-2.6.0/test-requirements.txt 2015-09-08 17:41:03.000000000 +0200 @@ -8,8 +8,8 @@ oslosphinx>=2.5.0 # Apache-2.0 mock>=1.2 -oslotest>=1.7.0 # Apache-2.0 +oslotest>=1.10.0 # Apache-2.0 coverage>=3.6 # for pre-release tests -oslo.config>=1.11.0 # Apache-2.0 +oslo.config>=2.3.0 # Apache-2.0
