On 10/16/2013 1:11 PM, Doug Hellmann wrote:
[snip] Option 3 is closer to the new plan for Icehouse, which is to have _() return a Message, allow Message to work in a few contexts like a string (so that, for example, log calls and exceptions can be left alone, even if they use % to combine a translated string with arguments), but then have the logging and API code explicitly handle the translation of Message instances so we can always pass unicode objects outside of OpenStack code (to logging or to web frameworks). Since the logging code is part of Oslo and the API code can be, this seemed to provide isolation while removing most of the magic.
I think this is exactly what we have right now inherited form Havana. The _() returns a Message that is then translated on-demand by the API or in a special Translation log handler.
We just did not make Message look and feel enough like a str() and some outside components (jsonifier in Glance and log Formatter all over) did not know how to handle non text types correctly when non-ascii characters were present.
I think extending from unicode and removing all the implementations in place such that the unicode implementation kick in for all magic methods will solve the problems we saw at the end of Havana.
Thank you, -- Luis A. García Cloud Solutions & OpenStack Development IBM Systems and Technology Group Ph: (915) 307-6568 | T/L: 363-6276 "Everything should be made as simple as possible, but not simpler." - Albert Einstein "Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple." – Steve Jobs _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev