1

我在 REST 服务器端工作。

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

e.g. error_code    : PC_USER_007
     error_message : You are logged out!

客户端将查看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..

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

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

这与如何替换 Java 字符串中的一组标记正好相反?

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

4

4 回答 4

6

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

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

error_code: PC_USER_008
error_values: "42", "a value"

客户端以多种语言保存该 error_code 的模板,看起来像

"This is argument {1} and arg {2}" 
"Ceci est argument {1} et arg {2}"

ETC..

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

于 2013-03-21T06:13:43.147 回答
1

如果我是你,我会首先将错误代码从 HTTP 标头移动到响应内容中的结构(比如 json)。标头不是分层的,也没有结构。您最好将它们包含在带有适当状态代码的响应中。

至于本地化消息及其模板,我没有遇到任何返回错误响应但没有错误消息的 REST 服务。例如,看一下zohodjango(REST API)、S3。它们都返回代码和消息。

  1. 不返回消息的问题是您的客户永远不会立即知道问题所在。这使得调试更加困难。
  2. 客户端也无法访问您稍后在服务器代码中引入的新错误代码,这加强了#1。
  3. 弃用错误代码或更改其错误消息不再由您控制。

实现模板,但在服务器端进行。要求客户向您发送一个标识其区域设置的 ID。根据语言环境,可以更改错误消息。您的客户永远不必因为服务器端的更改而更新他们的代码,并且您将始终有正确的本地化消息显示给客户。

于 2013-03-27T05:52:32.537 回答
0

通常,如果您正在处理多语言应用程序,您应该使用 ID 来识别服务器和 GUI 中的文本,并且您应该在 error_message 字段中使用文本 ID。有一些框架使用英文文本作为 ID。

于 2013-03-22T11:58:49.290 回答
0

在响应标头中发送整个错误消息不是一个好习惯。您可以发送错误代码并为这些代码实施特定于语言环境的消息。

在 javascript 中请求成功后,使用回调方法跟踪失败响应代码。创建一个包以读取特定语言环境用户的不同属性文件并读取键值并显示正确的错误消息。

前任:

Properties file/ JS file
1. EnglishLabels.properties
2. MexicanLabels.properties
3. JapaneseLabels.properties

var bundle = read the specific property file and save the map (key : 0001 , value : Invalid Login)

在成功请求之后,使用回调方法显示特定于语言环境的错误消息。

问候普尼斯

于 2013-03-27T11:06:18.800 回答