PO/Gettext 번역
대상 언어: zh-Hans-CN (Chinese, Simplified Chinese, China)
대상 언어의 코드. 예: ko, ko-KR, fil, zh-Hans-CN. 검색하려면 입력하세요.
메타데이터 번역:
번역가 주석 및 헤더 필드와 같은 PO 파일 메타데이터를 메시지 문자열과 함께 번역할지 여부를 나타냅니다. 이 옵션을 비활성화하면 번역된 출력물에서 메타데이터가 변경되지 않도록 보장합니다.
축약형 사용:
문법 축약형을 사용할지를 나타냅니다. 축약형을 사용하면 번역이 덜 공식적이 됩니다.
단축형 사용:
번역이 소스 텍스트보다 길 경우 단축형을 사용할지를 나타냅니다.
용어:
소스 PO 콘텐츠:
AI가 콘텐츠를 처리하는 데 시간이 걸릴 수 있습니다(최대 5분). 이 PO 번역 페이지는 실시간으로 번역하며 서버에 콘텐츠를 저장하지 않습니다. 대용량 PO 파일의 경우, 더 안정적인 처리를 위해 I18N 파일 번역 페이지 사용을 권장합니다. 번역이 완료될 때까지 이 페이지를 떠나지 마세요.

PO/Gettext 파일을 온라인으로 번역하는 방법

AI 기반 서비스를 사용하여 PO(Portable Object) 파일을 빠르고 정확하게 번역하세요. PO 형식 구조를 유지하면서 gettext 현지화 콘텐츠를 번역하려면 다음 단계를 따르세요.

  1. PO 콘텐츠 붙여넣기: "소스 PO 콘텐츠" 섹션에 PO 또는 POT 파일 내용을 붙여넣으세요. 저희 서비스는 msgid, msgstr, 주석, 복수형 및 컨텍스트 항목을 포함한 표준 PO 형식을 인식합니다.
  2. 대상 언어 설정: 번역할 대상 언어 코드(예: 프랑스어의 경우 'fr-FR', 독일어의 경우 'de')를 입력하세요.
  3. 번역 시작: "번역" 버튼을 클릭하여 시작하세요. AI가 PO 구조를 처리하고 msgid 항목, 주석 및 형식 플레이스홀더를 유지하면서 msgstr 값을 번역합니다.
  4. 복사 또는 저장: 번역이 완료되면 번역된 PO 콘텐츠를 클립보드에 복사하거나 프로젝트에서 바로 사용할 수 있는 .po 파일로 저장하세요.

PO 및 POT 파일이란 무엇인가요?

PO(Portable Object) 파일은 GNU gettext 국제화 시스템에서 만든 널리 사용되는 현지화 형식입니다. msgid(원본 텍스트)와 msgstr(번역된 텍스트) 항목을 사용하여 번역 가능한 문자열을 키-값 쌍으로 저장합니다.

PO 파일은 WordPress, PHP 애플리케이션, Python(Django, Flask), Ruby on Rails, C/C++ 프로그램 및 GTK나 GNOME으로 빌드된 데스크톱 애플리케이션을 포함한 많은 오픈 소스 프로젝트와 프레임워크의 표준 현지화 형식입니다.

PO 파일 형식 구조

PO 파일은 다음 핵심 요소들로 구성된 항목들로 이루어져 있습니다:

# Translation file for MyApp
#: src/components/header.js:12
msgid "Welcome to our application"
msgstr ""

#: src/components/login.js:8
msgid "Sign in to your account"
msgstr ""

