Slide 1

Slide 1 text

State of CJK issues of LibreOffice Shinji Enoki [email protected] openSUSE.Asia Summit 2019 Bari, 5 Oct. 2019

Slide 2

Slide 2 text

Agenda • What are CJK /l10n/i18n issues? • Typical LibreOffice CJK functions • LibreOffice CJK bug status • Typical CJK issues • How to test for the CJK issues?

Slide 3

Slide 3 text

Shinji Enoki ( 榎真治 ) ● Member of openSUSE.Asia Summit 2017 Tokyo local team ● Member of LibreOffice Japanese Team(2011-) ● Member of The Document Foundation (2014-) ● Activity: organizing events, grows community, sometimes QA ● Other community: – Vice-chairperson of Japan UNIX Society – Organize member of Documentation Meetup – Staff of KANSAI OPEN SOURCE

Slide 4

Slide 4 text

Do you know the word “CJK issues”? ● Please raise your hand if you don't know…

Slide 5

Slide 5 text

What are CJK issues / bugs ● CJK is an abbreviation for “Chinese-Japanese-Korean” ● LibreOffice has many language-specific features and issues, CJK issue is one of them. ● CJK issues happen when used in CJK's environment – A Function of CJK is broken – A bug occurs only with the CJK environment

Slide 6

Slide 6 text

What are i10n / i18n? ● L10n: localization – Translation and implementation of functions for local ● i18n: Internationalization – Mechanisms that adapt to various languages and regions – Ex. locale,

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

TDF : Next Decade Manifesto “To support the preservation of mother tongue by encouraging people to translate,document, support, and promote our office productivity tools in their mother tongue” ● I think these “Our Values” is very important

Slide 9

Slide 9 text

Why do CJK people need to work CJK bugs? ● It is important for CJK users to report / reproduce CJK bugs ● Because it is hard to notice / understand CJK bug unless it is people of CJK

Slide 10

Slide 10 text

Typical CJK functions

Slide 11

Slide 11 text

Overview of CJK functions ● Text Layout – Vertical writing – Phonetic guides (ruby) – Line Composition ● Multibyte character ● Input methods ● .... ● CJK needs similar functionality, but its rules are different

Slide 12

Slide 12 text

Reference: W3C Requirements documents ● Requirements for Japanese Text Layout – https://www.w3.org/TR/jlreq/ – “This document describes requirements for general Japanese layout realized with technologies like CSS, SVG and XSL-FO. ” ● Requirements for Chinese Text Layout 中文排版需求 – https://www.w3.org/TR/clreq/ – “This document was developed by people working in different areas, using both Simplified and Traditional Chinese. ” ● Requirements for Hangul Text Layout and Typography – https://www.w3.org/TR/klreq/ ● And other language

Slide 13

Slide 13 text

What is “Requirements for Japanese Text Layout” ● According to Abstract – “This document describes requirements for general Japanese layout realized with technologies like CSS, SVG and XSL-FO. ” – “The document is mainly based on a standard for Japanese layout, JIS X 4051, however, it also addresses areas which are not covered by JIS X 4051. “

Slide 14

Slide 14 text

Jlreq: upgrade work in progress ● Currently, “Requirements for Japanese Text Layout” is collecting feedback for version upgrade. ● https://github.com/w3c/jlreq

Slide 15

Slide 15 text

Vertical writing (1) ● Supported by Writer, Calc, Impress, Draw – Vertical text box ● Note: Different from normal text box ● Right click on the toolbar-> [Vertical Text] 縦 書 き の Vertical text box

Slide 16

Slide 16 text

Vertical writing (2) ● Writer: [Page Style] setting can be set to vertical writing – Menu [Format] – [Page...] – [Page] tab

Slide 17

Slide 17 text

Phonetic guides (ruby) ● In Japanese and Chinese, mainly indicate how to read https://www.w3.org/TR/jlreq/#ruby_and_emphasis_dots

Slide 18

Slide 18 text

● Writer: menu [Format]- [Asian Phonetic guide]

Slide 19

Slide 19 text

Line composition: example ● Line breaking rules ” 禁則処理” Kinsokushori – [Paragraph style]-[Japanese appearance] tab option

Slide 20

Slide 20 text

Line composition: example (2)

Slide 21

Slide 21 text

Japanese calendar : Calc ● In Japan, both the Western calendar and Japanese calendar are used. ● The Japanese calendar changes when the Emperor changes ● It was changed on May 1 this year

Slide 22

Slide 22 text

Japanese calendar : Calc (2) ● Eike had committed a patch with dummy data in advance ● Abe-san committed in about 3 minutes after the announcement ● LibreOffice was able to respond very quickly

