[장고] 다국어 번역 메시지 파일 만들기

소요 시간: 5분

번역 파일은 Django 애플리케이션에서 다국어 지원을 구현하는 데 중요한 역할을 합니다. 이 파일들은 애플리케이션의 사용자 인터페이스(UI)와 관련된 텍스트를 다양한 언어로 번역하는 데 사용됩니다. 번역 파일의 주요 역할을 다음과 같이 정리할 수 있습니다:


변역 파일

1. 번역 데이터 저장

번역 파일은 소스 코드의 원본 문자열과 해당 문자열의 번역본을 저장합니다. 일반적으로 .po 파일 형식을 사용하며, 이 파일에는 번역 대상 문자열(msgid)과 번역된 문자열(msgstr)이 쌍으로 저장됩니다.

msgid "Hello, world!"

msgstr "안녕하세요, 세계!"

2. 번역 프로세스 관리

번역 파일은 번역 프로세스를 관리하는 데 중요한 역할을 합니다. 개발자가 gettext와 같은 함수를 사용하여 코드에 번역할 문자열을 표시하면, makemessages 명령어를 통해 이러한 문자열을 자동으로 추출하여 번역 파일을 생성합니다. 그런 다음 번역자는 이 파일을 열어 각 문자열의 번역을 추가합니다.

3. 다국어 지원 유지보수

번역 파일은 다국어 지원 애플리케이션의 유지보수를 용이하게 합니다. 애플리케이션의 문자열이 변경되거나 새로운 문자열이 추가될 때마다 번역 파일을 업데이트하고 번역을 추가하거나 수정할 수 있습니다. 이는 애플리케이션이 여러 언어를 계속해서 지원할 수 있도록 합니다.

4. 번역 파일 컴파일

번역 파일은 최종적으로 컴파일되어 애플리케이션에서 사용할 수 있는 mo 파일로 변환됩니다. 이 컴파일된 파일은 더 빠르고 효율적으로 번역을 제공할 수 있게 합니다.

5. 사용자 언어에 맞춘 번역 제공

번역 파일은 사용자의 언어 설정에 따라 애플리케이션이 적절한 언어로 UI를 표시할 수 있게 합니다. Django는 사용자의 브라우저 설정이나 애플리케이션 내 언어 설정을 기반으로 적절한 번역을 선택하여 표시합니다.

번역 파일의 구조

번역 파일은 다음과 같은 구조를 가집니다:

# 번역 파일의 헤더
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 12:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

# 번역할 문자열과 번역된 문자열
msgid "Hello, world!"
msgstr "안녕하세요, 세계!"

msgid "Goodbye!"
msgstr "안녕히 가세요!"

이러한 번역 파일을 통해 Django 애플리케이션은 다양한 언어를 지원하고, 글로벌 사용자에게 맞춤형 경험을 제공할 수 있습니다.


메시지 파일 만드는 방법

1. 메시지 파일 생성

터미널에서 다음 명령어를 실행하여 각 언어에 대한 메시지 파일을 생성합니다:

django-admin makemessages -l en
django-admin makemessages -l ko
django-admin makemessages -l ja

이 명령어를 실행하면 locale/en/LC_MESSAGES/django.po, locale/ko/LC_MESSAGES/django.po, locale/ja/LC_MESSAGES/django.po 파일이 생성됩니다.

2. 메시지 파일 번역

각 언어에 대한 메시지 파일을 열어 번역을 추가합니다.

영어 메시지 파일 (locale/en/LC_MESSAGES/django.po)

msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Language: en\n"

msgid "Hello, world!"
msgstr "Hello, world!"

msgid "Welcome"
msgstr "Welcome"

msgid "Goodbye"
msgstr "Goodbye"

한국어 메시지 파일 (locale/ko/LC_MESSAGES/django.po)

msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Language: ko\n"

msgid "Hello, world!"
msgstr "안녕하세요, 세상!"

msgid "Welcome"
msgstr "환영합니다"

msgid "Goodbye"
msgstr "안녕히 가세요"

일본어 메시지 파일 (locale/ja/LC_MESSAGES/django.po)

msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Language: ja\n"

msgid "Hello, world!"
msgstr "こんにちは、世界!"

msgid "Welcome"
msgstr "ようこそ"

msgid "Goodbye"
msgstr "さようなら"

3. 메시지 파일 컴파일

각 번역 파일을 컴파일합니다. 터미널에서 다음 명령어를 실행합니다:

django-admin compilemessages


장고 리스트