Your SlideShare is downloading. ×
2010 08-14 web-sitei18n
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

2010 08-14 web-sitei18n

2,725
views

Published on

不用Framework, 一天完成網站的多國語系製作

不用Framework, 一天完成網站的多國語系製作

Published in: Technology

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,725
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 不用 Framework  一天完成網站的 多國語系製作 Tsung 2010 / 08 / 14  tsunghao@gmail.com
  • 2. 本投影片 採用 CC 授權
  • 3. 1.為何要多國語系 2.一般都如何做多國語系 3.如何使用 Gettext 4.常見問題
  • 4. Who am I
  • 5.   SiteTag
  • 6. I can do ....
  • 7. Why 多國語系
  • 8. 中國 15 億人
  • 9. 前進 世界
  • 10. 取自 : http://www.vagabondjourney.com/travelogue/study-spanish-rosetta-stone/
  • 11. 問題
  • 12. 流程彈性
  • 13. 名詞統一
  • 14. 製作時間
  • 15. 流程彈性 名詞統一 製作時間
  • 16. 彈性 +++
  • 17. cp ­r tw/ en/
  • 18. 網址 : http://www.foxconn.com.tw/
  • 19. 網址 : http://www.foxconn.com.tw/GroupProfile.htm
  • 20. 不用 Framwork  一天完成網站的 多國語系製作
  • 21. 不用 Framwork 
  • 22. symfony symfony | Chapter 13 - I18n And L10n $product = ProductPeer::retrieveByPk(1); $product->setCulture('fr'); $product->setName('Nom du produit'); $product->save(); $product->setCulture('en'); $product->setName('Product name'); $product->save(); echo $product->getName(); => 'Product name' $product->setCulture('fr'); echo $product->getName(); => 'Nom du produit'
  • 23. Yii Yii - Internationalization (I18N) Yii:t() Yii::t('app', 'Path alias "{alias}" is redefined.', array('{alias}'=>$alias)) Yii::t('Xyz.categoryName', 'message to be translated') protected/messages/LocaleID/CategoryName.php
  • 24. CodeIgniter CodeIgniter | Internationalization Views i18n http://www.example.com/it/... 1. view_name_it.php 2. view_name.php http://www.example.com/fr/... 1. view_name_fr.php 2. view_name.php
  • 25. CakePHP CakePHP :: Internationalizing Your Application Gettext, 使用 __() /app/locale/<locale>/LC_MESSAGES/<domain>.po /app/locale/eng/LC_MESSAGES/default.po (English) /app/locale/fre/LC_MESSAGES/default.po (French) /app/locale/por/LC_MESSAGES/default.po (Portuguese)
  • 26. 如何做 多國語系
  • 27. 網址 : http://golangd.com/
  • 28. Source: phpBB3
  • 29. Source: discuz
  • 30. 文字 抽離
  • 31. 檔案 分隔
  • 32. 名詞統一 變數命名
  • 33. 不用 Framwork  一天完成網站的 多國語系製作
  • 34. Gettext
  • 35. 1994 July
  • 36. ● 1994 年 7 月 開始構想 ● 1995 年 4 月 正式發布 ● 1997 年 加入 textdomain, bindtextdomain ● 2000 年 加入 UTF­8 ...  等支援 History of GNU gettext
  • 37. 支援 C, C++, Objective C, sh, bash, Python, Common  Lisp, clisp C, Emacs Lisp, librep, Scheme,  Smalltalk, Java, C#, gawk, Pascal, wxWidgets,  YCP, Tcl, Perl, PHP, Pike, GCC­source, ruby,  javascript 詳見 : List of Programming Languages - GNU `gettext' utilities
  • 38. 優點
  • 39. 名詞統一 變數命名 製作時間
  • 40. _()
  • 41. _('hello')
  • 42. <?php echo _('hello, world'); ?> 嗨 ,  世界
  • 43. Gettext 套件 & 使用
  • 44. xgettext  ­ extract gettext strings from source msgfmt  ­ compile message catalog to binary format apt­get install gettext
  • 45. po  ­  人 mo  ­  機器
  • 46. mo + 系統環境
  • 47. 環境設定
  • 48. Locale zh_TW  UTF­8 zh_CN  UTF­8 en_US  UTF­8
  • 49. 語系路徑 mkdir  ­p  locale/zh_TW/LC_MESSAGES mkdir  ­p  locale/zh_CN/LC_MESSAGES mkdir  ­p  locale/en_US/LC_MESSAGES
  • 50. 流程 xgettext –from­code=UTF­8 ­d hello hello.php msgmerge ­o hello.po     locale/zh_TW/LC_MESSAGES/hello.po      hello.po vim hello.po #  翻譯 msgfmt ­o     locale/zh_TW/LC_MESSAGES/hello.mo     hello.po
  • 51. 程式設定 define('PACKAGE', 'hello'); putenv('LANG=zh_TW'); setlocale(LC_ALL, 'zh_TW'); bindtextdomain(PACKAGE, 'locale'); textdomain(PACKAGE);
  • 52. Demo
  • 53. 常見問題
  • 54. JavaScript 多國語系
  • 55. Po  編輯器
  • 56. 不用 Framwork  3 分鐘完成網站 多國語系製作
  • 57. 3 分鐘
  • 58. http://translate.google.com/translate_tools
  • 59. http://www.microsofttranslator.com/wi http://www.microsofttranslator.com/widget/
  • 60. FAQ
  • 61. 相關網頁 ● 使用 gettext 來實做 PHP 多國語系支援(I18N) ● PHP 使用 sprintf 調換變數順序 ● Gettext po 檔的編輯器 - poedit ● Gettext mo 轉回 po 和 PHP 讀取 mo 檔
  • 62. 聯絡資料 Tsung tsunghao@gmail.com http://plog.longwin.com.tw