Slide 23

Slide 23 text

CJK bug status

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Meta issue for CJK ● Bug 83066 : [META] CJK (Chinese, Japanese, Korean, and Vietnamese) language issues ● Meta issue for each CJK language ● Bug 113193 : [META] Traditional Chinese (zh_TW, zh_HK) ● Bug 113194 : [META] Simplified Chinese (zh_CN) ● Bug 113195 : [META] Japanese CJK issues ● Bug 113196 : [META] Korean

Slide 26

Slide 26 text

Depends on CJK Meta issue #83066 Maybe some issues are not tracked by this issue 2017/10 2018/9 2019/9 Depends on: (All) 135 168 186 Open 59 73 73 Close 76 95 113

Slide 27

Slide 27 text

Xisco Xisco LibreOffice Conference 2019, Xisco’s talk

Slide 28

Slide 28 text

LibreOffice Conference 2019, Xisco’s talk

Slide 29

Slide 29 text

Typical CJK issues

Slide 30

Slide 30 text

Alignment ignored when text grid: Bug #110994 ● Invalid alignment setting ● Mark Hung created a patch ● 6.0 : FIXED 5.4 6.3

Slide 31

Slide 31 text

Vertical text in table formatted incorrectly: Bug#111967 ● There seems to be a crash problem ● Mark Hung created a patch ● 6.0 : FIXED

Slide 32

Slide 32 text

Noto Sans CJK fonts exported bug: Bug #96091 ● When exporting Noto Sans CJK font to PDF, paragraph decoration location is wrong ● Mark Hung created a patch

Slide 33

Slide 33 text

Noto Sans font's Some Old Hangul syllables have abnormal shown in exported PDFs: Bug#127010 ● DaeHyun discovered this bug when I talked about #96091 at COSCUP 2019 ● There are sometimes font problems like this ODT PDF

Slide 34

Slide 34 text

Mark Hung is fixing some CJK issues ● Thanks Mark! – Mark's keynote talk at LibreOffice Asia Conference ● “LibreOffice CJK Bugs, Fixes, and Stories.” ● Silide is blow: https://conf.libreoffice.jp/program.html

Slide 35

Slide 35 text

Font language settings change suddenly ● With Writer and Impress, Maybe other, all OS ● Problems from the OOo era ● I have not been able to identify the conditions to reproduce

Slide 36

Slide 36 text

When changing the LibreOffice code ● New features or bug fixes may result in CJK bugs ● Regression bugs may be created

Slide 37

Slide 37 text

How to test for the CJK issues?

Slide 38

Slide 38 text

Current status of testing ● LibreOffice is not well tested for CJK bugs ● We are no full-time test engineers ● User bug reports are important

Slide 39

Slide 39 text

Many people do not report ● Language barrier is one of the causes – -> Share bug information by language projects – -> Sharing in the Q&A forum is effective, But how? ● General users of office suites are not used to OSS bug reports – Enabled to jump from menu to feedback web page – We made a form to fill in the necessary items by Bugzilla – We have documentation but i don't know if it's easy enough

Slide 40

Slide 40 text

Bug reports ● Reports from some users and dedicated QA contributors ● Bug hunting session – Released every 6 months – There is a day for bug hunting 2-3 times before release – Usually for alpha, beta and release candidates

Slide 41

Slide 41 text

Manual testing ● Manual testing is not managed – There were a few manual test cases, but they were almost never used – Currently all test cases moved to automated tests

Slide 42

Slide 42 text

Autometion test ● Not many automated tests ● LibreOffice project recommends writing unit tests for developers ● There is also a way to kick and test the API

Slide 43

Slide 43 text

More QA info ● LiboCon Xisco Fauli “QA: 1 year recap” https://libocon.org/assets/Conference/Almeria /Xisco-QA-1-year-recap.pdf

Slide 44

Slide 44 text

Possible approaches from QA(1) ● Create test cases from existing CJK bug reports – I think this is effective because there are many regressions – Create test cases that cover similar types of bugs – Testing costs are reduced by using automated tests such as unit tests ● Create test cases from common CJK bugs of other software

Slide 45

Slide 45 text

Possible approaches from QA(2) ● Perform risk analysis and create tests for high-risk CJK functions ● But very few people are interested in QA...

Slide 46

Slide 46 text

Conclusion ● It is important to support preservation of mother tongue – Key is open community and the internationalization function ● Many CJK functions are implemented in LibreOffice ● CJK function is often broken ● I will collect test cases and I will do test for CJK

Slide 47

Slide 47 text

All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 4.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 thereof is subject to trademark policy. Thank you ! Shinji Enoki ( [email protected] )