SlideShare a Scribd company logo
1 of 60
Download to read offline
L10N Introduction
Localization Workshop @ Mozilla Office
      by Tomoya Asai (dynamis)
Tomoya ASAI (dynamis)
       Mozilla Japan - Technical mktg.
       http://dynamis.jp/
       http://facebook.com/dynamis
       http://twitter.com/dynamitter
       dynamis@mozilla-japan.org
dynamis (         dunamis)
L10n introduction
Localization
What is Localization
L10n introduction
L10n introduction
L10n introduction
printf("This	 class	 is	 %s.n",	 class_name);
//	 gettext()	 またはそのエイリアス	 _()	 関数で処理
printf(_("This	 class	 is	 %s.n"),	 class_name);



#:	 src/l10n.c:123
msgid	 "This	 class	 is	 %s.n"
msgstr	 ""




                                  http://www.gnu.org/software/gettext/
L10n introduction
L10n introduction
L10n introduction
L10n introduction
Mozilla's L10n
Mozilla's L10n System
L10n introduction
sample.dtd
<!ENTITY	 lable.value	 "(>.&lt;)">
<!ENTITY	 label.style	 "font-size:	 64px;	 font-weight:	 bold">

<!DOCTYPE	 overlay	 [
	 	 <!ENTITY	 %	 sampledtd	 SYSTEM	 "sample.dtd"	 >
	 	 %sampledtd;
]>
<window	 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	 	 <hbox	 pack="center"	 align="center"	 height="300">
	 	 	 	 <label	 value="&label.value;"	 style="&label.style;"/>
	 	 </hbox>
</window>
sample.dtd
<!ENTITY	 lable.value	 "(>.&lt;)">
<!ENTITY	 label.style	 "font-size:	 64px;	 font-weight:	 bold">

<!DOCTYPE	 overlay	 [
	 	 <!ENTITY	 %	 sampledtd	 SYSTEM	 "sample.dtd"	 >
	 	 %sampledtd;
]>
<window	 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	 	 <hbox	 pack="center"	 align="center"	 height="300">
	 	 	 	 <label	 value="&label.value;"	 style="&label.style;"/>
	 	 </hbox>
