Android strings.xml最佳实践?

时间:2011-09-07 07:01:32

标签: android resources translation

我问自己几个问题,我想知道是否有最佳实践。

  1. 如何命名字符串?对我来说,它总是以混乱为终点。
  2. 如何保持翻译同步?是否有可以推荐的协作在线工具?
  3. 如何在strings.xml文件中订购字符串?按字母顺序排列?按活动分组? ...?
  4. 重用字符串怎么样?你会建议使用多个稍微不同的字符串或一个字符串,以某种方式适合多个上下文?

6 个答案:

答案 0 :(得分:8)

我还是新手,所以我一直在寻找一个示例项目。 Astrid在Github上是开源的,查看项目res目录对于像我这样的新手而言是开放的。

好东西。看看:

https://github.com/todoroo/astrid/tree/master/astrid/res/values

答案 1 :(得分:4)

好问题。我也在努力解决这个问题。我的命名方案是:

1)UI元素: 如果一个字符串仅对应于一个ui,我将其命名为控制元素和目的,以及它所使用的控制元素的哪个部分。例如:

button_helpText;
control : button, purpose: help, context: Text;

2)一般要素: 如果在UI上使用字符串,但我想在另一个上下文中使用它,我只需保留前缀并添加后缀来描述目的/上下文精确。

helpMessageHeading;
purpose: help; context: a Message (abstract, could be a dialog), context_of_dialog: Heading; (the heading of a help dialog)
helpMessageText;
purpose: help, context: a Message (abstract, could be a dialog), context_of_dialog: Text; (the text inside a help dialog)
helpExplanation;
purpose: help; context_of_help: Explanation (just a explanation of the help topic)

3)订购: 我主要根据他们的上下文来命令这些字符串,因为这是你通常搜索的内容。

<!-- buttons -->
...
<!-- dialogs -->
...
<!-- general -->
...
<!-- explanations -->
...

等等。所以我的列表通常在UI控件中分离,如果字符串没有绑定到它,则它的一般精确上下文。为什么我要使用精确的上下文?当你搜索一个字符串来描述你所做的事情时,关于这个字符串最独特的想法就是它的精确上下文,这就是应该首先弹出的内容。但是当您使用自动完成时,通常会搜索一般说明。我认为这种结构是一个很好的解决方案。

我对其他答案非常感兴趣。

答案 2 :(得分:3)

检查约定的最佳位置很可能是在Android SDK示例中。以下是您可以找到它们的方法 - http://developer.android.com/tools/samples/index.html

答案 3 :(得分:2)

  

如何保持翻译同步?是否有可以推荐的协作在线工具?

对我来说,最好的工具是http://www.translatekarate.com

它是免费和协作的。

答案 4 :(得分:1)

  

如何保持翻译同步?是否有协作的在线工具   你可以推荐吗?

目前我正在使用这个协作工具http://www.getlocalization.com/,如果不使用专业功能,这将使生活变得更加轻松和免费。

然后还有http://crowdin.net/这在我看来有点好,因为谷歌和bing提出翻译但是最便宜的版本需要花费9美元。

  

如何在strings.xml文件中订购字符串?按字母顺序排列?分组   按活动? ...?

到目前为止,我没有订购它们,因为我主要不会手动编辑我的xml。 有一个插件可以很容易地在eclipse中处理多个翻译:Sequoyah本地化编辑器

答案 5 :(得分:-1)

  

如何保持翻译同步?是否有可以推荐的协作在线工具?

我使用项目管理工具https://poeditor.com来翻译XML文件并使它们保持同步。