在Google appengine上使用django international

阅读更多

昨天使用zipimport方式引入django.zip,但是遇到了international无效的问题。早上在Google group上反映了这个问题,没想到下午就有好心人回答了我的问题。具体的解决办法是把django.zip/conf/locale目录解压出来,比如放到和settings.py同一个目录下的i18n中,然后在settings.py添加如下代码:

appdir = os.path.abspath(os.path.dirname(__file__))
LOCALE_PATHS = (
    os.path.join(appdir, 'i18n', 'locale'),
)

 如果想使用django.middleware.locale.LocaleMiddleware的话需要在main.py里添加如下代码:

from django.conf import settings
sys.modules[settings.__module__].__file__ = os.path.join(
  os.path.dirname(settings.LOCALE_PATHS[0]), '__init__.py'
)

 接下来在settings.py引入LocaleMiddleware:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.doc.XViewMiddleware',
)

  这样一来就不用强制把LANGUAGE_CODE设成zh_CN了,它会根据浏览器的请求来选择对应的语言。

你可能感兴趣的:(Django,Google,OS,浏览器)