django 1.8 공식 문서 번역: 9-1-4 서식 현지화

4061 단어 django
서식 현지화
개관
Django의 포맷 시스템은 템플릿에서 현재 를 사용할 수 있습니다.지역날짜, 시간, 숫자를 보여 주는 특정한 형식입니다.양식에 입력한 로컬화를 처리할 수도 있습니다.
이 프로그램이 켜져 있을 때, 같은 내용을 방문한 두 사용자는 현재 지역의 형식에 따라 다른 방식으로 포맷된 날짜, 시간, 숫자를 볼 수 있습니다.
포맷 시스템은 기본적으로 비활성화되어 있습니다.설정 파일에 USE_L10N = True을 설정해서 사용해야 합니다.
주의
편의를 위해 django-admin startproject settings.py   [ USE_L10N = True ](../../ref/settings.html#std:setting-USE_L10N) 。 하지만 천 자리 구분자의 숫자 포맷을 켜려면 설정 파일에 USE_THOUSAND_SEPARATOR = True을 설정해야 합니다.또는, 당신의 템플릿에서 intcomma을 사용하여 숫자를 포맷할 수도 있습니다.
주의USE_I18N은 또 다른 독립적이고 관련 설정으로 Django가 번역을 시작해야 하는지 여부를 제어한다.상세하다번역.
양식의 현지화 식별 입력
포맷이 시작되면 Django는 폼에서 날짜, 시간, 숫자를 로컬 포맷으로 해석할 수 있습니다.즉, 폼에 입력할 때, 사용자가 사용하는 형식을 추측하기 위해 다른 형식과 지역을 시도할 것이다.
주의
Django는 프리젠테이션 데이터의 다른 형식을 사용하고 해석합니다.특히 해석 날짜의 양식은 %a(주명칭의 줄임말), %A(주명칭의 전칭), %b(월명칭의 줄임말), %B(월명칭의 전칭), 또는 %p(오전/오후)을 사용할 수 없다.localize 매개 변수를 사용하면 폼 필드의 현지화 입력과 출력을 열 수 있습니다.
class CashRegisterForm(forms.Form):
   product = forms.CharField()
   revenue = forms.DecimalField(max_digits=4, decimal_places=2, localize=True)

템플릿에서 현지화 제어USE_L10N을 사용하여 포맷을 시작할 때, Django는 지역의 특정한 포맷을 사용해서 값이 템플릿의 어느 위치에서 출력되든지 시도합니다.
그러나 이것은 로컬화된 값에 항상 적합할 수 없습니다. 자바스크립트나 기계가 읽는 XML을 출력하고 있다면 로컬화된 값을 사용하려고 할 것입니다.특정 템플릿에서만 로컬화를 사용하고 싶을 수도 있고, 그 어떤 위치에서도 사용하지 않으려고 할 수도 있다.
DJango는 l10n 템플릿 라이브러리를 제공하여 다음과 같은 라벨과 필터를 포함하여 현지화에 대한 세밀한 제어를 실현한다.
템플릿 레이블
localize
포함된 코드 블록에서 템플릿 변수의 로컬화를 열거나 닫습니다.
이 라벨은 현지화에 대해 USE_L10N보다 더욱 정교한 조작을 할 수 있다.
이렇게 하면 템플릿에 대한 로컬화가 활성화되거나 비활성화됩니다.
{% load l10n %}

{% localize on %}
    {{ value }}
{% endlocalize %}

{% localize off %}
    {{ value }}
{% endlocalize %}

주의{% localize %} 코드 블록에서 f USE_L10N의 값을 따르지 않습니다.
모든 변수를 바탕으로 같은 작업을 수행하는 템플릿 필터는 localizeunlocalize을 참조한다.
템플릿 필터
localize
단일 값의 현지화를 강제합니다.
예를 들면 다음과 같습니다.
{% load l10n %}

{{ value|localize }}
unlocalize을 사용하여 단일 값에서 로컬화를 비활성화합니다.localize 템플릿 라벨을 사용하여 큰 블록의 템플릿 영역에서 현지화를 제어합니다.
unlocalize
강제 단일 값은 로컬화된 출력을 포함하지 않습니다.
예를 들면 다음과 같습니다.
{% load l10n %}

{{ value|unlocalize }}
localize을 사용하여 단일 값의 현지화를 강제합니다.localize 템플릿 라벨을 사용하여 큰 블록의 템플릿 영역에서 현지화를 제어합니다.
사용자 정의 형식 파일 만들기
Django는 많은 지역에 포맷 정의를 제공하지만, 때때로 포맷을 만들고 싶을 수도 있습니다. 포맷 파일이 존재하지 않거나, 그 값을 덮어쓰고 싶을 수도 있습니다.
Changed in Django 1.8: FORMAT_MODULE_PATH을 목록으로 지정하는 기능이 추가되었습니다.이전에는 단일 문자열 값만 지원했습니다.
사용자 정의 형식을 사용하기 위해 먼저 형식 파일을 놓을 위치를 지정합니다.FORMAT_MODULE_PATH 설정을 형식 파일에 존재하는 패키지 이름으로 설정합니다. 예를 들어:
FORMAT_MODULE_PATH = [
    'mysite.formats',
    'some_app.formats',
]

파일은 이 디렉터리에 직접 두지 않고 지역 이름과 같은 디렉터리에 두며 파일도 반드시 formats.py이라고 해야 한다.
영어 형식을 사용자 정의하려면 다음과 같은 구조가 필요합니다.
mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

이 중 formats.py은 사용자 정의 형식 정의를 포함한다.예를 들면 다음과 같습니다.
from __future__ import unicode_literals

THOUSAND_SEPARATOR = '\xa0'

영어의 기본 쉼표 대신 비 인터럽트 공백(Unicode 00A0)을 천 자리 구분자로 사용합니다.
현지화된 형식의 제한을 제공하다
일부 지역에서는 숫자에 대해 상하문에 민감한 형식을 사용하는데, Django의 현지화 시스템은 자동으로 그것을 처리할 수 없다.
스위스 (독일어)
스위스의 숫자 포맷은 포맷된 숫자 유형에 달려 있다.화폐 값의 경우 쉼표를 천 자리 구분자로 사용하고 소수점을 십진 구분자로 사용한다.다른 숫자의 경우 쉼표는 10진수 구분자, 공백은 천 자리 구분자입니다.Django에서 제공하는 로컬 형식은 일반적인 구분자를 사용합니다. 즉, 쉼표는 십진수 구분자에 사용되고, 공백은 천 자리 구분자에 사용됩니다.
번역자: Django 문서 공동 번역 팀, 원문: ocalized 웹 UI formatting and form input.
본고는 CC BY-NC-SA 3.0 프로토콜로 발표되었으며 전재는 작가의 서명과 글의 출처를 보존해 주십시오.
Django 문서 협동 번역팀은 일손이 부족해서 관심 있는 친구가 우리에 가입할 수 있습니다. 완전 공익적입니다.교류군: 467338606.

좋은 웹페이지 즐겨찾기