Best practice for string substition with gettext

python at bdurham.com python at bdurham.com
Wed May 19 23:53:59 EDT 2010


Looking for best practice advice on what string substitution
technique to use when using gettext(). Or do all techniques apply
equally?

I can think of at least 3 string techniques:

1. Classic "%" based formatting:

"My name is %(name)s" % locals()

2. .format() based formatting:

"My name is {name}".format( locals() )

3. string.Template.safe_substitute()

import string
template = string.Template( "My name is ${name}" )
template.safe_substitute( locals() )

The advantage of the string.Template technique is that a
translated string with with an incorrectly spelled variable
reference can still yield a usable string value while the other
techniques unconditionally raise an exception. The downside of
the string.Template technique appears to be the inability for one
to customize how a variable is formatted (padding, justification,
width, etc).

Malcolm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100519/4872d6b6/attachment.html>


More information about the Python-list mailing list