DevOps/OpenStack

Openstack .pot 파일 생성해보기!

Sophie소피 2025. 10. 25. 17:36

미션 1. Launchpad 이슈 리포트 

 

Bug #2119208 “Migrate Translation Platform from Zanata to Weblat...” : Bugs : openstack i18n

The current translation workflow for monasca-ui relies on Zanata, which is no longer actively maintained. To ensure continuity and improve maintainability, we propose migrating the translation environment from Zanata to Weblate. ---------------------------

bugs.launchpad.net

 

- 그러나 해도 의미가 없는 기여가 되어벌임 ... 그래도 기록은합니다..

 

미션 2. pot 파일 생성해보기

monasca-ui 프로젝트의 번역 기반이 되는 POT (Portable Object Template) 파일을 직접 생성하고 번역 프로세스를 실습해보았습니다.


Step 1. 프로젝트 clONE

cd ~/workspace
git clone <https://opendev.org/openstack/monasca-ui.git>
cd monasca-ui

 

 

 

미션 2. pot 파일 생성해보기

monasca-ui 프로젝트의 번역 기반이 되는 POT (Portable Object Template) 파일을 직접 생성하고 번역 프로세스를 실습해보았습니다.


Step 1. 프로젝트 clONE

cd ~/workspace
git clone <https://opendev.org/openstack/monasca-ui.git>
cd monasca-ui

 

 


Step 2. 가상환경 생성 및 활성화

  • 독립된 파이썬 환경을 만들고, 필요한 패키지를 설치합니다. (babel 등 포함
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

 

 


Step 3. pybabel extract 실행하여 pot 파일 생성 .

pybabel extract -F babel-django.cfg \\
  --add-comments Translators: \\
  --msgid-bugs-address="<https://bugs.launchpad.net/openstack-i18n/>" \\
  --project=monasca-ui \\
  -k gettext_noop -k gettext_lazy -k ngettext_lazy:1,2 \\
  -k ugettext_noop -k ugettext_lazy -k ungettext_lazy:1,2 \\
  -k npgettext:1c,2,3 -k pgettext_lazy:1c,2 -k npgettext_lazy:1c,2,3 \\
  -o monitoring/locale/django.pot monitoring --version master
  • babel-django.cfg 설정파일에 따라 소스 코드에서 번역 문자열을 추출합니다.
  • monitoring/locale/django.pot 파일에 결과를 저장합니다.

 

 

Step 4. 생성된 pot 파일 확인

• pot 파일에 추출된 번역 문구들이 잘 들어있는지 확인합니다.

cat monitoring/locale/django.pot

 


미션 3. Weblate에 프로젝트 / 컴포넌트 생성해보기

Zanata에서 Weblate으로의 마이그레이션 흐름을 이해하고, 실제로 Weblate에 프로젝트/컴포넌트를 구성합니다.

또한, Weblate에서는 어떻게 번역 환경이 세팅되는지 구조적으로 파악하고 실습합니다.


Step 1. 기존 구조 이해하기 Zanata → Weblate

Zanata는 다음과 같은 구조로 번역을 관리합니다:

[프로젝트]
  └── [버전]
        └── [소스(pot)]
        └── [언어별 번역(po)]

반면, Weblate는 아래와 같은 구조로 번역을 관리합니다:

[프로젝트]
  └── [컴포넌트]
        └── 번역 파일 (.po/.pot 등)

 

 

Step 2. Weblate에서 프로젝트 생성해보기

 

 

Step 3. 컴포넌트 생성하기

 

 

1. SSH 키 생성 및 Git 접근 설정

  • SSH 키 생성 (id_ed25519)
  • OpenDev 계정 생성 및 공개키 등록 시도
  • .ssh/config 설정 및 ssh-add 등록까지 완료
  • 다수 키 생성 및 등록 과정에서 일관되지 않은 이메일로 인한 혼선 존재

2. Git 서버 인증 실패

  • ssh -T git@opendev.org 시 계속해서 Permission denied (publickey) 오류 발생
  • OpenDev Gerrit 서버에서 키 인증이 제대로 이루어지지 않는 문제로 Git 접근 불가

3. Weblate 실습을 위한 Git 저장소 접근 불가

  • Weblate 프로젝트 생성을 위해 Git 원격 저장소 접근이 필요한데,
  • OpenDev 저장소 clone 실패로 인해 Weblate 연동 테스트 중단됨

 

 

 

 

내 monasca 안녕......