【问题标题】:Is there a common naming convention for variables containing string formats?包含字符串格式的变量是否有通用命名约定?
【发布时间】:2014-10-14 00:00:00
【问题描述】:

我正在使用不同的变量替换创建大量错误/警告消息。例如

ERR_MISSING_FIELD = "Field not found";
ERR_INVALID_VALUE_S = "Invalid value: %s";
ERR_TOO_MANY_OBJECTS_OF_TYPE_DS = "You may not add more than %d %s objects";

我打算使用上面显示的约定 - 在变量名中附加替换。我不想重新发明轮子,所以如果有人指出任何现有的约定(Java、C#、资源文件等),我将不胜感激


更新虽然我现在使用变量来存储消息,但在 .properties 或其他资源文件中命名资源时,同样的问题也适用。

【问题讨论】:

  • 将邮件移动到properties 文件中,以便您可以在需要时轻松更改它,也有助于国际化。

标签: java string variables formatting naming-conventions


【解决方案1】:

我工作的大多数地方都有一个属性文件。 该文件的键/值如下所示:

error.missing.field = "未找到字段"

error.invalid.value = "无效值:%s"

正如詹姆斯的评论所指出的,它也有助于国际化: 您只需添加语言:

error.missing.field.en = "未找到字段" 或 error.missing.field.fr = "未找到字段"(我不懂法语,抱歉。)

我不知道任何官方惯例,但那些似乎是最常见的做法。

如果你有字符串格式,我认为没有什么不同。

【讨论】:

  • 呃,将字符串本地化以使用单独的资源包的正确方法。像这样修改属性名称是把事情搞砸的好方法......
  • 你说得对,我就是这个意思。我在默认属性文件中使用了“error.missing.field”。在每个语言文件中,我都使用了“error.missing.field.fr”之类的东西。
  • 我反对的是属性名称的.fr 后缀。这意味着除了加载正确的资源包之外,您还必须重复编写诸如getString("buttons.cancel" + localeSuffix)之类的凌乱样板代码,而不仅仅是getString("buttons.cancel")
  • 但是如果您的服务器向不同的客户端发送消息怎么办?每个客户端都有自己的语言环境,因此您需要能够使用所有语言环境,同时仍能区分它们。文件分开主要是为了便于维护。
猜你喜欢
  • 2012-05-07
  • 1970-01-01
  • 2010-11-22
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 2012-01-11
相关资源
最近更新 更多