</window>
<!ENTITY	 tabCmd.label	 	 	 	 	 	 	 	 	 	 	 	 	 	 "New	 Tab">
<!ENTITY	 tabCmd.accesskey	 	 	 	 	 	 	 	 	 	 "T">
<!ENTITY	 tabCmd.commandkey	 	 	 	 	 	 	 	 	 "t">
<!ENTITY	 openLocationCmd.label	 	 	 	 	 "Open	 Location…⋯">
<!ENTITY	 openLocationCmd.accesskey	 "L">
<!ENTITY	 openFileCmd.label	 	 	 	 	 	 	 	 	 "Open	 File…⋯">
<!ENTITY	 openFileCmd.accesskey	 	 	 	 	 "O">
<!ENTITY	 openFileCmd.commandkey	 	 	 	 "o">
<!ENTITY	 printSetupCmd.label	 	 	 	 	 	 	 "Page	 Setup…⋯">
<!ENTITY	 printSetupCmd.accesskey	 	 	 "u">
<!ENTITY	 printPreviewCmd.label	 	 	 	 	 "Print	 Preview">
<!ENTITY	 printPreviewCmd.accesskey	 "v">
<!ENTITY	 printCmd.label	 	 	 	 	 	 	 	 	 	 	 	 "Print…⋯">
<!ENTITY	 tabCmd.label	 	 	 	 	 	 	 	 	 	 	 	 	 	 "新しいタブ">
<!ENTITY	 tabCmd.accesskey	 	 	 	 	 	 	 	 	 	 "T">
<!ENTITY	 tabCmd.commandkey	 	 	 	 	 	 	 	 	 "t">
<!ENTITY	 openLocationCmd.label	 	 	 	 	 "URL	 を開く...">
<!ENTITY	 openLocationCmd.accesskey	 "L">
<!ENTITY	 openFileCmd.label	 	 	 	 	 	 	 	 	 "ファイルを開く...">
<!ENTITY	 openFileCmd.accesskey	 	 	 	 	 "O">
<!ENTITY	 openFileCmd.commandkey	 	 	 	 "o">
<!ENTITY	 printSetupCmd.label	 	 	 	 	 	 	 "ページ設定...">
<!ENTITY	 printSetupCmd.accesskey	 	 	 "u">
<!ENTITY	 printPreviewCmd.label	 	 	 	 	 "印刷プレビュー">
<!ENTITY	 printPreviewCmd.accesskey	 "v">
<!ENTITY	 printCmd.label	 	 	 	 	 	 	 	 	 	 	 	 "印刷...">
<!ENTITY	 tabCmd.label	 	 	 	 	 	 	 	 	 	 	 	 	 	 "新しいタブ">
<!ENTITY	 tabCmd.accesskey	 	 	 	 	 	 	 	 	 	 "T">
<!ENTITY	 tabCmd.commandkey	 	 	 	 	 	 	 	 	 "t">
<!ENTITY	 openLocationCmd.label	 	 	 	 	 "URL	 を開く...">
<!ENTITY	 openLocationCmd.accesskey	 "L">
<!ENTITY	 openFileCmd.label	 	 	 	 	 	 	 	 	 "ファイルを開く...">
<!ENTITY	 openFileCmd.accesskey	 	 	 	 	 "O">
<!ENTITY	 openFileCmd.commandkey	 	 	 	 "o">
<!ENTITY	 printSetupCmd.label	 	 	 	 	 	 	 "ページ設定...">
<!ENTITY	 printSetupCmd.accesskey	 	 	 "u">
<!ENTITY	 printPreviewCmd.label	 	 	 	 	 "印刷プレビュー">
<!ENTITY	 printPreviewCmd.accesskey	 "v">
<!ENTITY	 printCmd.label	 	 	 	 	 	 	 	 	 	 	 	 "印刷...">
#	 RSS	 Pretty	 Print
feedNoFeeds	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 =	 Page	 has	 no	 feeds
feedShowFeedNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 Subscribe	 to	 '%S'…⋯
feedHasFeedsNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 Subscribe	 to	 this	 page…⋯

#	 History	 menu
menuOpenAllInTabs.label	 	 	 	 	 =	 Open	 All	 in	 Tabs
menuOpenAllInTabs.accesskey	 =	 o

#	 Unified	 Back-/Forward	 Popup
tabHistory.current	 	 	 	 	 	 	 	 	 	 =	 Stay	 on	 this	 page
tabHistory.goBack	 	 	 	 	 	 	 	 	 	 	 =	 Go	 back	 to	 this	 page
tabHistory.goForward	 	 	 	 	 	 	 	 =	 Go	 forward	 to	 this	 page

#	 Star	 button
starButtonOn.tooltip	 	 	 	 	 	 	 	 =	 Edit	 this	 bookmark
starButtonOff.tooltip	 	 	 	 	 	 	 =	 Bookmark	 this	 page
#	 RSS	 Pretty	 Print
feedNoFeeds	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 =	 ページにはフィードがありません。
feedShowFeedNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 '%S'	 を購読...
feedHasFeedsNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 このページを購読します

#	 History	 menu
menuOpenAllInTabs.label	 	 	 	 	 =	 タブですべて開く
menuOpenAllInTabs.accesskey	 =	 o

#	 Unified	 Back-/Forward	 Popup
tabHistory.current	 	 	 	 	 	 	 	 	 	 =	 現在のページです
tabHistory.goBack	 	 	 	 	 	 	 	 	 	 	 =	 このページに戻ります
tabHistory.goForward	 	 	 	 	 	 	 	 =	 このページに進みます

#	 Star	 button
starButtonOn.tooltip	 =	 このページのブックマークを編集します
starButtonOff.tooltip=	 このページをブックマークに追加します
#	 RSS	 Pretty	 Print
feedNoFeeds	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 =	 ページにはフィードがありません。
feedShowFeedNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 '%S'	 を購読...
feedHasFeedsNew	 	 	 	 	 	 	 	 	 	 	 	 	 =	 このページを購読します

#	 History	 menu
menuOpenAllInTabs.label	 	 	 	 	 =	 タブですべて開く
menuOpenAllInTabs.accesskey	 =	 o

