2012-06-15 12 views
4

我想構建一個android庫(jar文件)。該jar文件需要進行本地化。像我有一個類:如何在android庫中支持本地化

class MyMessageService 
{ 
    //Needs to return different languages message according to locale 
    String getMessage1(); 
} 

我試圖在罐子包裝res/values/string.xmlR.class

但其中引用的jar我的主應用程序,我稱之爲

String s = this.getResources().getString(mylibrary.localize.R.string.hello); 

我的「S」,這是從我的主項目(資源ID碰撞)。

有沒有什麼辦法可以創建一個支持本地化的android庫?我不能讓主應用程序導入我的圖書館資源,因爲我的圖書館應該單獨出貨。

+0

您是否閱讀了本文檔? http://developer.android.com/guide/topics/resources/localization.html – hovanessyan

+0

也許這可以幫助你:http://www.kobu.com/i18n/android/index-en.htm – saini

+2

請注意,我我正在圖書館工作。以上兩個鏈接都是關於應用程序,而不是庫 – goodier

回答

1

你正在做的lib Android上的一個錯誤的方式.. 我也面臨類似問題,您可以重複使用不同的項目之間的UI組件 只要給的Android庫項目一試(lib.jar.path用於包裝的例子),建lib proj,現在你生成了R類,將lib proj引用到你的應用程序proj(在項目屬性的Android選項卡中),並使用lib.jar.path.R來查找你的字符串或其他。

0

不幸的是,這不能以標準的方式用罐子來完成。但是你可以自己實現本地化 - 當前用戶區域設置可以通過Locale.getDefault()來檢索。之後,您可以構建一個開關並返回與語言環境字符串相對應的內容(可以簡單地保存在代碼或某個外部文件中)。