SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Bopomofo Ruby
implement and requirement	

!
Bobby Tung	

!
Founder of Wanderer Digital Publishing Inc.

Consultant of Taiwan Digital Publishing Forum	

!
June 4, 2013
What is Bopomofo?
•

Bopomofo is a phonetic system with 100 years history
used by Republic of China(Taiwan).	


•
•

Bopomofo is used in education from grade 1 to grade 4 .	

90% people in Taiwan use Bopomofo as main input
method. So that's very important.

figure 1) Bopomofo is simplified symbols from character with pronunciation.
Structure of Bopomofo
• Bopomofo system contains 37 symbols
with 4 tone marks.
ㄅ

U+3105

ㄚ

U+311A

ㄆ

U+3106

ㄛ

U+311B

ㄇ

U+3107

ㄜ

U+311C

ㄈ

U+3108

ㄝ

U+311D

ㄉ

U+3109

ㄞ

U+311E

ㄊ

U+310A

ㄟ

U+311F

ㄋ

U+310B

ㄠ

U+3120

ㄌ

U+310C

ㄡ

U+3121

ㄍ

U+310D

ㄢ

U+3122

ㄎ

U+310E

ㄣ

U+3123

ㄏ

U+310F

ㄤ

U+3124

ㄐ

U+3110

ㄥ

U+3125

ㄑ

U+3111

ㄦ

U+3126

ㄒ

U+3112

ㄧ

U+3127

ㄓ

U+3113

ㄨ

U+3128

ㄔ

U+3114

ㄩ

U+3129

ㄕ

U+3115

ㄖ

U+3116

˙˙

U+02D9

ㄗ

U+3117

ˊ

U+02CA

ㄘ

U+3118

ˇ

U+02C7

ㄙ

U+3119

ˋ

U+02CB

chart 1) Bopomofo symbols and tone marks in UNICODE chart
˙	

ㄇ	

 ㄨ	

 ㄓ
ˇ ˋ
⼀一	

 ㄛ
ㄠ

21 Consonants	


•

14 cannot pronounce alone.	


•

7 can pronounce alone.
˙	

ㄇ	

 ㄨ	

 ㄩ
ˇ ˊ
⼀一	

 ㄛ
ㄠ

!

16 Rhymes and Medials	


•

All can pronounce alone.	


•

3 as medials can also pronounce
with other Rhymes.
4 Tone Marks	


˙	

ㄇ	

 ㄨ	

 ㄩ
ˇ ˊ
⼀一	

 ㄛ
ㄠ

•

3(ˊ ˇ ˋ)should be placed to
the right, usually aligned middle.

They affect whole character
pronunciation, so they should be
placed in parallel. 	


•

1(˙)should be placed above
symbols. 

It affects consonant and first
rhyme, so it should be placed
above.
Usage of Bopomofo
• Bopomofo of a character could be:	

1. a set of 1~4 full width symbol(s) and a tone mark.	

2. a set of 1~3 full width symbol(s) w/wo a tone mark
right aside.	


• Bopomofo placed to the right of the Chinese

character vertically in most all printed books,
whether horizontal or vertical writing.	


• Bopomofo usually marked with every

character in books for education purpose.
In Print Media
•

Ministry of Education Taiwan
had published its
composition rule in 2000.	


•

Almost impossible to do asis on web.	


•

Tone makers’ glyphs are
another issue.
˙

U+02D9

DOT ABOVE

ˊ

U+02CA

MODIFIER LETTER ACUTE ACCENT

ˇ

U+02C7

CARON

ˋ

U+02CB

MODIFIER LETTER GRAVE ACCENT

chart 2) Bopomofo tone makers’ glyphs are hard 	

to fulfill MoE’s requirement.

figure 2) Bopomofo composition rule	

in printed media by Ministry of Education.
100%

100%

25%

喵

˙
ㄇ
ㄧ
ㄠ

Case 1) a set of 4 full width symbols and tone mark.	


25%
25%
25%
25%
100%

100%

25%

標

ㄅ
ㄧ
ㄠ

Case 2) a set of 3 full width symbols.	


25%
25%
25%
100%

100%

25%

飛

ㄈ
ㄟ

Case 3) a set of 2 full width symbols.	


25%
25%
100%

100%

25%

知

ㄓ

Case 4) 1 full width symbol.	


25%
100%

100%

⿃鳥

25%

25%

ㄋ
ㄧˇ
ㄠ

Case 5) a set of 3 full width symbols with a tone mark aside right.	


25%
25%
25%

