如何在客户端处理动态错误字符串以进行国际化

Kan*_*mar 1 java templates frameworks

我正在研究REST服务器端.

我将在响应客户端时更新 error_codeerror_message在HTTP标头中.这一点很好,直到error_message是静态的.

e.g. error_code    : PC_USER_007
     error_message : You are logged out!
Run Code Online (Sandbox Code Playgroud)

客户方会看看error_code(PC_USER_007); 在相应的属性中,他们将进行本地化.所以现在如果用户属于中国,GUI将以中文显示相同的error_message.

如果是动态错误字符串,如下所示,

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..
Run Code Online (Sandbox Code Playgroud)

现在GUI方面我们如何将此错误消息转换为其他语言.

任何框架(struts,spring ......)已经支持这种本地化了吗?

这与如何替换Java String中的一组标记正好相反

服务器端我按照上面的链接; 现在我想要客户端的相反情况.

Bru*_*der 6

让服务器传递完整的error_message是不合适的.

通常,服务器传递error_code和一组错误值.例如

error_code: PC_USER_008
error_values: "42", "a value"
Run Code Online (Sandbox Code Playgroud)

客户端以多种语言保存该error_code的模板

"This is argument {1} and arg {2}" 
"Ceci est argument {1} et arg {2}"
Run Code Online (Sandbox Code Playgroud)

等等..

然后客户端使用接收的值执行占位符{1} ... {n}的简单字符串替换