如何在android库中支持本地化

时间:2012-06-15 09:03:15

标签: android

我想构建一个android库(jar文件)。 jar文件需要本地化。就像我有一个班级:

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

我尝试在jar中打包res/values/string.xmlR.class

但在我参考jar的主要应用程序中,我打电话给

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

我得到了" s"这来自我的主项目(资源ID碰撞)。

有没有办法创建一个支持本地化的android库?我不能让主应用程序导入我的库的资源,因为我的库应该单独发货。

2 个答案:

答案 0 :(得分:1)

你在Android上以错误的方式做lib .. 我还遇到了像你这样的问题,在不同的项目之间重用UI组件 只需尝试Android库项目(包示例的lib.jar.path),构建lib proj,现在生成R类,将lib proj引用到您的应用程序项目(在项目属性Android选项卡中),并使用lib。 jar.path.R找到你的字符串或其他什么。

答案 1 :(得分:0)

不幸的是,这不能用jar的标准方式完成。但您可以自己实现本地化 - 当前用户区域设置可以通过Locale.getDefault()进行检索。之后,您可以构建一个开关并返回对应于区域设置字符串(它可以简单地保存在代码或某些外部文件中)。