2013-04-11 39 views
1

在我正在構建的應用程序中,我使用了多種語言。通過添加一個新文件夾(例如:values-fr)並在其中添加一個新的strings.xml文件,很容易在應用程序中添加不同的語言。但我有很大的文本文件(完整的文章),我需要添加。這些文章也用不同的語言編寫。什麼是將它們添加到我的應用程序的最佳方式?在Android中使用不同語言的大文本文件

回答

4

我會考慮使用res/raw-<qualifiers>作爲資產的替代方案。 raw文件夾可以存儲任意文件 - 他們 - 你猜對了 - 原始形式。

  • res/raw-fr
  • res/raw-en

原始資源然後可以打開通過在資源調用openRawResource(int id):例如,「你好世界」的文章寫的法語和英語,會下儲存對象,類似於它爲其他資源(如drawables,strings等)工作的方式。框架生成的id將採用熟悉的格式R.raw.filename(不帶文件擴展名)。

使用這種方法的好處是您可以充分利用Android的本地化系統,這意味着作爲開發人員您基本上不必擔心任何這些。您還可以輕鬆添加更多限定符以進一步過濾設備特徵(例如,屏幕大小,密度,平臺版本等 - see here for a full overview)。缺點是它對原始文件名/擴展名施加了一些限制,並且不支持適當的文件夾/文件層次結構。

'更好'的方法(/原始vs /資產)可能取決於您的項目需求。

+0

很好的答案,謝謝。只是測試它,它像一個魅力 – dumazy 2013-04-11 09:45:04

3

我可能會使用資產 - 即創建assets/data/fr/,並將fr文件存儲在那裏。請注意,資產需要明確提取 - 這可能是好的,因爲您可以節省內存只有一組文章安裝。

另一種可能性是將所有內容放置在http服務器上,從而使保持和訪問文章別人的問題:)。

順便說一句,如果你的文件真的很大,你將不得不安裝沒有它們的應用程序,並在以後下載文章。 (對apk大小有限制。)

+0

感謝您的快速響應。實際上,我正在撰寫關於優化Android的論文,並且我希望在應用程序中使用它,但我還沒有製作任何多語言應用程序。由於不會有任何更改,因此我不會使用http服務器。我會嘗試使用資產,如果我沒有得到更好的答案,我會接受這個。謝謝!使用原始資源的 – dumazy 2013-04-11 08:14:30

+0

似乎對我更好,因爲我不必再關心本地化。 – dumazy 2013-04-11 09:44:43

相關問題