나는 여러 번 요청했기 때문에 이것을 묻는 것에 대해 기분이 좋지 않습니다.
Django 번역을 올바른 방법으로 설정하는 방법은 무엇입니까?
http://askbot.org/en/question/8948/weve-edited-djangopo-files-but-translations-do-not-work-why/
영어 (기본값)와 슬로베니아어를 사용하고 싶습니다. 내 설정은 다음과 같습니다.
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
)
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Belgrade'
USE_I18N = True
USE_L10N = True
USE_TZ = True
from django.utils.translation import ugettext_lazy as _
LANGUAGES = (
('si', _('Slovenian')),
('en-us', _('English')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
Urls.py :
urlpatterns = i18n_patterns('',
url(r'^', include('analytics.urls')),
url(r'^login', RedirectView.as_view(url='/admin/login', permanent=False)),
url(r'^admin/', include(admin.site.urls)),
)
템플릿 :
<div class="time_range">{% trans "Time range:" %}</div>
나는 메시지를 .po 파일로 컴파일했고 이제 문서에 따르면 이것이 작동하기 시작할 것으로 예상합니다. 그러나 나에게는 운이 없습니다. / si / 접두사가있는 URL을 방문하면 여전히 영어 문자열이 표시됩니다.
이것이 중요한지 확실하지 않지만 국제화 된 응용 프로그램에는 다음이 있습니다.
LANGUAGES = (
("nl", "Nederlands"),
("en", "English"),
)
즉, _()
문자열 주변이 없습니다 . 귀하의 코드는 사용자가 정의하는 방법을 표시하지 않습니다 _
, 문서는 당신에게 별명을로했다고 밝혔습니다 ugettext_lazy()
. 어쩌면 차이를 만들 수도 있습니다.
또한 문제를 보여주는 최소한의 Django 애플리케이션 (예 : github)에 소스 코드를 제공하면 더 쉽게 도움이 될 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다