Java 如何在客户端处理动态错误字符串以实现国际化
我正在REST服务器端工作 在响应客户端时,我将更新HTTP头中的Java 如何在客户端处理动态错误字符串以实现国际化,java,templates,frameworks,Java,Templates,Frameworks,我正在REST服务器端工作 在响应客户端时,我将更新HTTP头中的error\u code和error\u消息。 在错误消息为静态之前,这是正常的。 e.g. error_code : PC_USER_007 error_message : You are logged out! 客户端将查看错误代码(PC\U用户\U 007);在相应的属性中,它们将进行本地化。 因此,如果用户属于中国,GUI将以中文向您显示相同的错误消息 如果是如下所示的动态错误字符串 e.g. error
error\u code
和error\u消息
。
在错误消息为静态之前,这是正常的。e.g. error_code : PC_USER_007
error_message : You are logged out!
客户端将查看错误代码(PC\U用户\U 007)
;在相应的属性中,它们将进行本地化。
因此,如果用户属于中国,GUI将以中文向您显示相同的错误消息
如果是如下所示的动态错误字符串
e.g. error_code : PC_USER_008
error_message : You have tried 2 attempts; only 1 attempts is remaining.
Here 2, 1 are dynamic values..
现在,我们如何将此错误消息转换为其他语言
是否有任何框架(struts、spring…)已经支持这种本地化
这与问题正好相反
服务器端我遵循了上面的链接;现在我想在客户端使用相反的情况。让服务器传递完整的错误消息不是很合适 通常,服务器会传递错误代码和一组错误值。e、 g
error_code: PC_USER_008
error_values: "42", "a value"
客户端用多种语言保存该错误代码的模板,如下所示
"This is argument {1} and arg {2}"
"Ceci est argument {1} et arg {2}"
等等
然后客户端用接收到的值执行占位符{1}…{n}的简单字符串替换,让服务器传递完整的错误消息不是很合适 通常,服务器会传递错误代码和一组错误值。e、 g
error_code: PC_USER_008
error_values: "42", "a value"
客户端用多种语言保存该错误代码的模板,如下所示
"This is argument {1} and arg {2}"
"Ceci est argument {1} et arg {2}"
等等
然后客户端用接收到的值执行占位符{1}…{n}的简单字符串替换。通常,如果您处理的是多语言应用程序,您应该在服务器和GUI中使用ID标识文本,并在错误消息字段中使用文本ID。有些框架使用英文文本作为ID。通常,如果您处理的是多语言应用程序,您应该在服务器和GUI中使用ID来标识文本,并在错误消息字段中使用文本ID。有些框架使用英文文本作为ID。如果我是您,我会首先将错误代码从HTTP头移动到响应内容的结构中(比如json)。标题没有层次结构,也没有结构。最好在响应中使用适当的状态代码包含它们 至于本地化消息及其模板,我没有遇到任何REST服务返回错误响应而不返回错误消息。例如,看一下(restapi)。它们都返回代码和消息
实现模板化,但在服务器端执行。要求客户机向您发送标识其区域设置的id。根据区域设置,可以更改错误消息。您的客户端永远不必由于服务器端的更改而更新其代码,并且您将始终向客户端显示正确的本地化消息。如果我是您,我会首先将错误代码从HTTP头移动到响应内容中的结构(如json)。标题没有层次结构,也没有结构。最好在响应中使用适当的状态代码包含它们 至于本地化消息及其模板,我没有遇到任何REST服务返回错误响应而不返回错误消息。例如,看一下(restapi)。它们都返回代码和消息
实现模板化,但在服务器端执行。要求客户机向您发送标识其区域设置的id。根据区域设置,可以更改错误消息。由于服务器端的更改,您的客户端永远不必更新其代码,您将始终向客户端显示正确的本地化消息。在响应头中发送整个错误消息不是一个好做法。您可以发送错误代码,并为这些代码实现特定于语言环境的消息 在javascript中,请求成功后,使用回调方法跟踪失败响应代码。创建一个bundle以读取特定区域设置用户的不同属性文件,读取键值并显示正确的错误消息 例: 在成功请求之后,使用回调方法显示特定于区域设置的错误消息 问候
Punith在响应头中发送整个错误消息不是一个好的做法。您可以发送错误代码,并为这些代码实现特定于语言环境的消息 在javascript中,请求成功后,使用回调方法跟踪失败响应代码。创建一个bundle以读取特定区域设置用户的不同属性文件,读取键值并显示正确的错误消息 例: 在成功请求之后,使用回调方法显示特定于区域设置的错误消息 问候
Punith您可以使用ANTLR并基于所有可能的“动态”错误消息编写某种语法。如果我没有弄错,错误信息总是用英语。然后,您只需要编写语法来捕获诸如“youhavestured”number尝试之类的内容;只剩下“number”尝试了。然后使用antlr,您可以在解析步骤之后访问这些数字并生成您的n