$30 off During Our Annual Pro Sale. View Details »

[DebConf24] Workshop: Introduction to LibreOffi...

[DebConf24] Workshop: Introduction to LibreOffice Korean Translations (Wiki & UI)

DebConf24 Workshop: Introduction to LibreOffice Korean Translations (Wiki & UI)
Date: 2024-07-29(Monday), AM10:00-11:50
Link: https://debconf24.debconf.org/talks/122-introduction-to-libreoffice-korean-translations-wiki-ui-translations/
대한민국 부산 부경대에서 열리는 DebConf24 행사 2번째날인 2024년 7월 29일 오전 10시부터 약 2시간 동안 리브레오피스 워크샵을 진행합니다
제목은 리브레오피스 한국어 번역(Wiki와 UI)입니다.

이 세션은 한국어 세션이지만 해외에서 참석하신 분들도 오시기 때문에 영어로 발표자료를 만들었습니다.

This session is a Korean Session. However, I made the presentation materials in English. Because, There are people attending from abroad.

localization (l10n) and internationalization (i18n) are important for Korean speakers who use FLOSS.

This session introduces LibreOffice Translation, localization (l10n), and internationalization (i18n) for Korean.

In this session, the localization process of LibreOffice through Weblate is shown, this session attendees will have the opportunity to work with it and change the localization parameters of the software.

Session’s Hands-on experience
- Setting up a LibreOffice’s wiki account
- Setting up a LibreOffice’s Weblate account
- Translate strings through weblate
- Modify the localization parameters

DaeHyun Sung

July 28, 2024
Tweet

More Decks by DaeHyun Sung

Other Decks in Technology

