我在我的代碼中使用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