gettext PO 또는 POT 카탈로그를 번역자나 외주가 편집할 수 있는 Excel 시트로 만들고, 그대로 다시 PO로 되돌립니다 — 복수형, 컨텍스트, 헤더, 자리표시자, fuzzy 플래그를 모두 보존하고 각 항목은 컨텍스트를 키로 합니다. 범용 텍스트→표가 아니라, gettext 인수인계에 실제로 필요한 한 단계입니다.
이 변환은 gettext 툴체인과 번역자가 각자 익숙한 형식을 쓰면서도 — 그 사이에서 아무것도 잃지 않도록 존재합니다.
GNU gettext 툴체인과 편집기(Poedit, Lokalize, Weblate, Crowdin 등)가 쓰는 이중언어 카탈로그 형식입니다. 문자열마다 하나의 항목에 msgid와 msgstr, 모호성 해소를 위한 선택적 msgctxt, 헤더의 Plural-Forms가 지배하는 복수형(msgid_plural + msgstr[0], msgstr[1] …), 검토가 필요한 문자열을 표시하는 fuzzy 플래그를 가집니다. 정밀해서 눈으로 직접 손볼 대상이 아닙니다.
번역자·검수자·외주가 가장 편하게 여기는 화면입니다. 한 행에 한 문자열, 원문과 번역이 나란히 있어 필터·일괄 편집·주석이 쉽습니다. 문제는 .po를 Excel에서 그대로 열면 복수형이 흩어지고 컨텍스트가 흐려지며 fuzzy 플래그가 사라져 툴체인으로 되돌릴 수 없다는 점입니다.
이 도구가 지키는 것이 바로 그 “되돌릴 수 없음”입니다. 내보낼 때 각 복수 항목을 형마다 한 행으로 확장하고(Type 열에 plural:0, plural:1 …), 각 컨텍스트를 Key 열에 유지하며, fuzzy 플래그를 보존해 미검수 문자열에 표시를 남기고, 헤더를 예약된 @@po.header 행에 한 글자도 빠짐없이 저장합니다 — 그래서 시트가 올바른 PO 카탈로그로 되돌아갑니다. 스프레드시트에서 살릴 수 없는 일부 구조는 보고되며 조용히 버리지 않습니다: 번역자·추출 주석, 소스 참조, previous-msgid 힌트, fuzzy 외 서식 플래그(c-format 등), 폐기 항목입니다. 컴파일된 .mo 파일은 지원하지 않습니다(텍스트 PO/POT만).