Blackberry 黑莓-中文语言支持

Blackberry 黑莓-中文语言支持,blackberry,localization,cjk,Blackberry,Localization,Cjk,我通过为各种欧洲语言/方言添加正确的资源文件来本地化我的应用程序 我的项目中有所需的文件夹:./res/com/demo/localization 它包含所需的文件,例如Demo.rrh、Demo.rrc、Demo_de.rrc等 我想增加对2种汉语方言的支持,我在Excel文件中有翻译。在iPhone上,它们由代码zh_TW和zh_CM引用。按照德语的模式,我创建了两个额外的文件,名为Demo_zh_TW.rrc和Demo_zh_CN.rrc 我使用Eclipse的文本编辑器打开了Demo_z

我通过为各种欧洲语言/方言添加正确的资源文件来本地化我的应用程序

我的项目中有所需的文件夹:./res/com/demo/localization

它包含所需的文件,例如Demo.rrh、Demo.rrc、Demo_de.rrc等

我想增加对2种汉语方言的支持,我在Excel文件中有翻译。在iPhone上,它们由代码zh_TWzh_CM引用。按照德语的模式,我创建了两个额外的文件,名为Demo_zh_TW.rrc和Demo_zh_CN.rrc

我使用Eclipse的文本编辑器打开了Demo_zh_CN.rrc文件,并使用正常的资源文件格式粘贴到中文翻译行中:

  • START_位置#0=”开始位置";
当我试图保存文件时,我得到了Eclipse关于Cp1252字符编码的错误:

无法完成保存

原因: 某些字符无法使用“Cp1252”字符编码进行映射。 更改编码或删除不正确的字符 由“Cp1252”字符编码支持

Eclipse编辑器似乎会接受中文字符,但资源工具希望这些字符必须作为Java Unicode/u编码保存在资源文件中


如何为这两个区域添加语言支持,而不在每个字符串中手动复制粘贴

是否有一个工具可以用来对Excel中的字符串进行Java Unicode/u编码,这样它们就可以只保存在代码页1252拉丁字符中?

我建议您查看


您需要使用资源编辑器使这些文件具有正确的编码。Eclipse将自动转义字符。

这是您的资源文件的编码问题。仅包含拉丁字符

我从来没有使用过Eclipse,但是应该在某个地方指定文件的编码,如果可能的话,应该将文件的默认编码设置为UTF-8。这将处理您的中文字符

您还可以使用一个好的编辑器(如或)来设置文件的编码


请参阅,了解如何将Eclipse配置为默认使用UTF-8。

我不知道有任何现成的工具可用于处理BlackBerry特有的本地化风格

下面是一段Java SE代码片段,我使用它转换用于BlackBerry的UTF-8字符串:

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;
}
私有静态字符串UnicodeScape(字符串值,CharsetEncoder){
StringBuilder sb=新的StringBuilder();
for(char c:value.toCharArray()){
if(编码器canEncode(c)){
sb.附加(c);
}否则{
某人加上“\\u”);
sb.append(hex4(c));
}
}
使某人返回字符串();
}
私有静态字符串hex4(字符c){
String ret=Integer.tohextstring(c);
while(返回长度()<4){
ret=“0”+ret;
}
返回ret;
}

使用带有
Charset.forName(“ISO-8859-1”).newEncoder()的8859-1编码器调用UnicodeScape

thx,但这似乎不是问题所在。我将资源文件更改为UTF-8,我看到它可以保存中文字符。但是,黑莓语言资源工具似乎实际上不读取中文。当我手动将它们复制到编辑器中时,它会自动/u转义所有字符(由@Sheepdogsheep提出的建议).UTF-8通常是正确的解决方案,但在Windows上构建时,无法将BlackBerry工具配置为使用UTF-8。不能用cp1252表示的字符可以用“java unicode转义”表示。我看到这迫使编辑器使用/u编码保存字符,但查看时,它们会以中文字符显示这很好,但是手动复制所有字符串的过程并不理想。