在App-Engine上使用Django翻译进行韩语和印地语国际化的问题

2 投票
1 回答
671 浏览
提问于 2025-04-15 22:57

我有一个基于这篇文章的设置,运行得很好。添加更多语言后,它能很好地识别这些语言,除了韩语(ko)和印地语(hi)。中文、日文和希伯来文都没问题,所以我觉得这跟编码或字符集没关系。

我查看了应用引擎SDK里的django代码,发现除了韩语和印地语,我用的其他语言都是django自带的。在默认的settings.py和locale文件夹里,缺少这两种语言。如果我把/usr/local/google_appengine/lib/django[...]/conf/locale里的一个locale文件夹复制过来,并把它改名为'ko',那么在我的应用里就能正常工作了。但是,当我部署到应用引擎时,这个修改就无法复制,所以我需要一些帮助来理解我可能做错了什么。

我的settings.py确实被考虑在内,因为如果我从里面移除某些语言,它们就会停止工作(这很正常)。如果我把django模块复制到我的应用里,比如放在'lib'文件夹下,我能不能用这些模块来替代应用引擎尝试使用的那些模块呢?

我对python/django/app-engine完全是新手,正在用Leopard系统的Mac开发,如果这有什么影响的话。我有最新的应用引擎SDK,截止到星期二。

1 个回答

3

我猜你遇到了这里提到的“地区限制”:http://docs.djangoproject.com/en/dev/topics/i18n/localization/#id1。因为在0.96版本时,Django没有提供那些语言的翻译,所以Django不允许你翻译你的应用。

我觉得使用Django 1.1可能是最简单的选择,因为它支持那些语言的翻译。不过,你可能需要检查一下你的代码,修复0.96和1.1之间的一些不兼容问题。

要使用Django 1.1,你可以按照这里的说明进行操作:http://code.google.com/intl/en-US/appengine/docs/python/tools/libraries.html#Django

具体步骤如下:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')

撰写回答