Android - 如何正确本地化内容?

时间:2014-03-18 00:38:22

标签: android localization

考虑一个获取用户详细信息的应用程序 - 姓名,性别,婚姻状况等。 并说,我需要该应用程序支持英语,西班牙语和普通话。

显示"男性" /"女性"在用户填写表单的所有不同语言中,通过不同语言的不同strings.xml文件来实现。

我将用英语将详细信息保存到SQLite数据库中。因此,如果用户使用西班牙语运行应用程序并选择" Masculino",它仍将被保存为"男性"到数据库。

现在,当用户想要查看他用西班牙语输入的详细信息时,如何阅读SQLite中的英文数据并将其翻译成西班牙语或普通话或任何其他语言?

2 个答案:

答案 0 :(得分:5)

我不会在db中存储这样的英文字符串。我将它存储为整数值,其中0表示男性,1表示女性。然后在显示时我会检查值,然后在资源中使用相应字符串的id,并从xml字符串文件中获取字符串。

答案 1 :(得分:1)

您还可以存储"男性"的字符串名称。而不是"男性"。例如,如果在strings.xml文件中声明

<string name="gender_male">Male</string>

然后将"gender_male"存储为数据库中的值,而不是"Male"。从数据库中检索时,请调用

String value = get from database;    
int valueResId = getResources().getIdentifier(value, "string", your package name);
String gender = getString(valueResId);