【发布时间】:2010-10-05 12:59:45
【问题描述】:
目前正在将 iPhone 应用程序移植到 Android。我遇到了一个我无法克服的问题。
在 iPhone 上,翻译您的文本是微不足道的。将您的所有字符串/文本放入 Localizable.strings 中,格式如下: "要翻译的句子" = "翻译的句子"
原始字符串可以包含任何类型的任何字符。
尝试在 Android 上重现类似的内容,在 strings.xml 中我添加了所有键,例如: 句子翻译
然后我希望做类似的事情:int resID = getResources().getIdentifier(tmp, "strings", "com.name.app_name");
其中 tmp 包含字符串。
获得 resID 后,我可以使用 findresourcebyId 获得翻译后的字符串。
不幸的是,发现这并不容易。字符串名称不能包含空格、不能以数字开头等。
Eclipse 没有向我显示任何内容,但在尝试运行代码时,我只是得到一个“您的项目包含错误。请在运行您的应用程序之前修复它们”,仅此而已。在错误日志等中看不到任何内容。
那么,Android 上资源名称的限制是什么。或者有没有办法绕过它并轻松地将一个字符串替换为另一个字符串。我想保留我在 iPhone 上使用的原始文本字典,以保持简单,不会引入任何不必要的错误。
谢谢
【问题讨论】:
标签: java android xml internationalization