Transcript

  1. 1 (LibreOffice) 리브레오피스 한국어 사용자 모임 Workshop: Introduction to LibreOffice

    Korean Translations (Wiki & UI) LibreOffice Korean Team 리브레오피스 한국어팀 성대현 (DaeHyun Sung, 成大鉉 , ソン・デヒョン ) 2024-07-29 Monday ( 월요일 )
  2. 2 LibreOffice Korean Team( ) 리브레오피스 한국어 모임 Who am

    I? DaeHyun Sung 성대현 , 成大鉉 , ソン・デヒョン One of Korean Open Source Contributors GNOME Foundation Member Founder member of LibreOffice Korean Team(2017-) Member of The Document Foundation (2019-) openSUSE.Asia Committee Korean Member Activities: Korean Community management & QA, improve some Korean features on LibreOffice
  3. 3 (LibreOffice) 리브레오피스 한국어 사용자 모임 Index Internationalization(i18n) Localization(l10n) Unicode

    Translations Wiki Translation UI Translation Using weblate(Recommend) Checking po file and apply modified po file to UI Upload po file (Not recommended)
  4. 4 (LibreOffice) 리브레오피스 한국어 사용자 모임 Internationalization(i18n) Korean: 국제화 ,

    세계화 Internationalization (aka ‘i18n’) is the design and development of a product that is enabled for target audiences that vary in culture, region, or language. Internationalizing your software means you can support across different regions and languages in the way humans expect to interact with an application – including the presentation of text, numbers, dates, etc., plus the layout of the user interface. – Unicode Consortium
  5. 5 (LibreOffice) 리브레오피스 한국어 사용자 모임 Internationalization(i18n) i18n(Internationalization) Software should

    be able to produce an process text in your language Processing input & text / generating output Multiple scripts Example) GNOME gucharmap
  6. 6 (LibreOffice) 리브레오피스 한국어 사용자 모임 Localization(l10n) Korean: 지역화 ,

    현지화 Localization is the adaptation of software for specific languages and cultures. Typically, this involves providing translations or providing alternate, locally-acceptable content such as stylesheets or images. Internationalized software makes localization very efficient. – Unicode Consortium
  7. 7 (LibreOffice) 리브레오피스 한국어 사용자 모임 Localization(l10n) The software should

    be able to speak in your language User Interface Manual/Guide translation
  8. 8 (LibreOffice) 리브레오피스 한국어 사용자 모임 Unicode What is Unicode?

    The Unicode Standard provides a unique number for every character, no matter what platform, device, application or language. It has been adopted by all modern software providers and now allows data to be transported through many different platforms, devices and applications without corruption. Support of Unicode forms the foundation for the representation of languages and symbols in all major operating systems, search engines, browsers, laptops, and smart phones—plus the Internet and World Wide Web (URLs, HTML, XML, CSS, JSON, etc.). Supporting Unicode is the best way to implement ISO/IEC 10646. – Unicode Consortium
  9. 9 (LibreOffice) 리브레오피스 한국어 사용자 모임 Unicode Character encoding standard,

    International standard(ISO/IEC 10646) Unicode and ISO 10646 https://www.unicode.org/faq/unicode_iso.html Supporting all human languages & emojis, etc Covers letters, number, punctuation marks and special symbols used in technical, mathematical, musical, etc
  10. 10 (LibreOffice) 리브레오피스 한국어 사용자 모임 Example of Localization GNU

    Hello https://www.gnu.org/software/hello/ Let’s download GNU Hello on Debian Linux https://ftp.gnu.org/gnu/hello/ Get download hello-2.12.tar.gz(current file) & extract it $ wget https://ftp.gnu.org/gnu/hello/hello-2.12.tar.gz $ tar xvfz hello-2.12.tar.gz $ cd hello-2.12/ $ ./configure $ make $ sudo make install
  11. 11 (LibreOffice) 리브레오피스 한국어 사용자 모임 Example of Localization .po

    file and translation example Set Locales $ sudo dpkg-reconfigure locales Generating locales (this might take a while)... de_DE.UTF-8... done en_US.UTF-8... done es_ES.UTF-8... done fr_FR.UTF-8... done hu_HU.UTF-8... done id_ID.UTF-8... done it_IT.UTF-8... done ja_JP.UTF-8... done ko_KR.UTF-8... done vi_VN.UTF-8... done zh_CN.UTF-8... done zh_HK.UTF-8... done zh_TW.UTF-8... done Generation complete.
  12. 12 (LibreOffice) 리브레오피스 한국어 사용자 모임 Example of Localization .po

    file and translation example Run GNU hello on Linux(Debian-like) $ LANG=en_US.UTF-8; LANGUAGE=en_US.UTF-8; ./hello Hello, world! $ LANG=ko_KR.UTF-8; LANGUAGE=ko_KR.UTF-8; ./hello 안녕하세요 , 여러분 ! $ LANG=fr_FR.UTF-8; LANGUAGE=fr_FR.UTF-8; ./hello Bonjour, le monde ! $ LANG=de_DE.UTF-8; LANGUAGE=de_DE.UTF-8; ./hello Hallo, Welt! $ LANG=ja_JP.UTF-8; LANGUAGE=ja_JP.UTF-8; ./hello こんにちは、世界! $ LANG=zh_CN.UTF-8; LANGUAGE=zh_CN.UTF-8; ./hello 世界你好! $ LANG=zh_TW.UTF-8; LANGUAGE=zh_TW.UTF-8; ./hello 哈囉,大家好! $ LANG=id_ID.UTF-8; LANGUAGE=id_ID.UTF-8; ./hello Halo, dunia! $ LANG=vi_VI.UTF-8; LANGUAGE=vi_VI.UTF-8; ./hello Chào thế giới!
  13. 13 (LibreOffice) 리브레오피스 한국어 사용자 모임 Example of Localization hello-2.12/po

    directory {ISO 639-1 code}.po files Language code – ko(Korean), ja(Japan), {ISO 639-1 code}_{ISO 3166-1 code}.po files Language code-Country code - pt_BR(Brazilian Portuguese), zh_CN(Mandarin Chinese – Mainland China)
  14. 15 (LibreOffice) 리브레오피스 한국어 사용자 모임 Translation In South Korea,

    LibreOffice Korean translation often references MS Office’s translation terms To maintain consistency with MS Office Microsoft Language Resources https://learn.microsoft.com/ko-kr/globalization/reference/microsoft-lan guage-resources Terminology - https://msit.powerbi.com/view?r=eyJrIjoiODJmYjU4Y2YtM2M0ZC00Yz YxLWE1YTktNzFjYmYxNTAxNjQ0IiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi 05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9 UI String - https://msit.powerbi.com/view?r=eyJrIjoiMmE2NjJhMDMtNTY3MC00 MmI2LWFmOWUtYWM5YTVjODI5MjQwIiwidCI6IjcyZjk4OGJmLTg2ZjEtN DFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
  15. 18 (LibreOffice) 리브레오피스 한국어 사용자 모임 Wiki Translation Let’s LibreOffice

    Wiki Translation https://wiki.documentfoundation.org/ Use Mediawiki syntax Many LibreOffice wiki contents have not been translated into Korean
  16. 21 (LibreOffice) 리브레오피스 한국어 사용자 모임 UI Translation There are

    two methods for LibreOffice UI translation using Weblate (recommended) Modify .po files and upload .po file on the Weblate
  17. 22 (LibreOffice) 리브레오피스 한국어 사용자 모임 UI Translation LibreOffice primarily

    uses Weblate for translations (Recommend) Translating po file directly(It’s too hard) Managing translations through Weblate https://translations.documentfoundation.org/ Setting up a weblate account For the first time, you only get translator role (only submit suggestions) Translate strings on the weblate site Weblate guide: https://wiki.documentfoundation.org/Language/WeblateGuide
  18. 23 (LibreOffice) 리브레오피스 한국어 사용자 모임 Let’s translate LibreOffice on

    Weblate Weblate screenshot https://translations.documentfoundation.org/
  19. 25 (LibreOffice) 리브레오피스 한국어 사용자 모임 How to translate special

    characters 따옴표 (quotation mark) https://en.wikipedia.org/wiki/Quotation_mark https://www.w3.org/TR/klreq/#fonts-horizvertpunct Some quotation mark may look different on weblate, poedit, etc. So you have to copy and edit the original text.
  20. 26 (LibreOffice) 리브레오피스 한국어 사용자 모임 How to translate special

    characters 공백문자 (Empty characters, blank characters, invisible characters and whitespace characters) They look like a space, but are in fact a different (unicode) character. Ref: https://news.hada.io/topic?id=2604
  21. 27 (LibreOffice) 리브레오피스 한국어 사용자 모임 UI Translation Advanced Course

    – check KeyID & modify .po files directly KeyID KeyID builds are available in alpha and beta releases. Or source build version
  22. 29 (LibreOffice) 리브레오피스 한국어 사용자 모임 Build and check po

    translation Download from Gerrit source code review system recommend: Linux & MacOS How to build LibreOffice on some Platforms (from Wiki) Linux https://wiki.documentfoundation.org/Development/BuildingOnLinux MacOS https://wiki.documentfoundation.org/Development/BuildingOnMac Windows https://wiki.documentfoundation.org/Development/BuildingOnWindows Online https://wiki.documentfoundation.org/Development/LibreOffice_Online Android https://wiki.documentfoundation.org/Development/BuildingForAndroid
  23. 30 (LibreOffice) 리브레오피스 한국어 사용자 모임 How to build LibreOffice

    Build settings Default build setting (from LibreOffice Wiki) Add Korean Language setting Add debugging options $ git clone https://gerrit.libreoffice.org/core libreoffice $ cd libreoffice $ ./autogen.sh $ git clone https://gerrit.libreoffice.org/core libreoffice $ cd libreoffice $ ./autogen.sh --with-locales="ko" --with-lang="ko" $ git clone https://gerrit.libreoffice.org/core libreoffice $ cd libreoffice $ ./autogen.sh --with-locales="ko" --with-lang="ko" --enable-dbgutil
  24. 31 (LibreOffice) 리브레오피스 한국어 사용자 모임 LibreOffice build Tips Libreoffice

    repository clone and build tips by Nogata Jun https://gist.github.com/nogajun/24f89f60a4a758588a0c10d8f 4dcaf4a
  25. 32 (LibreOffice) 리브레오피스 한국어 사용자 모임 Build and Run LibreOffice

    Checking build options Let’s build run Run default Run Program selection (ex. Writer, calc, etc) $ ./autogen.sh --help $ make $ instdir/program/soffice # Linux $ open instdir/LibreOfficeDev.app # MacOSX $ instdir/program/soffice --writer $ instdir/program/soffice --calc
  26. 33 (LibreOffice) 리브레오피스 한국어 사용자 모임 Build and debugging LibreOffice

    Build Demo https://youtu.be/2gIqOOajdYQ How to build LibreOffice on your desktop (openSUSE.Asia summit 2017) https://youtu.be/gFIA0Ml5V84 Developing LibreOffice in Visual Studio https://youtu.be/Xn3CtIrMpIA LibreOffice Conference 2019 – Reducing LibreOffice build time with include-what-you-use https://youtu.be/WhEG64OMu5A LibreOffice Conference 2016: Connect, Embed, Integrate - LibreOffice as a building block https://youtu.be/g3ya-za_2cU
  27. 34 (LibreOffice) 리브레오피스 한국어 사용자 모임 LibreOffice git submodules Manage

    Git submodule dictionaries helpcontent2 translations % cat .gitmodules [submodule "dictionaries"] path = dictionaries url = https://gerrit.libreoffice.org/dictionaries branch = . [submodule "helpcontent2"] path = helpcontent2 url = https://gerrit.libreoffice.org/help branch = . [submodule "translations"] path = translations url = https://gerrit.libreoffice.org/translations branch = .
  28. 35 (LibreOffice) 리브레오피스 한국어 사용자 모임 Download submodules Git submodules

    Ref: https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%EC%84 %9C%EB%B8%8C%EB%AA%A8%EB%93%88 % git submodule update --init dictionaries 'dictionaries' 경로에 대해 'dictionaries' (https://gerrit.libreoffice.org/dictionaries) 하위 모듈 등록 '/Users/sungdaehyun/dev/lode/dev/core_kodict/dictionaries'에 복제합니다... 하위 모듈 경로 'dictionaries': '8cd579e3a67ab36040501138d17c647db24547a0' 체크아웃 % git submodule update --init translations 하위 모듈 경로 'translations': '1c00f748202eb64ffa0be5ce38e57a47f6e5798a' 체크아웃 % git submodule update --init helpcontent2 'helpcontent2' 경로에 대해 'helpcontent2' (https://gerrit.libreoffice.org/help) 하위 모듈 등록 '/Users/sungdaehyun/dev/lode/dev/core_kodict/helpcontent2'에 복제합니다... 하위 모듈 경로 'helpcontent2': 'd94a25c58b03f7619430ec7bf66564de16600548' 체크아웃
  29. 36 (LibreOffice) 리브레오피스 한국어 사용자 모임 .po file translation Translated

    po file location core/translations/source/{ISO 639-1 code} ex) core/translations/source/ko core/translations/source/{ISO 639-1 code}-{ISO 3166-1} ex) core/translations/source/pt-BR
  30. 37 (LibreOffice) 리브레오피스 한국어 사용자 모임 .po file translation Build

    translations Linux - Run program to check translations Example) MacOS $ make build-i10n-only $ msgfmt -o ./instdir/LibreOfficeDev.app/Contents/Resources/resource/ko/LC_MESSAGES/sfx.mo translations/source/ko/sfx2/messages.po $ open ./instdir/LibreOfficeDev.app $ make build-i10n-only $ msgfmt -o ./instdir/program/resource/ko/LC_MESSAGES/sfx.mo translations/source/ko/sfx2/messages.po $ ./instdir/program/soffice
  31. 40 (LibreOffice) 리브레오피스 한국어 사용자 모임 .po file translation Find

    KeyID on po file ex) translations/source/ko/sfx2/messages.po
  32. 43 (LibreOffice) 리브레오피스 한국어 사용자 모임 .po file translation Apply

    modified po file to UI $ grep "TWjA5" ./translations/source/ko/* -R ./translations/source/ko/cui/messages.po:#. TWjA5 $ vi ./translations/source/ko/cui/messages.po $ make build-l10n-only msgfmt -o instdir/program/resource/ko/LC_MESSAGES/cui.mo ./translations/source/ko/cui/me ssages.po $ ./instdir/program/soffice --writer
  33. 45 (LibreOffice) 리브레오피스 한국어 사용자 모임 .po file translation Python

    package `Ko-po-check` Find common errors in Korean PO message translations https://pypi.org/project/ko-po-check/ Repo: https://github.com/changwoo/ko-po-check Korean Debian developer, Changwoo Ryu make & publish, maintain it.
  34. 49 (LibreOffice) 리브레오피스 한국어 사용자 모임 More Readings GNOME translations

    document Korean document – Debian Contributor Changwoo Ryu 오픈소스 번역 기여하기 v3 https://www.slideshare.net/changwoo/v3-114830838 오픈소스 번역 기여하기 v2 https://www.slideshare.net/changwoo/v2-89339074 오픈소스 번역 기여하기 https://www.slideshare.net/changwoo/ss-79394446
  35. 50 (LibreOffice) 리브레오피스 한국어 사용자 모임 More Readings Wiki –

    Localization area https://wiki.documentfoundation.org/Language Translating LibreOffice https://wiki.documentfoundation.org/Translating_LibreOffice Weblate Guide https://wiki.documentfoundation.org/Language/WeblateGuide LibreOffice Conference 2023 Workshop Software localization (l10n) and internationalization (i18n) https://events.documentfoundation.org/libreoffice-conference-2023/t alk/ADTTSK/ Weblate の LibreOffice 日本語翻訳を解析する https://speakerdeck.com/kojiannoura/weblatenolibreofficeri-ben-yu-fan -yi-wojie-xi-suru
  36. 51 (LibreOffice) 리브레오피스 한국어 사용자 모임 More Readings Libreoffice repository

    clone and build tips by Nogata Jun https://gist.github.com/nogajun/24f89f60a4a758588a0c10d8f4dcaf4a
  37. 52 (LibreOffice) 리브레오피스 한국어 사용자 모임 All text and image

    content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. Thank you 고맙습니다 Thank you for attend the workshop 워크샵 참여에 대해 고맙습니다