Java 如何在android上查找字符串翻译?

Java 如何在android上查找字符串翻译?,java,android,android-resources,Java,Android,Android Resources,我需要翻译从一个所有者服务器收到的错误代码 因此,我没有字符串id,而是有一个字符串、错误代码,我需要检查资源中可能的翻译 如何执行查找?结果是,有一个函数用于查找,即getIdentifier private String getStringResourceByName(Resources res, String aString) { String packageName = App.getInstance().getPackageName(); int resId =

我需要翻译从一个所有者服务器收到的错误代码

因此,我没有字符串id,而是有一个字符串、错误代码,我需要检查资源中可能的翻译


如何执行查找?

结果是,有一个函数用于查找,即getIdentifier

private String getStringResourceByName(Resources res, String aString) {
    String packageName =   App.getInstance().getPackageName();
    int resId =  App.getInstance().getResources().getIdentifier(aString, "string", packageName);
    return res.getString(resId);
}
尝试一个简单的测试:

@Test
public void test(){

    Resources res = serviceFactory.getApplicationContext().getResources();

    Log.d(TAG, "default language: "+ getStringResourceByName(res,"LG")); //will print the default definition.

    Configuration conf = res.getConfiguration();
    conf.locale = Locale.FRENCH; //for instance
    res.updateConfiguration(conf, null); //

    Log.d(TAG, "French: "+ getStringResourceByName( res,"LG"));//will print definition of LG in french resource file

}

您的错误代码如何映射到资源?资源的名称是否与错误代码关联?尚未定义。我认为一个好方法是使用默认语言定义所有代码。通过这种方式,我可以尝试首先匹配该语言,然后查找可能的翻译。当我阅读帖子时,我发现一种可能的映射方式可以使用一个包含所有代码的专用字符串资源文件。然后加载并在内存中搜索匹配项。一旦我有了id,getString方法将完成剩下的工作。这可能会有帮助吗?例如,法语字符串数组的本地化版本就是另一组字符串。我无法将一个数组的项与另一个数组的项关联起来。