国际化 java 网络服务错误消息
internationalization java web service error messages
对于 Java 其余 Web 服务,处理错误消息的国际化和本地化的最佳方式是什么?
我没有 jsp 页或任何 UI。我有网络服务,我必须根据我在请求中获得的区域设置 return 错误代码和错误消息。
我已经检查了 jErr 框架,但找不到任何其他框架可以做到这一点。有没有其他选择。
请帮助我找到最好的方法。
我检查了这个 post How to externalize error messages 这与我的问题非常相似,但我没有任何客户端编码。所以我真的怀疑我是否可以使用资源包
您可以这样使用 ResourceBundle
:
Locale locale = new Locale("fr", "CA");
ResourceBundle errors = ResourceBundle.getBundle("errors", locale);
System.out.println(errors.getString("user.notFound"));
首先您创建一个 Locale
实例(您说您在请求中获得了语言环境),然后将它与要加载的资源包的名称一起传递给 ResourceBundle.getBundle()
方法。
参考:
ResourceBundle 不限于在客户端代码中使用。无论在何处使用,它都是通用抽象。
您可以有多个属性文件
1. ApplicationMessages.properties
2. ApplicationMessages_fr_FR.properties(法语)
在您的错误解决程序逻辑中,您可以这样做
ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages",The locale you get from request);
String errorMsg = bundle.getString("502");
随心所欲地使用此错误消息。在response或者log等中设置
对于 Java 其余 Web 服务,处理错误消息的国际化和本地化的最佳方式是什么? 我没有 jsp 页或任何 UI。我有网络服务,我必须根据我在请求中获得的区域设置 return 错误代码和错误消息。
我已经检查了 jErr 框架,但找不到任何其他框架可以做到这一点。有没有其他选择。
请帮助我找到最好的方法。
我检查了这个 post How to externalize error messages 这与我的问题非常相似,但我没有任何客户端编码。所以我真的怀疑我是否可以使用资源包
您可以这样使用 ResourceBundle
:
Locale locale = new Locale("fr", "CA");
ResourceBundle errors = ResourceBundle.getBundle("errors", locale);
System.out.println(errors.getString("user.notFound"));
首先您创建一个 Locale
实例(您说您在请求中获得了语言环境),然后将它与要加载的资源包的名称一起传递给 ResourceBundle.getBundle()
方法。
参考:
ResourceBundle 不限于在客户端代码中使用。无论在何处使用,它都是通用抽象。
您可以有多个属性文件 1. ApplicationMessages.properties 2. ApplicationMessages_fr_FR.properties(法语)
在您的错误解决程序逻辑中,您可以这样做
ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages",The locale you get from request);
String errorMsg = bundle.getString("502");
随心所欲地使用此错误消息。在response或者log等中设置