오늘은 Django 1.9.6을 사용하여 Django 프로젝트를 만들었습니다. 프로젝트를 만든 후 settings.py에서 중국어 표시 지원을 설정하고(관리 인터페이스의 기본 영어를 중국어로 변경하는 등 가장 간단함)
TIME_ZONE = 'Asia/Shanghai' LANGUAGE_CODE = 'zh-cn'를 정의합니다.
물론 TIME_ZONE은 시간대만 지정하며 중국어 표시와는 아무런 관련이 없습니다. 여기서 기본값을 수정합니다. 그 결과, 프로젝트 실행 시 다음과 같은 오류가 발생했습니다.
django IOError: No translation files found for default language zh-cn
즉, zh-cn에 해당하는 현지화 파일을 찾을 수 없습니다. 일반적으로 zh-cn 인코딩에 해당하는 현지화 폴더는 zh_CN입니다. zh_CN을 검색하기 위해 django 설치 디렉터리로 이동했습니다. 결과는 실제로 contrib 하위 디렉터리 아래 일련의 하위 디렉터리의 locale 폴더에 있었습니다. django 설치 디렉터리에는 zh_CN이 없고 zh_Hans가 있습니다. 이 버전의 django에 왜 zh_CN 폴더가 없는지 모르겠습니다. 어쩌면 버그일 수도 있습니다. 인터넷의 어떤 사람은 전체 zh_Hans 디렉터리를 복사하고 이름을 zh_CN으로 지정하면 이 문제를 해결할 수 있다고 말했습니다. 실제로 실행해 보니 관리자 인터페이스에 중국어가 표시되었습니다. 이 비교적 모방적인 방법에 숨겨진 위험이 있는지 여부는 아직 알 수 없습니다. 나중에 접하게 되면 이야기하겠습니다.
하지만 실제로는 다음과 같이 국제화된 파일을 생성하는 전통적인 방법이 있습니다.
django-admin.py makemessages -l zh_CN
하지만 Windows에서 개발하는 경우에는 gettext 구성 요소가 필요합니다.
at. http://ftp.gnome.org/pub/gnome/binaries/win32/dependents/gettext-runtime-X.zip 및 gettext-tools-X.zip의 최신 버전을 다운로드합니다(참고: X는 버전 번호입니다). 압축을 풀면 두 개의 bin 디렉터리를 병합하여 시스템 환경 변수에 넣을 수 있습니다. 하지만 이 방법은 아직 검증되지 않았습니다. 관심이 있으시면 시도해 볼 수 있습니다.
나중에 다시 생각해보니, django의 이전 버전에는 zh_CN이 있었는데, 이것이 버그라고 말하면 아마도 상대적으로 낮은 수준이어서는 안 될 것 같습니다. 그래서 다시 확인해 보니 zh_Hans가 zh_CN을 대체했을 수도 있습니다. Han은 한자를 의미하고 s는 Simplified를 의미합니다. 어쨌든 LANGUAGE_CODE = 'zh-hans'로 설정하면 중국어가 정상적으로 표시됩니다.
zh-cn은 Django1.9에서 만료됩니다. 새로운 형식은 zh-hans이지만 drf3.1.0은 이러한 유형의 언어를 지원하지 않습니다.
위는 django1.9에서 zh-cn이 만료되었음을 의미합니다. 대신 zh-hans를 사용할 수 있지만 Django의 일부 타사 모듈이 이 변경 사항을 따라잡지 못할 수도 있습니다.
한마디로 인(仁)은 인(仁)을 보고 지혜는 지혜(智智)를 본다. 사실 이렇게까지 공부할 필요는 없다. 갑자기 관심이 생겨서 한동안 공부하게 됐다.
ps: LANGUAGE_CODE = 'zh-cn'을 쓰는 방법은 zh_CN, zh-CN 등 인터넷의 여러 곳에 있습니다. 어떤 사람들은 이런 저런 쓰기 방법만 사용할 수 있다고도 합니다. 어쨌든, 나는 모든 것을 시도했지만 아무런 문제도 발견하지 못했습니다.
여담으로 저는 다음 문단을 보기 전까지는 settings.py의 USE_I18N과 USE_L10N이 무엇을 의미하는지 전혀 몰랐습니다.
웹 서비스가 설정되면 전 세계 여러 국가의 사용자들의 방문을 받을 수 있습니다. 이를 위해서는 개발자가 소프트웨어를 다양한 언어, 즉 국제화 및 현지화에 적합하도록 조정해야 합니다. 국제화
--국제화, i와 n 사이에 I18N이라고 하는 18개의 문자가 있습니다. 현지화 - 현지화, l과 n 사이에 10개의 문자가 있으며 L10N으로 축약됩니다. 국제화는 프로그램 개발자에게 웹
제품이 어디에서나 적용될 수 있다는 것을 의미합니다. 현지화는 번역가를 위해 특정 지역에서 사용할 수 있도록 국제화된 프로그램을 실제로 번역하는 프로세스를 의미합니다.
위 내용은 Django는 중국어 설정 방법을 지원합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!