Android strings.xml最佳实践?

32

我自问了几个问题,想知道有没有最佳实践。

  1. 如何命名字符串?这对我来说总是很混乱。
  2. 如何保持翻译同步?你能推荐一些协作在线工具吗?
  3. 如何在 strings.xml 文件中排序字符串?按字母顺序?按活动分组?...?
  4. 重复使用字符串怎么办?你会建议使用多个略微不同的字符串还是一个能适应多种情境的字符串?

这是一个问题的很多问题。而且其中一些(大多数)是主观的/会引起讨论=> 根据[faq],这是离题的。 - Mat
6个回答

9

1
这种方法不是有点过于庞大了吗?如果采用模块化方法,所有字符串都必须驻留在它们自己的模块中...只是提供信息。 - Mr.P

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控件和如果字符串没有绑定到它,则是它的一般精确上下文。为什么我使用精确上下文?当您搜索字符串以描述您所做的内容时,该字符串的最独特想法是其精确上下文,因此应该首先弹出。但是当您使用自动完成时,通常会搜索一般描述。我认为这种结构是一个很好的解决方案。

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


4

2
如何保持翻译同步?你能推荐一些协作在线工具吗?
对我来说,最好的工具是http://www.translatekarate.com。它是免费和协作的。

1
如何保持翻译同步?您能推荐一些协作在线工具吗?
目前我正在使用这个协作工具http://www.getlocalization.com/,它使生活变得更加轻松,并且如果不使用专业功能,则是免费的。
然后还有https://crowdin.com/,在我看来它更好一些,因为它通过Google和Bing提供翻译,但最便宜的版本需要9美元。
如何对strings.xml文件中的字符串进行排序?按字母顺序?按Activity分组?...?
到目前为止,我没有对它们进行排序,因为我大多数情况下不手动编辑我的xml。有一个插件可以使在eclipse中处理多个翻译变得非常容易:Sequoyah localization Editor。

-1
如何保持翻译同步?有没有协作在线工具可以推荐?
我使用项目管理工具https://poeditor.com 来翻译XML文件并保持它们的同步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接