我在我的代码中使用getString(R.string.xxxx, "Test", "Test2")
,并得到错误“格式字符串xxxx不是有效的格式字符串...”!无效的格式字符串 - 信息哪种语言是错误的
到目前为止好,但我怎么能看到哪种语言是错误的?
我有30多个语言并不想每次手动检查每个文件。
有什么方法可以找到错误的语言文件/文件?
我在我的代码中使用getString(R.string.xxxx, "Test", "Test2")
,并得到错误“格式字符串xxxx不是有效的格式字符串...”!无效的格式字符串 - 信息哪种语言是错误的
到目前为止好,但我怎么能看到哪种语言是错误的?
我有30多个语言并不想每次手动检查每个文件。
有什么方法可以找到错误的语言文件/文件?
试试这个代码:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Resources r = getResources();
Configuration c = r.getConfiguration();
Locale[] loc = Locale.getAvailableLocales();
for (int i = 0; i < loc.length; i++) {
c.locale = loc[i];
Resources res = new Resources(getAssets(), metrics, c);
String s1 = res.getString(R.string.app_name);
Log.d("LOCALE",loc[i].getDisplayCountry()+" : "+ s1 );
}
在Android Studio中:
右键单击strings.xml档案,并选择打开翻译编辑器。
是的,这是一个解决方法,以查看列表中的所有资源。是否没有本机方式在Android Studio内部看到这是错误的? – chrisonline
当然,我知道翻译编辑器,但我也必须自己检查每一种语言哪一种是错误的。我的意思是,如果有快捷方式或记录LINT发现错误的语言。 – chrisonline
您使用的是编号参数风格:'%1 $ s','%2 $ D'?或者只是'%s'?因为这可能是原因。如果是这样的话,那么你可能需要更新所有的语言。 –
我使用%1 $ s和%2 $ s!我已经用其中一种语言找到了问题,但我总是需要打开每个语言文件并手动检查语法。林特似乎知道这个问题,所以它知道错误的翻译文件,但它不显示它:-( – chrisonline