25%
100%

100%

我

25%

25%

ㄨ
ˇ
ㄛ

Case 6) a set of 2 full width symbols with a tone mark aside right.	


25%
25%
25%
100%

100%

⿂魚

25%

25%

ㄩˊ

Case 7) a set of 1 full width symbols with a tone mark aside right.	


25%

25%
Samples
of Bopomofo Ruby
HTML markup
•
•
•

Marked as mono-ruby(モノルビ).	

Nested ruby structure for side tone mark.	

Add class for relative font-size setting.

<ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</rt></ruby></rt></ruby>	

<ruby>邊<rt>ㄅㄧㄢ</rt></ruby>	

<ruby>⼀一<rt>ㄧ</rt></ruby>	

<ruby>隻<rt>ㄓ</rt></ruby>	

<ruby>貓<rt>ㄇㄠ</rt></ruby>	

<ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby>	

<ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby>	

<ruby>叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</rt></ruby></rt></ruby>
figure 3) HTML markup for Bopomofo implementation	

*<rp> is omitted for editing easily
Stylesheet design
•
•

<rt>’s font-size by proportion.	

<p>’s font-size must be absolute value.
h1{	

font-family: "Heiti-TC", Sans-serif;	

margin-right: 0.5em;	

}	

!
p{	

font-family: "Heiti-TC", Sans-serif;	

font-size: 12pt;	

line-height: 1.7em;	

}	


rt{	

font-size: 25%;	

line-height: normal;	

text-align: center;	

}	

!
rt.tone{	

font-size: 100%;	

}

figure 4) CSS for Bopomofo implementation
On Webkit

figure 5) Bopomofo sample on Webkit
EPUB 3 FXL

figure 6) Bopomofo EPUB 3 FXL sample on iBooks
EPUB reflow

figure 7) Bopomofo EPUB 3 sample on iBooks	

no line length

figure 8) Bopomofo EPUB 3 sample on Kobo iOS App	

no pagination
Horizontal Writing CSS
•
•

imply writing-mode: vertical-lr.	

imply display: inline.
rt{	

font-size: 25%;	

line-height: normal;	

text-align: center;	

-epub-writing-mode: vertical-lr;	

-webkit-writing-mode: vertical-lr;	

vertical-align: middle;	

display: inline;	

}	


!
figure 9) CSS for Bopomofo implementation in Horizontal Writing.
Horizontal Writing HTML
Mono	

Ruby

<ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</
rt></ruby></rt></ruby>	

<ruby>邊<rt>ㄅㄧㄢ</rt></ruby>	

<ruby>⼀一<rt>ㄧ</rt></ruby>	

<ruby>隻<rt>ㄓ</rt></ruby>	

<ruby>貓<rt>ㄇㄠ</rt></ruby>	

<ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby>	

<ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby>	

<ruby>叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</
rt></ruby></rt></ruby>

Group	

Ruby

<ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</
rt></ruby></rt>	

邊<rt>ㄅㄧㄢ</rt>	

⼀一<rt>ㄧ</rt>	

隻<rt>ㄓ</rt>	

貓<rt>ㄇㄠ</rt>	

喵<rt>˙ㄇㄧㄠ</rt>	

喵<rt>˙ㄇㄧㄠ</rt>	

叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</rt></
ruby></rt></ruby>
figure 10) In horizontal writing, Mono Ruby will cause layout break.
align issue

inline issue

letter spacing issue

(investigating)

figure 11) In horizontal writing, Issues Bopomofo ruby confronted.
Requirement
ruby-align: center
•
•

Behave as Case 1~7.	


•

Keep proportion even
with relative font-size.
(for ebook convention)	


•

Conflict with Japanese
Ruby Requirement?

Ruby text in this mode
compressed to fit ruby
base width.	


figure 12) In vertical writing, font-size is relative

(font-size: 100%).
ruby-position: inter-character
•

keep Bopomofo ruby
placed right of ruby base.
especially in horizontal
writing.	


•

With this property, ruby
base and ruby text
should not be separated
with line-break.(as linestart prohibition rule?)
figure 13) Taiwan’s Mandarin textbook, quiz section. 	

horizontal writing with Bopomofo.
Alternative Solution
Webfont
• It works, but not good enough.	

• Lot of Chinese characters have alternative
pronunciations, max to 6 patterns.	


• 6 fonts with contents span class markup

cannot be done easily. Even with subset to
reduce size.	


• It’s proprietary, not open standard.
Tool
Why Tool?
• Bopomofo usually marked with every

character in books for educational purpose.	


