0
我有一個應該翻譯的行數很多的表格。大多數值是整數,所以這些值不需要翻譯。用變換映射變量的最佳做法
但是,我的數據來自JSON結構,其中數據在鍵值對中正常存儲。例如: -
{
"age":24,
"hair-color":"black",
"weight":42,
"height":123,
// ...
}
到目前爲止,我有一個strings.xml中,看起來像這樣:
<resources>
<string name="meta_age">Alter</string>
<string name="meta_hair_color">Haarfarbe</string>
<string name="meta_weight">Gewicht</string>
<string name="meta_height">Körpergröße</string>
<!-- ... -->
</resources>
該數據與自定義ArrayAdapter的列表視圖visualisated。這工作正常,但我不知道什麼是映射鍵值對與其翻譯的最佳方式。
我現在這個代碼在這裏:
public static final int[] fields = new int[] {R.string.meta_age, R.string.meta_hair_color, R.string.meta_weight, R.string.meta_height, /* ... */;
對於構建UI字符串需要被映射到鍵到目前爲止,這是與該凌亂的代碼實現:
List<Integer> fieldIndex = new ArrayList<Integer>(fields.length);
for(int i : fields) {
fieldIndex.add(i);
}
translation = new HashMap<String, Integer>();
translation.put("age", fieldIndex.indexOf(R.string.meta_age));
translation.put("hair-color", fieldIndex.indexOf(R.string.meta_hair_color));
translation.put("weight", fieldIndex.indexOf(R.string.meta_weight));
translation.put("height", fieldIndex.indexOf(R.string.meta_height));
下一步是我現在知道json字段的目標索引,並將它們與字符串ID字段列表放在一起。但我認爲這個代碼不是很高效。我怎樣才能寫得更好?
那麼R.string的東西通常是Android的。我只是不確定我的映射是否有意義... – rekire
如果您在我們的翻譯資源文件中有一個關鍵字,那麼您可以一次性翻譯出您的翻譯版本嗎?例如。而不是使用meta_hair_color,像使用json一樣使用meta_hair-color?然後,您可以直接根據其名稱獲取翻譯字符串。沒有? – Remy
在轉換變量中不允許使用減號,並且json來自* external * API。該字段數組的另一個原因是我不想使用JSON字符串的順序。 – rekire