相关疑难解决方法(0)

Django JavaScript翻译不起作用

我试图按照指南进行操作,但还不够清楚.

  1. 我把它添加到我的urls.py中

    urlpatterns = patterns('',
        (r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用以下命令生成lang文件:

    django-admin.py makemessages -d djangojs -l fr
    
    Run Code Online (Sandbox Code Playgroud)

root_folder/locale/fr/LC_MESSAGES现在包含django.podjangojs.poalert(gettext('this is to be translated'));在我的js文件之一是在回升djangojs.po.

  1. 我跑了django-admin.py compilemessages并重新启动了服务器.

  2. 将此添加到我的base.html:

    <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我添加了"locale"以避免在动态加载翻译时未传递包名称的例外.

  1. /jsi18n/locale/从我的浏览器访问,我得到的是Django翻译功能:

    /* gettext library */
    
    var catalog = new Array();
    
    function pluralidx(count) { return (count == 1) ? 0 : 1; }
    
    
    function gettext(msgid) {
    ....
    
    Run Code Online (Sandbox Code Playgroud)

为什么'这是要被翻译'没有显示,在哪个基础上它将显示一个特定的语言而不传递它的URL?

python django translation gettext

8
推荐指数
2
解决办法
8039
查看次数

Django makemessages不适用于JS文件

我的设置

settings.py

INSTALLED_APPS = (
    ...
    'myprojectname',
    ...
)

STATIC_ROOT = '/var/www/a_valid_path/'

LOCALE_PATHS = (
    os.path.join(BASE_DIR, "locale"),
)
Run Code Online (Sandbox Code Playgroud)

urls.py

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('myprojectname',),
}

urlpatterns = patterns('',
    ...
    url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
    ...
)
Run Code Online (Sandbox Code Playgroud)

我的项目结构如下:

|- projectname
|--- app1
|--- app2
|--- manage.py
|- virtualenv
|- static
|--- js
|--- css
Run Code Online (Sandbox Code Playgroud)

我还有locale我项目的根文件夹中的文件夹,其manage.py位置.

我在做什么

只需运行:

./manage.py -l ro -d djangojs
Run Code Online (Sandbox Code Playgroud)

我的问题

它不起作用.没有.po生成任何文件.但是,服务器端转换工作(视图+模板).我遵循了所有的建议,但仍然没有.甚至试图自己创建djangojs.po文件,看看Django是否删除了它,或者用它做了什么 - 不行.

没有错误产生,只是processing locale ro显示(在很短的时间内 - 如果你问我那么短),就是这样.有帮助吗? …

django internationalization

5
推荐指数
1
解决办法
2628
查看次数