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

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)
  • 4.
  • 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/
  • 13.
  • 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= このページをブックマークに追加します
  • 31.
  • 35.
  • 36.
  • 46.
  • 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
  • 55.