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

studioego 25 views 52 slides Jul 29, 2024
Slide 1
Slide 1 of 52
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52

About This Presentation

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 행�...


Slide Content

1
(LibreOffice)
리브레오피스 한국어 사용자 모임
Workshop: Introduction to LibreOffice
Korean Translations (Wiki & UI)
LibreOffice Korean Team 리브레오피스 한국어팀
성대현(DaeHyun Sung,成大鉉,ソン・デヒョン )
2024-07-29 Monday (월요일)

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
(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
(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
(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
(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
(LibreOffice)
리브레오피스 한국어 사용자 모임
Localization(l10n)
The software should be able to speak in your language
User Interface
Manual/Guide translation

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
(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
(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
(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
(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
(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)

GNU gettext and po, mo files
GNU Gettext workflow
https://en.wikipedia.org/wiki/Gettext#/media/File:Gettext.svg

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

16
(LibreOffice)
리브레오피스 한국어 사용자 모임
Translation
Microsoft Terminology Search

17
(LibreOffice)
리브레오피스 한국어 사용자 모임
Translation
Microsoft UI String Search

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

19
(LibreOffice)
리브레오피스 한국어 사용자 모임
Example of Wiki Translation (1)

20
(LibreOffice)
리브레오피스 한국어 사용자 모임
Example of Wiki Translation (2)

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

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

23
(LibreOffice)
리브레오피스 한국어 사용자 모임
Let’s translate LibreOffice on Weblate
Weblate screenshot
https://translations.documentfoundation.org/

24
(LibreOffice)
리브레오피스 한국어 사용자 모임
Let’s translate LibreOffice on Weblate
https://translations.documentfoundation.org/

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.

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

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

28
(LibreOffice)
리브레오피스 한국어 사용자 모임
UI Translation
KeyID on weblate & .po file
Example) A8Eqt

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

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

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

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

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

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 = .

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' 체크아웃

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

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

38
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Before modify po file

39
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Checking KeyID – change KeyID

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

41
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Apply modified po file to UI

42
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Before modify po file & After modify po file and build it

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

44
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
.po file translation
Use poedit & modify some data

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.

46
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Example of ko-po-check

47
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Upload po file on weblate

48
(LibreOffice)
리브레오피스 한국어 사용자 모임
.po file translation
Upload po file on weblate

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

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

51
(LibreOffice)
리브레오피스 한국어 사용자 모임
More Readings
Libreoffice repository clone and build tips by Nogata Jun
https://gist.github.com/nogajun/24f89f60a4a758588a0c10d8f4dcaf4a

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
워크샵 참여에 대해 고맙습니다