Hello,
I am trying to internationalize a script. First I have tried with a little script to understand how it works, but unfortunately, it doesn't.

I have followed instruction in this page:
http://docs.python.org/2/library/i18n.html

I have created my script, marked strings with the _() function, installed it in the main namespace, but when I try to load the locale file it said methat locale is unavailable:

IOError: [Errno 2] No translation file found for domain: 'helloi18n'

C:\dropbox\Public\helloi18n>

I have created the pot file with pygettext, localized it with poedit and compiled the related .mo file.

As reported in this page:
http://docs.python.org/2/library/gettext.html
«Bind the domain to the locale directory localedir. More concretely, gettext will look for binary .mo files for the given domain using the path (on Unix): localedir/language/LC_MESSAGES/domain.mo, where languages is searched for in the environment variables LANGUAGE, LC_ALL, LC_MESSAGES, and LANG respectively.»

I have put my .mo file in locale\it\LC_MESSAGES naming it helloi18n.mo

here are all my files:
https://dl.dropboxusercontent.com/u/4400966/helloi18n.tar.gz

This is the code of the helloi18n.py file:

# Simple script to use internationalization (i18n)
import gettext
import os


LOCALE_DIR = os.path.join(os.path.abspath('.'), 'locale')
print LOCALE_DIR
print "---"
a=gettext.find('helloi18n', LOCALE_DIR, 'it')
print a
gettext.install('helloi18n', localedir=LOCALE_DIR, unicode=1)
gettext.textdomain ('helloi18n')
gettext.translation('helloi18n', LOCALE_DIR, 'it')


if __name__ == '__main__':
        print _('Hello world!')
        print (_('My first localized python script'))



Somebody could help me?


Sandro


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to