• Lot of Chinese characters have alternative
pronunciations, maximum to 6 patterns.	


=Tool to convert article into Bopomofo
ruby html with choosing for pronunciations
.
Browser implement
• Government in Taiwan is willing to host a
project to speedup browser implement. 	


• May start late this year.
Thank you!
bobbytung@wanderer.tw

Weitere ähnliche Inhalte

Mehr von Bobby Tung

從Epub製作看編輯流程轉型
從Epub製作看編輯流程轉型從Epub製作看編輯流程轉型
從Epub製作看編輯流程轉型Bobby Tung
 
我們需要中文公共領域作品的開放圖書館嗎?
我們需要中文公共領域作品的開放圖書館嗎?我們需要中文公共領域作品的開放圖書館嗎?
我們需要中文公共領域作品的開放圖書館嗎?Bobby Tung
 
自己的Emoji自己造
自己的Emoji自己造自己的Emoji自己造
自己的Emoji自己造Bobby Tung
 
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)Bobby Tung
 
國外電子書發展近況報告
國外電子書發展近況報告國外電子書發展近況報告
國外電子書發展近況報告Bobby Tung
 
面對電子書的下一波機會:迎接EPUB 3
面對電子書的下一波機會:迎接EPUB 3面對電子書的下一波機會:迎接EPUB 3
面對電子書的下一波機會:迎接EPUB 3Bobby Tung
 
下個世代的數位編輯
下個世代的數位編輯下個世代的數位編輯
下個世代的數位編輯Bobby Tung
 
電子書的下一個未來
電子書的下一個未來電子書的下一個未來
電子書的下一個未來Bobby Tung
 
為什麼我們需要中文排版標準,以及幾項中文的排版特色
為什麼我們需要中文排版標準,以及幾項中文的排版特色為什麼我們需要中文排版標準,以及幾項中文的排版特色
為什麼我們需要中文排版標準,以及幾項中文的排版特色Bobby Tung
 
當數位出版成為出版的一天
當數位出版成為出版的一天當數位出版成為出版的一天
當數位出版成為出版的一天Bobby Tung
 
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求Bobby Tung
 
出版商不能不了解的EPUB 3
出版商不能不了解的EPUB 3出版商不能不了解的EPUB 3
出版商不能不了解的EPUB 3Bobby Tung
 
アジアの電子書籍事情
アジアの電子書籍事情アジアの電子書籍事情
アジアの電子書籍事情Bobby Tung
 

Mehr von Bobby Tung (14)

從Epub製作看編輯流程轉型
從Epub製作看編輯流程轉型從Epub製作看編輯流程轉型
從Epub製作看編輯流程轉型
 
我們需要中文公共領域作品的開放圖書館嗎?
我們需要中文公共領域作品的開放圖書館嗎?我們需要中文公共領域作品的開放圖書館嗎?
我們需要中文公共領域作品的開放圖書館嗎?
 
自己的Emoji自己造
自己的Emoji自己造自己的Emoji自己造
自己的Emoji自己造
 
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)
COSCUP 2015 中文排版需求以及我在W3C看到的事情(薄碼版)
 
國外電子書發展近況報告
國外電子書發展近況報告國外電子書發展近況報告
國外電子書發展近況報告
 
面對電子書的下一波機會:迎接EPUB 3
面對電子書的下一波機會:迎接EPUB 3面對電子書的下一波機會:迎接EPUB 3
面對電子書的下一波機會:迎接EPUB 3
 
下個世代的數位編輯
下個世代的數位編輯下個世代的數位編輯
下個世代的數位編輯
 
電子書的下一個未來
電子書的下一個未來電子書的下一個未來
電子書的下一個未來
 
為什麼我們需要中文排版標準,以及幾項中文的排版特色
為什麼我們需要中文排版標準,以及幾項中文的排版特色為什麼我們需要中文排版標準,以及幾項中文的排版特色
為什麼我們需要中文排版標準,以及幾項中文的排版特色
 
當數位出版成為出版的一天
當數位出版成為出版的一天當數位出版成為出版的一天
當數位出版成為出版的一天
 
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求
談2013 EPUB 3 規範的變化 以及如何符合台灣在地需求
 
出版商不能不了解的EPUB 3
出版商不能不了解的EPUB 3出版商不能不了解的EPUB 3
出版商不能不了解的EPUB 3
 
認識EPUB
認識EPUB認識EPUB
認識EPUB
 
アジアの電子書籍事情
アジアの電子書籍事情アジアの電子書籍事情
アジアの電子書籍事情
 