#	 Unified	 Back-/Forward	 Popup
tabHistory.current	 	 	 	 	 	 	 	 	 	 =	 現在のページです
tabHistory.goBack	 	 	 	 	 	 	 	 	 	 	 =	 このページに戻ります
tabHistory.goForward	 	 	 	 	 	 	 	 =	 このページに進みます

#	 Star	 button
starButtonOn.tooltip	 =	 このページのブックマークを編集します
starButtonOff.tooltip=	 このページをブックマークに追加します
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
Rapid Release
Rapid Release & L10N
L10n introduction
L10n introduction
L10n introduction
http://hg.mozilla.org/releases/mozilla-aurora
http://hg.mozilla.org/releases/comm-aurora


http://hg.mozilla.org/releases/l10n/mozilla-aurora/ja
http://hg.mozilla.org/releases/l10n/mozilla-aurora/ja-JP-mac


https://code.google.com/p/mozja/
Japanese L10n
ja L10n System
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction
QA Test
Testing with Langpack
hg	 clone	 https://code.google.com/p/mozja.lot/	 lot;	 cd	 lot
ant	 setupl10n


ant	 auto	 onlyfx	 buildfx



ant	 auto	 convert	 insertnew	 pack
L10n introduction
firefox.exe	 -no-remote	 -P




  /Applications/Firefox.app/Contents/MacOS/firefox	 -P
firefox.exe	 -no-remote	 -P




  /Applications/Firefox.app/Contents/MacOS/firefox	 -P
firefox.exe	 -no-remote	 -P




  /Applications/Firefox.app/Contents/MacOS/firefox	 -P
L10n introduction
L10n introduction
L10n introduction
Other Localization
Web Site, Fx Home etc...
L10n introduction
L10n introduction
L10n introduction
L10n introduction
L10n introduction

More Related Content

Similar to L10n introduction

Nothing Hard Baked: Designing the Inclusive Web
Nothing Hard Baked: Designing the Inclusive WebNothing Hard Baked: Designing the Inclusive Web
Nothing Hard Baked: Designing the Inclusive Webcolinbdclark
 
Getting property based testing to work after struggling for 3 years
Getting property based testing to work after struggling for 3 yearsGetting property based testing to work after struggling for 3 years
Getting property based testing to work after struggling for 3 yearsSaurabh Nanda
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing CapybaraTim Moore
 
The Dom Scripting Toolkit J Query
The Dom Scripting Toolkit J QueryThe Dom Scripting Toolkit J Query
The Dom Scripting Toolkit J QueryQConLondon2008
 
You do not need automation engineer - Sqa Days - 2015 - EN
You do not need automation engineer  - Sqa Days - 2015 - ENYou do not need automation engineer  - Sqa Days - 2015 - EN
You do not need automation engineer - Sqa Days - 2015 - ENIakiv Kramarenko
 
The Ring programming language version 1.9 book - Part 52 of 210
The Ring programming language version 1.9 book - Part 52 of 210The Ring programming language version 1.9 book - Part 52 of 210
The Ring programming language version 1.9 book - Part 52 of 210Mahmoud Samir Fayed
 
Dicas de palestra
Dicas de palestraDicas de palestra
Dicas de palestraFabio Akita
 
E2 appspresso hands on lab
E2 appspresso hands on labE2 appspresso hands on lab
E2 appspresso hands on labNAVER D2
 
E3 appspresso hands on lab
E3 appspresso hands on labE3 appspresso hands on lab
E3 appspresso hands on labNAVER D2
 

Similar to L10n introduction (12)

Backbone - TDC 2011 Floripa
Backbone - TDC 2011 FloripaBackbone - TDC 2011 Floripa
Backbone - TDC 2011 Floripa
 
Nothing Hard Baked: Designing the Inclusive Web
Nothing Hard Baked: Designing the Inclusive WebNothing Hard Baked: Designing the Inclusive Web
Nothing Hard Baked: Designing the Inclusive Web
 
Getting property based testing to work after struggling for 3 years
Getting property based testing to work after struggling for 3 yearsGetting property based testing to work after struggling for 3 years
Getting property based testing to work after struggling for 3 years
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing Capybara
 
