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)
Localization
What is Localization
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/
Mozilla's L10n
Mozilla's L10n System
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=	 このページをブックマークに追加します
Rapid Release
Rapid Release & L10N
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
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
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
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

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

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)
  • 3.
  • 5.
  • 6.
  • 7.
  • 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/
  • 9.
  • 10.
  • 11.
  • 12.
  • 14.
  • 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= このページをブックマークに追加します
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 32.
  • 33.
  • 34.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 47. hg clone https://code.google.com/p/mozja.lot/ lot; cd lot ant setupl10n ant auto onlyfx buildfx ant auto convert insertnew pack
  • 48.
  • 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
  • 52.
  • 53.
  • 54.