#: src/components/dashboard.js:15
msgid "You have %d new messages"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
  • msgid — 번역되지 않은 원본 문자열(소스 텍스트)입니다. 번역을 찾기 위한 키 역할을 합니다.
  • msgstr — 대상 언어로 번역된 문자열입니다. msgstr 값이 비어 있으면 번역되지 않은 문자열임을 나타냅니다.
  • 주석 (#) — 번역가를 위한 컨텍스트를 제공합니다. #:은 소스 파일 참조를 나타내고, #.은 추출된 주석을 포함하며, #,fuzzy와 같은 플래그를 담고 있습니다.
  • 복수형 (msgid_plural, msgstr[N]) — 언어별 복수 규칙을 처리합니다. 언어마다 복수형의 개수가 다릅니다(예: 영어는 2개, 폴란드어는 3개, 아랍어는 6개).
  • 컨텍스트 (msgctxt) — 동일한 소스 문자열이라도 상황에 따라 다른 번역이 필요한 경우(예: 동사 vs 형용사로서의 "Open") 이를 구분합니다.

PO vs. POT 파일

POT(Portable Object Template) 파일은 PO 파일을 생성하는 데 사용되는 템플릿입니다. 여기에는 msgstr 값이 비어 있는 모든 소스 문자열이 포함되어 있습니다. 새 번역을 시작할 때 POT 파일을 복사하여 대상 언어에 맞게 이름을 바꾸고(예: fr.po) 번역을 채워 넣습니다.

저희 서비스는 PO와 POT 콘텐츠를 모두 지원합니다. 형식을 붙여넣기만 하면 AI가 모든 msgstr 항목에 대한 번역을 생성합니다.

POT 파일 예시

헤더와 번역 가능한 문자열이 포함된 일반적인 POT 템플릿 파일 예시입니다:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-01 00:00+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: src/app.py:42
msgid "Hello, World!"
msgstr ""

PO 번역 서비스를 사용해야 하는 이유

  • AI 기반 컨텍스트 번역: 고급 AI가 PO 파일 구조를 이해하고 gettext 형식 플레이스홀더(예: %s, %d, %(name)s)를 처리하며, 대상 언어의 문화적 뉘앙스에 맞춰 번역을 조정합니다.
  • 전체 gettext 형식 지원: 헤더, 주석, 컨텍스트 항목(msgctxt), 복수형 및 형식 플래그를 포함한 모든 PO 형식 기능을 처리합니다. 번역 중에도 PO 구조가 완벽하게 유지됩니다.
  • 복수형 처리: 대상 언어 규칙에 따라 올바른 복수형 번역을 생성합니다. 대상 언어의 복수형이 2개든 3개든 6개든, AI가 적절한 msgstr[N] 항목을 생성합니다.
  • 로캘별 조정: 번역된 문자열 내의 숫자, 날짜 및 기타 로캘에 민감한 콘텐츠를 대상 언어 관습에 맞게 자동으로 조정합니다.
  • 오류 처리: AI 번역 오류를 감지하고 수정하여 일관되게 높은 품질의 PO 파일 출력을 보장합니다.
  • 비용 효율성: 매월 30,000자 무료로 합리적인 가격을 누리세요.가격 보기
  • 대용량 PO 파일 최적화: 대용량 PO 파일을 관리 가능한 단위로 나누어 효율적으로 처리하며, 모든 항목에 걸쳐 사전 정의된 용어와 컨텍스트를 유지하여 번역 일관성을 보장합니다.

PO 파일 번역의 일반적인 사용 사례

PO 파일은 다양한 플랫폼과 프레임워크에서 표준 현지화 형식으로 사용됩니다:

  • WordPress: WordPress 테마와 플러그인은 국제화를 위해 PO/POT 파일을 사용합니다. gettext 시스템은 WordPress 콘텐츠를 200개 이상의 언어로 번역할 수 있게 하는 표준 방식입니다.
  • PHP 애플리케이션: PHP의 gettext 확장은 PO 파일을 기본적으로 사용합니다. Laravel, Symfony, CakePHP와 같은 프레임워크는 다국어 애플리케이션을 위한 PO 기반 현지화를 지원합니다.
  • Python (Django, Flask): Django는 gettext와 PO 파일을 표준 현지화 메커니즘으로 사용합니다. makemessages 명령은 번역 가능한 문자열을 POT 파일로 추출하고, compilemessages는 PO 파일을 바이너리 MO 파일로 컴파일합니다.
  • Ruby on Rails: Rails는 기본적으로 YAML을 사용하지만, 많은 Ruby 프로젝트는 특히 기존 gettext 기반 번역 워크플로우와 통합할 때 PO 파일과 함께 gettext 젬을 사용합니다.
  • C/C++ 프로그램: GNU gettext는 원래 C 프로그램을 위해 설계되었습니다. 많은 시스템 유틸리티, 명령줄 도구 및 데스크톱 애플리케이션이 사용자 인터페이스 번역에 PO 파일을 사용합니다.
  • JavaScript/TypeScript (Lingui): Lingui는 React, Next.js 및 기타 JavaScript 프레임워크를 위한 현대적인 i18n 라이브러리로, PO/POT 파일을 주요 번역 형식으로 사용합니다. @lingui/cli 도구는 번역 가능한 문자열을 PO 카탈로그로 추출하며, Lingui 런타임은 최적의 성능을 위해 빌드 시 컴파일된 번역을 로드합니다.
  • 데스크톱 애플리케이션 (GTK/GNOME/KDE): Linux 데스크톱 환경과 GTK/Qt 애플리케이션은 PO 파일에 의존합니다. GNOME 및 KDE 프로젝트는 수십 개의 언어에 걸쳐 수천 개의 PO 파일을 관리합니다.

PO 번역 vs. 다른 현지화 형식

PO 파일은 오픈 소스 커뮤니티에서 30년 이상의 역사를 가진 가장 확립된 현지화 형식 중 하나입니다. JSON이나 YAML 기반 형식과 달리 PO 파일은 복수형, 번역가 주석, 소스 참조 및 컨텍스트 구분 기능을 내장하고 있습니다.

현대적인 프레임워크는 종종 JSON(i18next, React Intl)이나 YAML(Rails)을 사용하지만, PO는 WordPress 플러그인, PHP 애플리케이션, Python Django 프로젝트 및 Linux 데스크톱 소프트웨어에서 여전히 선호되는 형식입니다. 저희 서비스는 두 세계를 연결합니다. 여기서 PO 콘텐츠를 번역하거나, 일괄 처리를 위해 I18N 파일 번역 페이지를 사용하세요.

저희 AI 번역은 헤더(Project-Id-Version, Content-Type, Plural-Forms), 번역가 주석, 소스 파일 참조 및 형식 플래그를 포함한 전체 PO 파일 구조를 유지하여, 번역된 PO 파일이 msgfmt와 같은 gettext 도구에서 즉시 사용될 수 있도록 합니다.