Kürzlich hochgeladen

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - AvrilIvanti
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 

Kürzlich hochgeladen (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 

Bopomobo Ruby

  • 1. Bopomofo Ruby implement and requirement ! Bobby Tung ! Founder of Wanderer Digital Publishing Inc.
 Consultant of Taiwan Digital Publishing Forum ! June 4, 2013
  • 3. • Bopomofo is a phonetic system with 100 years history used by Republic of China(Taiwan). • • Bopomofo is used in education from grade 1 to grade 4 . 90% people in Taiwan use Bopomofo as main input method. So that's very important. figure 1) Bopomofo is simplified symbols from character with pronunciation.
  • 5. • Bopomofo system contains 37 symbols with 4 tone marks. ㄅ U+3105 ㄚ U+311A ㄆ U+3106 ㄛ U+311B ㄇ U+3107 ㄜ U+311C ㄈ U+3108 ㄝ U+311D ㄉ U+3109 ㄞ U+311E ㄊ U+310A ㄟ U+311F ㄋ U+310B ㄠ U+3120 ㄌ U+310C ㄡ U+3121 ㄍ U+310D ㄢ U+3122 ㄎ U+310E ㄣ U+3123 ㄏ U+310F ㄤ U+3124 ㄐ U+3110 ㄥ U+3125 ㄑ U+3111 ㄦ U+3126 ㄒ U+3112 ㄧ U+3127 ㄓ U+3113 ㄨ U+3128 ㄔ U+3114 ㄩ U+3129 ㄕ U+3115 ㄖ U+3116 ˙˙ U+02D9 ㄗ U+3117 ˊ U+02CA ㄘ U+3118 ˇ U+02C7 ㄙ U+3119 ˋ U+02CB chart 1) Bopomofo symbols and tone marks in UNICODE chart
  • 6. ˙ ㄇ ㄨ ㄓ ˇ ˋ ⼀一 ㄛ ㄠ 21 Consonants • 14 cannot pronounce alone. • 7 can pronounce alone.
  • 7. ˙ ㄇ ㄨ ㄩ ˇ ˊ ⼀一 ㄛ ㄠ ! 16 Rhymes and Medials • All can pronounce alone. • 3 as medials can also pronounce with other Rhymes.
  • 8. 4 Tone Marks ˙ ㄇ ㄨ ㄩ ˇ ˊ ⼀一 ㄛ ㄠ • 3(ˊ ˇ ˋ)should be placed to the right, usually aligned middle.
 They affect whole character pronunciation, so they should be placed in parallel. • 1(˙)should be placed above symbols. 
 It affects consonant and first rhyme, so it should be placed above.
  • 10. • Bopomofo of a character could be: 1. a set of 1~4 full width symbol(s) and a tone mark. 2. a set of 1~3 full width symbol(s) w/wo a tone mark right aside. • Bopomofo placed to the right of the Chinese character vertically in most all printed books, whether horizontal or vertical writing. • Bopomofo usually marked with every character in books for education purpose.
  • 11. In Print Media • Ministry of Education Taiwan had published its composition rule in 2000. • Almost impossible to do asis on web. • Tone makers’ glyphs are another issue. ˙ U+02D9 DOT ABOVE ˊ U+02CA MODIFIER LETTER ACUTE ACCENT ˇ U+02C7 CARON ˋ U+02CB MODIFIER LETTER GRAVE ACCENT chart 2) Bopomofo tone makers’ glyphs are hard to fulfill MoE’s requirement. figure 2) Bopomofo composition rule in printed media by Ministry of Education.
  • 12. 100% 100% 25% 喵 ˙ ㄇ ㄧ ㄠ Case 1) a set of 4 full width symbols and tone mark. 25% 25% 25% 25%
  • 13. 100% 100% 25% 標 ㄅ ㄧ ㄠ Case 2) a set of 3 full width symbols. 25% 25% 25%
  • 14. 100% 100% 25% 飛 ㄈ ㄟ Case 3) a set of 2 full width symbols. 25% 25%
  • 15. 100% 100% 25% 知 ㄓ Case 4) 1 full width symbol. 25%
  • 16. 100% 100% ⿃鳥 25% 25% ㄋ ㄧˇ ㄠ Case 5) a set of 3 full width symbols with a tone mark aside right. 25% 25% 25% 25%
  • 17. 100% 100% 我 25% 25% ㄨ ˇ ㄛ Case 6) a set of 2 full width symbols with a tone mark aside right. 25% 25% 25%
  • 18. 100% 100% ⿂魚 25% 25% ㄩˊ Case 7) a set of 1 full width symbols with a tone mark aside right. 25% 25%
  • 20. HTML markup • • • Marked as mono-ruby(モノルビ). Nested ruby structure for side tone mark. Add class for relative font-size setting. <ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</rt></ruby></rt></ruby> <ruby>邊<rt>ㄅㄧㄢ</rt></ruby> <ruby>⼀一<rt>ㄧ</rt></ruby> <ruby>隻<rt>ㄓ</rt></ruby> <ruby>貓<rt>ㄇㄠ</rt></ruby> <ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby> <ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby> <ruby>叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</rt></ruby></rt></ruby> figure 3) HTML markup for Bopomofo implementation *<rp> is omitted for editing easily
  • 21. Stylesheet design • • <rt>’s font-size by proportion. <p>’s font-size must be absolute value. h1{ font-family: "Heiti-TC", Sans-serif; margin-right: 0.5em; } ! p{ font-family: "Heiti-TC", Sans-serif; font-size: 12pt; line-height: 1.7em; } rt{ font-size: 25%; line-height: normal; text-align: center; } ! rt.tone{ font-size: 100%; } figure 4) CSS for Bopomofo implementation
  • 22. On Webkit figure 5) Bopomofo sample on Webkit
  • 23. EPUB 3 FXL figure 6) Bopomofo EPUB 3 FXL sample on iBooks
  • 24. EPUB reflow figure 7) Bopomofo EPUB 3 sample on iBooks no line length figure 8) Bopomofo EPUB 3 sample on Kobo iOS App no pagination
  • 25. Horizontal Writing CSS • • imply writing-mode: vertical-lr. imply display: inline. rt{ font-size: 25%; line-height: normal; text-align: center; -epub-writing-mode: vertical-lr; -webkit-writing-mode: vertical-lr; vertical-align: middle; display: inline; } ! figure 9) CSS for Bopomofo implementation in Horizontal Writing.
  • 26. Horizontal Writing HTML Mono Ruby <ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</ rt></ruby></rt></ruby> <ruby>邊<rt>ㄅㄧㄢ</rt></ruby> <ruby>⼀一<rt>ㄧ</rt></ruby> <ruby>隻<rt>ㄓ</rt></ruby> <ruby>貓<rt>ㄇㄠ</rt></ruby> <ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby> <ruby>喵<rt>˙ㄇㄧㄠ</rt></ruby> <ruby>叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</ rt></ruby></rt></ruby> Group Ruby <ruby>左<rt><ruby>ㄗㄨㄛ<rt class="tone">ˇ</ rt></ruby></rt> 邊<rt>ㄅㄧㄢ</rt> ⼀一<rt>ㄧ</rt> 隻<rt>ㄓ</rt> 貓<rt>ㄇㄠ</rt> 喵<rt>˙ㄇㄧㄠ</rt> 喵<rt>˙ㄇㄧㄠ</rt> 叫<rt><ruby>ㄐㄧㄠ<rt class="tone">ˋ</rt></ ruby></rt></ruby> figure 10) In horizontal writing, Mono Ruby will cause layout break.
  • 27. align issue inline issue letter spacing issue
 (investigating) figure 11) In horizontal writing, Issues Bopomofo ruby confronted.
  • 29. ruby-align: center • • Behave as Case 1~7. • Keep proportion even with relative font-size. (for ebook convention) • Conflict with Japanese Ruby Requirement? Ruby text in this mode compressed to fit ruby base width. figure 12) In vertical writing, font-size is relative
 (font-size: 100%).
  • 30. ruby-position: inter-character • keep Bopomofo ruby placed right of ruby base. especially in horizontal writing. • With this property, ruby base and ruby text should not be separated with line-break.(as linestart prohibition rule?) figure 13) Taiwan’s Mandarin textbook, quiz section. horizontal writing with Bopomofo.
  • 32. Webfont • It works, but not good enough. • Lot of Chinese characters have alternative pronunciations, max to 6 patterns. • 6 fonts with contents span class markup cannot be done easily. Even with subset to reduce size. • It’s proprietary, not open standard.
  • 33. Tool
  • 34. Why Tool? • Bopomofo usually marked with every character in books for educational purpose. • Lot of Chinese characters have alternative pronunciations, maximum to 6 patterns. =Tool to convert article into Bopomofo ruby html with choosing for pronunciations .
  • 36. • Government in Taiwan is willing to host a project to speedup browser implement. • May start late this year.