Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

State of CJK issues of LibreOffice 2019

1,058 views

Published on

This is the presentation material at CUSCUP2019

Published in: Software
  • Looking For A Job? Positions available now. FT or PT. $10-$30/hr. No exp required. ♣♣♣ http://t.cn/AieXSfKU
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

State of CJK issues of LibreOffice 2019

  1. 1. Shinji Enoki(shinji.enoki@gmail.com) LibreOffice Japanese Team in COSCUP 2019 2019-08-18 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 Unported License. State of CJK issues of LibreOffice 2019
  2. 2. Shinji Enoki (榎真治) ● From Nishinomiya City, Japan ● A member of LibreOffice Japanese Team(2011-) ● A member of The Document Foundation (2014-) ● Activity: organizing events, grows community, sometimes QA ● Other community: ● Vice-chairperson of Japan UNIX Society ● A member of Kyoto OpenData Community ● A staff of KANSAI OPEN SOURCE
  3. 3. Talk summary 1.What are CJK issues? 2.Typical CJK functions of LibreOffice 3.Typical CJK issues 4.Background of the issues 5.How to test for the CJK issues
  4. 4. Do you know the word “CJK issues”? ● Please raise your hand if you don't know...
  5. 5. 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
  6. 6. The Document Foundation: 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 good and important
  7. 7. Why do CJK people need to work CJK bugs? ● Many LibreOffice developers are European people ● It is hard to notice / understand CJK bug unless it is people of CJK ● Then, It is very important for CJK users to report / reproduce CJK bugs
  8. 8. 2. Typical CJK functions of LibreOffice
  9. 9. 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
  10. 10. Reference: W3C Requirements documents ● 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 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 Hangul Text Layout and Typography ● https://www.w3.org/TR/klreq/ ● And other language
  11. 11. 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] Virtucal textbox 縦 書 き
  12. 12. Vertical writing(2) ● Writer: [Page Style] setting can be set to vertical writing ● Menu [Format] – [Page...] ● [Page] tab
  13. 13. Phonetic guides (ruby) ● Writer: menu [Format]- [Asian Phonetic guide] ● In Japanese, write how to read in hiragana for children's text
  14. 14. Line composition: example ● Line breaking rules ”禁則処理”Kinsokushori ● [Paragraph style]-[Japanese appearance] tab option
  15. 15. line adjustment by hanging punctuation https://www.w3.org/TR/jlreq/ja/
  16. 16. External Character (異体字)& Kanji variants ● Kanji variant is a Kanji character with the same meaning but by different shape. 崎 﨑 埼 碕 嵜
  17. 17. 3. Typical CJK issues
  18. 18. Alignment ignored when text grid: Bug #110994 ● Invalid alignment setting ● Mark Hung created a patch ● 6.0 : FIXED 5.4 6.3
  19. 19. Vertical text in table formatted incorrectly: Bug #111967 ● There seems to be a crash problem ● 6.0 : FIXED
  20. 20. 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
  21. 21. IVS using case bug#113481(1) ● Ideographic Variation Sequence/Selector In Japan, using a mechanism called IVS to make it easier to deal with a Kanji variant. IVS is combine the characters, as one of the character. Variation Sequence Unicode character
  22. 22. IVS using case bug#113481 (2) ● Deleting the character behind two same IVS characters with Backspace will result in another character ● Mark Hung created a patch ● 6.1 : FIXED ● ->Demo
  23. 23. Depends on CJK Meta issues ● Not all CJK bugs can be tracked 2017/10 2018/8 2019/8 Depends on: (All) 135 169 184 Open 59 75 72 Close 76 94 112
  24. 24. 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
  25. 25. Mark Hung is fixing some CJK issues ● Thanks Mark! ● Mark's keynote talk slide at LibreOffice Asia Conference ●“LibreOffice CJK Bugs, Fixes, and Stories.” ●https://conf.libreoffice.jp/program.html
  26. 26. 4. Background of the issues
  27. 27. When changing the LibreOffice code ● New features or bug fixes may result in CJK bugs ● Regression bugs may be created
  28. 28. Occurs in certain environments ● Some cases occur only with the OS or other specific environments ● If the environment changes, the product will need to fix
  29. 29. IVS bug#113481 ● Developers need to understand the Unicode specification ● This is complicated and not easy to understand ● Many products have the same risks
  30. 30. 5. How to test for the CJK issues
  31. 31. Current status of testing ● LibreOffice is not well tested for CJK bugs ● 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 have documentation but i don't know if it's easy enough
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. Possible approaches from QA(2) ● Perform risk analysis and create tests for high-risk CJK functions ● But very few people are interested in QA...
  37. 37. Improved feedback loop ● Quality feedback from users is important ● Quick feedback on bug reports is also important ● The LibreOffice project has been working on reducing unidentified bugs over the last few years ● TDF employs one person ● Bug triage is recommended ● What should we do as the next challenge...?
  38. 38. Improved feedback loop(2) ● It is also important for support vendors to receive feedback from customers ● The project receive patches from support vendors ● It is important to strengthen the ecosystem
  39. 39. Conclusion ● Many CJK functions are implemented in LibreOffice ● CJK function is often broken ● It is important that people who understand CJK languages ​​test and report

×