The Dom Scripting Toolkit J Query
The Dom Scripting Toolkit J QueryThe Dom Scripting Toolkit J Query
The Dom Scripting Toolkit J Query
 
Phylogenetic tree
Phylogenetic treePhylogenetic tree
Phylogenetic tree
 
You do not need automation engineer - Sqa Days - 2015 - EN
You do not need automation engineer  - Sqa Days - 2015 - ENYou do not need automation engineer  - Sqa Days - 2015 - EN
You do not need automation engineer - Sqa Days - 2015 - EN
 
Reacting to a Virtual World
Reacting to a Virtual WorldReacting to a Virtual World
Reacting to a Virtual World
 
The Ring programming language version 1.9 book - Part 52 of 210
The Ring programming language version 1.9 book - Part 52 of 210The Ring programming language version 1.9 book - Part 52 of 210
The Ring programming language version 1.9 book - Part 52 of 210
 
Dicas de palestra
Dicas de palestraDicas de palestra
Dicas de palestra
 
E2 appspresso hands on lab
E2 appspresso hands on labE2 appspresso hands on lab
E2 appspresso hands on lab
 
E3 appspresso hands on lab
E3 appspresso hands on labE3 appspresso hands on lab
E3 appspresso hands on lab
 

More from dynamis

HTTP and 5G (fixed1)
HTTP and 5G (fixed1)HTTP and 5G (fixed1)
HTTP and 5G (fixed1)dynamis
 
HTTP and 5G
HTTP and 5GHTTP and 5G
HTTP and 5Gdynamis
 
HTTP and 5G partial draft
HTTP and 5G partial draftHTTP and 5G partial draft
HTTP and 5G partial draftdynamis
 
Web App Platform Strategy
Web App Platform StrategyWeb App Platform Strategy
Web App Platform Strategydynamis
 
HTML5 & Renesas RZ/G
HTML5 & Renesas RZ/GHTML5 & Renesas RZ/G
HTML5 & Renesas RZ/Gdynamis
 
Life of html5 (osaka)
Life of html5 (osaka)Life of html5 (osaka)
Life of html5 (osaka)dynamis
 
Web updates 2017
Web updates 2017Web updates 2017
Web updates 2017dynamis
 
Life of HTML5
Life of HTML5Life of HTML5
Life of HTML5dynamis
 
Browsers in IoT Era
Browsers in IoT EraBrowsers in IoT Era
Browsers in IoT Eradynamis
 
New Norm of HTML5
New Norm of HTML5New Norm of HTML5
New Norm of HTML5dynamis
 
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)dynamis
 
OSC2016.Enterprise Lightnig Talk
OSC2016.Enterprise Lightnig TalkOSC2016.Enterprise Lightnig Talk
OSC2016.Enterprise Lightnig Talkdynamis
 
Demo for Gecko Embedded
Demo for Gecko EmbeddedDemo for Gecko Embedded
Demo for Gecko Embeddeddynamis
 
Project Gecko Embedded
Project Gecko EmbeddedProject Gecko Embedded
Project Gecko Embeddeddynamis
 
The New Norm of The Web
The New Norm of The WebThe New Norm of The Web
The New Norm of The Webdynamis
 
Progressive Mobile Web Apps
Progressive Mobile Web AppsProgressive Mobile Web Apps
Progressive Mobile Web Appsdynamis
 
Modern Mobile Web Apps
Modern Mobile Web AppsModern Mobile Web Apps
Modern Mobile Web Appsdynamis
 
Web Tech & Architecture
Web Tech & ArchitectureWeb Tech & Architecture
Web Tech & Architecturedynamis
 
Java script.trend(spec)
Java script.trend(spec)Java script.trend(spec)
Java script.trend(spec)dynamis
 
Data Privacy meeting
Data Privacy meetingData Privacy meeting
Data Privacy meetingdynamis
 

More from dynamis (20)

HTTP and 5G (fixed1)
HTTP and 5G (fixed1)HTTP and 5G (fixed1)
HTTP and 5G (fixed1)
 
HTTP and 5G
HTTP and 5GHTTP and 5G
HTTP and 5G
 
