我已经通过为各种欧洲语言/方言添加正确的资源文件来本地化我的应用程序。
我的项目中有所需的文件夹:./ res / com / demo / localization
它包含所需的文件,例如Demo.rrh,Demo.rrc,Demo_de.rrc等。
我想添加对2种中文方言的支持,我将翻译放在Excel文件中。在iPhone上,代码 zh_TW &的 zh_CM 即可。遵循德语模式,我创建了2个额外的文件,名为Demo_zh_TW.rrc& Demo_zh_CN.rrc。
我使用Eclipse的文本编辑器打开文件Demo_zh_CN.rrc,并使用普通资源文件格式粘贴到中文翻译中:
START_LOCATION#0="开始位置";
当我尝试保存文件时,我得到了关于Cp1252字符编码的Eclipse错误:
保存无法完成。
原因: 某些字符无法使用“Cp1252”字符编码进行映射。 更改编码或删除不是的字符 由“Cp1252”字符编码支持。
Eclipse编辑器似乎会接受中文字符,但资源工具希望这些字符必须作为Java Unicode / u编码保存在资源文件中。
如何在不为每个字符串中手动复制n个粘贴的情况下为这两个区域添加语言支持?
是否有一个工具可以用于Java Unicode / u对Excel中的字符串进行编码,这样它们就可以保存在代码页1252拉丁字符中了?
答案 0 :(得分:1)
我不知道有任何可用的工具来处理BlackBerry特有的本地化风格。
这是我用来转换我用于BlackBerry的UTF-8字符串的Java-SE代码片段:
private static String unicodeEscape(String value, CharsetEncoder encoder) {
StringBuilder sb = new StringBuilder();
for(char c : value.toCharArray()) {
if(encoder.canEncode(c)) {
sb.append(c);
} else {
sb.append("\\u");
sb.append(hex4(c));
}
}
return sb.toString();
}
private static String hex4(char c) {
String ret = Integer.toHexString(c);
while(ret.length() < 4) {
ret = "0" + ret;
}
return ret;
}
使用带有Charset.forName("ISO-8859-1").newEncoder()
答案 1 :(得分:0)
我建议您查看Blackberry Hindi and Gujarati text display
您需要使用资源编辑器以正确的编码制作这些文件。 Eclipse将自动转义字符。
答案 2 :(得分:-1)
这是资源文件编码的问题。 1252 Code Page仅包含拉丁字符。
我从未使用过Eclipse,但是应该在某处指定文件的编码,如果可能的话,应该将文件的默认编码设置为UTF-8。这将处理您的中文字符。
您还可以使用Notepad++或EMEditor等良好的编辑器来设置文件的编码。
有关如何将Eclipse配置为默认使用UTF-8的信息,请参阅here。