Java:如何写i18n字符串更短

zho*_*shu 5 java internationalization

在Python/C++中,我通常使用_("string")来表示i18n字符串文本.

对于Java,我使用bundle.getString("string").显然,它比Python/C++更丑陋.

如何编写这样的代码更短?

Gor*_*vic 7

创建自己的方法:

public String _(String key){
        return bundle.getString(key);
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西.Underscore是Java中的有效方法名称.当然,如果您愿意,可以使用任何其他单个字符,l例如localize.

所以,现在你可以像在Python中一样调用它.

  • @zhongshu:不,你不必.您可以使用`import static`在每个类中单独导入该方法.然后你只能使用方法名,没有类名. (2认同)
  • @Russ:静态变量是每个类加载器的全局变量,而不是每个VM.如果您使用的是应用程序服务器,则所有Web应用程序都将为其自己的类分别设置类加载器. (2认同)