HTTP and 5G partial draft
HTTP and 5G partial draftHTTP and 5G partial draft
HTTP and 5G partial draft
 
Web App Platform Strategy
Web App Platform StrategyWeb App Platform Strategy
Web App Platform Strategy
 
HTML5 & Renesas RZ/G
HTML5 & Renesas RZ/GHTML5 & Renesas RZ/G
HTML5 & Renesas RZ/G
 
Life of html5 (osaka)
Life of html5 (osaka)Life of html5 (osaka)
Life of html5 (osaka)
 
Web updates 2017
Web updates 2017Web updates 2017
Web updates 2017
 
Life of HTML5
Life of HTML5Life of HTML5
Life of HTML5
 
Browsers in IoT Era
Browsers in IoT EraBrowsers in IoT Era
Browsers in IoT Era
 
New Norm of HTML5
New Norm of HTML5New Norm of HTML5
New Norm of HTML5
 
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)
Edge Web Technologies and Browser Vendors (Updated on 2016/09/06)
 
OSC2016.Enterprise Lightnig Talk
OSC2016.Enterprise Lightnig TalkOSC2016.Enterprise Lightnig Talk
OSC2016.Enterprise Lightnig Talk
 
Demo for Gecko Embedded
Demo for Gecko EmbeddedDemo for Gecko Embedded
Demo for Gecko Embedded
 
Project Gecko Embedded
Project Gecko EmbeddedProject Gecko Embedded
Project Gecko Embedded
 
The New Norm of The Web
The New Norm of The WebThe New Norm of The Web
The New Norm of The Web
 
Progressive Mobile Web Apps
Progressive Mobile Web AppsProgressive Mobile Web Apps
Progressive Mobile Web Apps
 
Modern Mobile Web Apps
Modern Mobile Web AppsModern Mobile Web Apps
Modern Mobile Web Apps
 
Web Tech & Architecture
Web Tech & ArchitectureWeb Tech & Architecture
Web Tech & Architecture
 
Java script.trend(spec)
Java script.trend(spec)Java script.trend(spec)
Java script.trend(spec)
 
Data Privacy meeting
Data Privacy meetingData Privacy meeting
Data Privacy meeting
 

Recently uploaded

Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024Brian Pichman
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.IPLOOK Networks
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc
 

Recently uploaded (20)

Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
 

