2014-12-22 71 views
2

我試圖使用包intl,但我的大腦不明白...鏢國際化庫

你有如何使用它一個簡單的例子,當我們來自chrome.i18n

+0

添加一些關於您試圖解決的問題的更具體的細節。 –

回答

0

如果你只是想本地化一些消息,我認爲l10n會對你很好。它生成PO文件並使用它來翻譯。

1

這裏是一個樣本 - https://github.com/dart-lang/sample-polymer-intl

頂級的解釋: 你寫你的消息最初包裹在Intl.message調用,這應該是,不只是一個功能。所以,例如

hello() => Intl.message("Hello world"); 
    print(hello()); 

如果您運行它,它將運行而不做任何修改。您可以使用bin/extract_to_arb.dart提取出消息,翻譯它們,然後運行bin/generate_from_arb.dart。

相比chrome.i18n:

  • 你在寫郵件包裹這-IN-A-函數式和默認語言環境(比如說英文)版本只運行。
  • 您的程序不會直接讀取JSON文件,您可以在它們上運行代碼生成器,並且它會爲每個語言環境生成一個庫。
  • 你不使用getMessage或任何東西,它只是運行與以前相同的方式。
  • 要使用來自特定語言環境的消息,請初始化語言環境(加載延遲的庫),然後將其設置爲默認語言環境。
  • 它生成並消費ARB文件,消息的解釋就像ICU。

這是你在找什麼?