- Should error messages returned by the API be translated? Or should the
translation be left to JavaScript in the client?
I think it should be left to JavaScript in the client. The API is not a UI, so it is not intended to function as an internationalized interface. However, a JavaScript script that uses the API *is* part of a UI, and thus has the burden of internationalizing whatever it does. Additionally, I don't know much about our API clients, but adding in non-ASCII characters may or may not cause issues.
** In both cases, it would be nice to have a consistent relationship between error codes and the corresponding system message.
I agree. Maybe for each error message in the api we have a "api-$code" message that corresponds to a proper description of the error.
** If translation is done on the client, we need to pass any message parameters separately. ** The message key would have to somehow be derived or mapped from the error code.
Herein lies the biggest difficulty.
*--* *Tyler Romeo* Stevens Institute of Technology, Class of 2015 Major in Computer Science www.whizkidztech.com | tylerromeo@gmail.com
On Fri, Jan 25, 2013 at 8:01 AM, Daniel Kinzler daniel@brightbyte.dewrote:
Hi all!
Wikidata (technically, Wikibase) uses a lot of JS/API based editing, and we have several times hit upon the question of how to best report errors from the API. I'll try to break the issue down into several concrete questions. But first off, the status quo as I understand it:
- errors are reported using an error code (a string) and a free form error
message. The message is usually not internationalized, though sometimes it is.
- warnings are reported as free form text.
- Additional information can be added to both errors and warnings, but
there is no standard way to do this.
- Errors exposed by the API are often not generated but just passed
through by the API; Typically, a generic error code is used with the original error message (e.g. from an exception).
So, here are my questions:
- Should error messages returned by the API be translated? Or should the
translation be left to JavaScript in the client? ** In both cases, it would be nice to have a consistent relationship between error codes and the corresponding system message. ** If translation is done on the client, we need to pass any message parameters separately. ** The message key would have to somehow be derived or mapped from the error code.
- When using system messages to translate the error codes from the API,
these messages will often contain wikitext. How can we best avoid this? Wikitext is likely to be quite useless to the client - it would be better to return HTML; or pass all the message keys and parameters, and let the client generate the message.
- Status objects are often used to collect errors and warnings the occur
while trying to perform some task. It would be nice if the API would provide a standard way to put the contents of a Status object into the result (well, at least the errors and warnings).
Any thoughts on that?
-- daniel
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l