L10n introduction

  • 1. L10N Introduction Localization Workshop @ Mozilla Office by Tomoya Asai (dynamis)
  • 2. Tomoya ASAI (dynamis) Mozilla Japan - Technical mktg. http://dynamis.jp/ http://facebook.com/dynamis http://twitter.com/dynamitter dynamis@mozilla-japan.org dynamis ( dunamis)
  • 8. printf("This class is %s.n", class_name); // gettext() またはそのエイリアス _() 関数で処理 printf(_("This class is %s.n"), class_name); #: src/l10n.c:123 msgid "This class is %s.n" msgstr "" http://www.gnu.org/software/gettext/
  • 15. sample.dtd <!ENTITY lable.value "(>.&lt;)"> <!ENTITY label.style "font-size: 64px; font-weight: bold"> <!DOCTYPE overlay [ <!ENTITY % sampledtd SYSTEM "sample.dtd" > %sampledtd; ]> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox pack="center" align="center" height="300"> <label value="&label.value;" style="&label.style;"/> </hbox> </window>
  • 16. sample.dtd <!ENTITY lable.value "(>.&lt;)"> <!ENTITY label.style "font-size: 64px; font-weight: bold"> <!DOCTYPE overlay [ <!ENTITY % sampledtd SYSTEM "sample.dtd" > %sampledtd; ]> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox pack="center" align="center" height="300"> <label value="&label.value;" style="&label.style;"/> </hbox> </window>
  • 17. <!ENTITY tabCmd.label "New Tab"> <!ENTITY tabCmd.accesskey "T"> <!ENTITY tabCmd.commandkey "t"> <!ENTITY openLocationCmd.label "Open Location…⋯"> <!ENTITY openLocationCmd.accesskey "L"> <!ENTITY openFileCmd.label "Open File…⋯"> <!ENTITY openFileCmd.accesskey "O"> <!ENTITY openFileCmd.commandkey "o"> <!ENTITY printSetupCmd.label "Page Setup…⋯"> <!ENTITY printSetupCmd.accesskey "u"> <!ENTITY printPreviewCmd.label "Print Preview"> <!ENTITY printPreviewCmd.accesskey "v"> <!ENTITY printCmd.label "Print…⋯">
  • 18. <!ENTITY tabCmd.label "新しいタブ"> <!ENTITY tabCmd.accesskey "T"> <!ENTITY tabCmd.commandkey "t"> <!ENTITY openLocationCmd.label "URL を開く..."> <!ENTITY openLocationCmd.accesskey "L"> <!ENTITY openFileCmd.label "ファイルを開く..."> <!ENTITY openFileCmd.accesskey "O"> <!ENTITY openFileCmd.commandkey "o"> <!ENTITY printSetupCmd.label "ページ設定..."> <!ENTITY printSetupCmd.accesskey "u"> <!ENTITY printPreviewCmd.label "印刷プレビュー"> <!ENTITY printPreviewCmd.accesskey "v"> <!ENTITY printCmd.label "印刷...">
  • 19. <!ENTITY tabCmd.label "新しいタブ"> <!ENTITY tabCmd.accesskey "T"> <!ENTITY tabCmd.commandkey "t"> <!ENTITY openLocationCmd.label "URL を開く..."> <!ENTITY openLocationCmd.accesskey "L"> <!ENTITY openFileCmd.label "ファイルを開く..."> <!ENTITY openFileCmd.accesskey "O"> <!ENTITY openFileCmd.commandkey "o"> <!ENTITY printSetupCmd.label "ページ設定..."> <!ENTITY printSetupCmd.accesskey "u"> <!ENTITY printPreviewCmd.label "印刷プレビュー"> <!ENTITY printPreviewCmd.accesskey "v"> <!ENTITY printCmd.label "印刷...">
  • 20. # RSS Pretty Print feedNoFeeds = Page has no feeds feedShowFeedNew = Subscribe to '%S'…⋯ feedHasFeedsNew = Subscribe to this page…⋯ # History menu menuOpenAllInTabs.label = Open All in Tabs menuOpenAllInTabs.accesskey = o # Unified Back-/Forward Popup tabHistory.current = Stay on this page tabHistory.goBack = Go back to this page tabHistory.goForward = Go forward to this page # Star button starButtonOn.tooltip = Edit this bookmark starButtonOff.tooltip = Bookmark this page
  • 21. # RSS Pretty Print feedNoFeeds = ページにはフィードがありません。 feedShowFeedNew = '%S' を購読... feedHasFeedsNew = このページを購読します # History menu menuOpenAllInTabs.label = タブですべて開く menuOpenAllInTabs.accesskey = o # Unified Back-/Forward Popup tabHistory.current = 現在のページです tabHistory.goBack = このページに戻ります tabHistory.goForward = このページに進みます # Star button starButtonOn.tooltip = このページのブックマークを編集します starButtonOff.tooltip= このページをブックマークに追加します
  • 22. # RSS Pretty Print feedNoFeeds = ページにはフィードがありません。 feedShowFeedNew = '%S' を購読... feedHasFeedsNew = このページを購読します # History menu menuOpenAllInTabs.label = タブですべて開く menuOpenAllInTabs.accesskey = o # Unified Back-/Forward Popup tabHistory.current = 現在のページです tabHistory.goBack = このページに戻ります tabHistory.goForward = このページに進みます # Star button starButtonOn.tooltip = このページのブックマークを編集します starButtonOff.tooltip= このページをブックマークに追加します
  • 47. hg clone https://code.google.com/p/mozja.lot/ lot; cd lot ant setupl10n ant auto onlyfx buildfx ant auto convert insertnew pack
  • 49. firefox.exe -no-remote -P /Applications/Firefox.app/Contents/MacOS/firefox -P
  • 50. firefox.exe -no-remote -P /Applications/Firefox.app/Contents/MacOS/firefox -P
  • 51. firefox.exe -no-remote -P /Applications/Firefox.app/Contents/MacOS/firefox -P