#django #django-rosetta
#django #django-rosetta
Вопрос:
Я использую Django Rosetta v 0.7.6 (для сопоставления с библиотеками и версией Django, чтобы заставить его работать с веб-приложением). Он переводится с en-us на ar (арабский) и работает практически во всем, но некоторые строки отсутствуют, и я не могу найти, что не так, и почему не переводятся все из них.
Это часть языков в settings.py документ и путь к локали на случай, если что-то должно быть изменено (или в другом порядке, как должно быть):
TEMPLATE_DIRS = (os.path.join(PACKAGE_ROOT, 'templates'),os.path.join(PACKAGE_ROOT, 'templatetags')) TEMPLATE_DIRS
LOCALE_PATHS = (os.path.join(PACKAGE_ROOT, '../locale'),)
# If the rosetta library has been installed, and add to INSTALLED_APPS
try:
import rosetta
INSTALLED_APPS = ('rosetta',)
except ImportError:
pass
ugettext = lambda s: s
LANGUAGES = (
('en-us', ugettext('English')),
('ar', ugettext('Arabic')) #Your second language
)
LANGUAGE_CODE = 'en-us' #Your default language
USE_L10N = True
Документ .po генерирует в начале эти строки с нечеткой и пустой строкой, а после этого немного мамбо-джамбо о датах года версии… а затем весь список со связью между документом, переведшим строки, и двумя языками (#: documet/translated/form.htm:1234, msgid «Строка в en-us» msgstr «строка в ar»).
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""`
Во всем документе .po просто отсутствуют те, которые не переведены на странице, но ни в одном из них не упоминается исходная строка в en-us, поэтому я предполагаю, что это даже не пытается их перевести, потому что их нет в документе .po.
На следующем рисунке представлены журналы этих строк, файлы… непереведено. И позже раздел code .htm для первой формы на странице django Rosetta, которая не переведена и показана на картинке.
{% extends "views/forms/base.htm" %}
{% load i18n %}
{% block form_content %}
<!-- Resource Type CRUD Form -->
<hr class="divider arches-RDM-divider">
<div id="site_ID-section">
<!-- Name CRUD Form -->
<div class="row">
<div class="col-xs-12">
<div class="padding-left-10">
<dl>
<!-- Title -->
<dt>
<h5 id="arches-names-form" class="section-headline">{% trans "National ID" %}</h5>
</dt>
<!-- Form -->
<dd>
<div class="row">
<div class="col-xs-12 hidden-xs">
<input class="form-control arches-form-input" id="resource-name" style="width: 18%;" placeholder='{% trans "National ID" %}' data-bind='value: getEditedNode("SITE_ID.E42", "value")'>
{% include 'views/components/add-item-button.htm' %}
</div>
<div class="col-xs-12 hidden-sm hidden-md hidden-lg">
<input class="form-control arches-form-input" id="resource-name" style="width: 33%;" placeholder='{% trans "National ID" %}' data-bind='value: getEditedNode("SITE_ID.E42", "value")'>
<div class="margin-top-5"></div>
>
<!-- Spacer (for xs screens) -->
<div class="margin-top-5"></div>
{% include 'views/components/add-item-button.htm' %}
</div>
</div>
</dd>
<!-- End Form -->
</dl>
</div>
</div>
</div>
<!-- End Name CRUD Form Container -->
<!-- Name Records -->
<div class="row">
<div class="col-xs-12">
<!-- -->
<div class="arches-crud-child-section">
<dl>
<dd class="arches-CRUD-child-title">
{% trans "This resource has the following ID code:" %}
</dd>
<dd class="margin-left-5" style="display: none;" data-bind="visible: true">
<div data-bind="visible: getBranchLists().length == 0" class="txt-color-blue">{% trans "No ID Defined" %}</div>
<div data-bind='foreach: getBranchLists()'>
<div class="arches-crud-record">
<a href="javascript:void(0)" class="arches-CRUD-child" title="{% trans "Delete this name" %}"><i data-bind="click: $parent.deleteItem.bind($parent)" class="arches-CRUD-delete fa fa-times-circle"></i></a>
<a href="javascript:void(0)" class="arches-CRUD-child arches-CRUD-edit" data-bind="click: $parent.editItem.bind($parent)" title="{% trans "Edit this name" %}"><span data-bind='text: nodes.get("SITE_ID.E42", "value")' style="padding-right:2px;"></span><span class="text-muted arches-crud-type-identifier"></span>
</a>
</div>
</div>
</dd>
</dl>
</div>
</div>
</div>
Пожалуйста, вот как это выглядит при переводе и на языке оригинала, на всякий случай, если это поможет локализовать, что не так, я перезагрузил экземпляр, а также сервер, но тот же ответ после этого:
Комментарии:
1. Возможно, следует добавить USE_I18N? не уверен, будет ли это иметь эффект, поскольку я только что добавил USE_L10N = True? Какие-нибудь идеи?
2. Вы обновили свой каталог переводов (документ PO) после изменения шаблонов? Вы упоминаете, что оригинальные английские строки отсутствуют в каталоге, что означает, что вы не запускали
python manage.py makemessages -a
обновление каталога из своих шаблонов и исходного кода python.