일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- localization
- 국제화
- 현지화
- gettext
- coursera
- Python
- internationalization
- deeplearning.ai
- gettext_windows
- andrew ng
- AI
- I18N
- docker
- Today
- Total
JMANI
python3.7 i18n gettext, gettext_windows 본문
python 3.7.0
Windows
1. 국제화 대상 파일
# test.py
import gettext, gettext_windows
gettext_windows.setup_env() # window
t = gettext.translation('messages', 'locale')
_ = t.gettext
trans = _('translatable')
apple = _('apple')
2. *.pot file 생성
pybabel extract <대상 files>
-o : output file name
> mkdir locale
> pybabel extract <test.py> -o <locale/messages.pot> # create *.pot
> pybabel extract . -o <locale/messages.pot> # 현재 경로의 모든 파일
extracting messages from <your\path>\test.py
writing PO template file to locale/messages.pot
msgid "apple"
msgstr ""
> 수정
msgid "apple"
msgstr "사과"
3. *.po file 생성
# create *.po
> pybabel init -l ko_KR -i <locale/messages.pot> -d locale
creating catalog locale\ko_KR\LC_MESSAGES\messages.po based on locale/messages.pot
4. *.mo file 생성
# create *.mo
> pybabel compile -f -d locale
compiling catalog locale\ko_KR\LC_MESSAGES\messages.po to locale\ko_KR\LC_MESSAGES\messages.mo
5. 실행
gettext.translation().install(<your application>)
# test1.py
import test
import gettext, gettext_windows
locale_path = 'locale'
gettext_windows.setup_env() # set windows env
lang = gettext_windows.get_language()
# domain: your *.mo file name
language = gettext.translation(domain='messages', localedir=locale_path, languages=lang)
language.install(test)
print(test.trans, test.apple)
번역가능한 사과
Linux
1. 국제화 대상 파일
# test.py
import gettext
t = gettext.translation('messages', 'locale')
_ = t.gettext
trans = _('translatable')
apple = _('apple')
2. *.pot file 생성
pybabel extract <대상 files>
-o : output file name
-k : keword
when you use <get_resouce> instead of '_' in test.py, command 'pybabel extrac -k get_resource'
get_resource = t.gettext
apple = get_resource('apple')
> mkdir locale
> pybabel extract <test.py> -o <locale/messages.pot> # create *.pot
> pybabel extract . -o <locale/messages.pot> # 현재 경로의 모든 파일
> pybabel extract . -o <locale/messages.pot> -k <get_resource># 번역할 keyword, default='_' or 'N_'
extracting messages from <your/path>\test.py
writing PO template file to locale/messages.pot
3. *.po file 생성
# create *.po
> pybabel init -l ko_KR -i <locale/messages.pot> -d locale
creating catalog locale/ko_KR/LC_MESSAGES/messages.po based on locale/messages.pot
4. *.mo file 생성
# create *.mo
> pybabel compile -f -d locale
compiling catalog locale/ko_KR/LC_MESSAGES/messages.po to locale/ko_KR/LC_MESSAGES/messages.mo
5. 실행
gettext.translation().install(<your application>)
# test1.py
import test
import gettext
locale_path = 'locale'
# domain: your *.mo file name
language = gettext.translation(domain='messages', localedir=locale_path)
language.install(test)
print(test.trans, test.apple)
번역가능한 사과
references
- gettext doc: https://docs.python.org/ko/3.7/library/gettext.html
gettext — Multilingual internationalization services — Python 3.7.13 문서
The gettext module provides internationalization (I18N) and localization (L10N) services for your Python modules and applications. It supports both the GNU gettext message catalog API and a higher level, class-based API that may be more appropriate for Pyt
docs.python.org
- gettext_windows doc: https://launchpad.net/gettext-py-windows
gettext-py-windows in Launchpad
Registered 2010-01-27 by Alexander Belchenko This module helps to use standard Python gettext.py library on Windows. It obtains user language code suitable for gettext from current Windows settings. The module provides 2 functions: setup_env and get_langua
launchpad.net
- babel doc: https://babel.pocoo.org/en/latest/index.html
Babel — Babel 2.10.1 documentation
babel.pocoo.org
'Python3 > 국제화ᆞ현지화' 카테고리의 다른 글
python 3.8 I18N gettext (0) | 2022.05.13 |
---|