Internationalization of api error messages on front end or back end?

后端 未结 2 585
既然无缘
既然无缘 2021-02-04 05:52

My team is currently working on a web project where the front end uses json api provided by the back end. The technology that we use is Spring Boot and AngularJS. The api has th

2条回答
  •  天命终不由人
    2021-02-04 06:17

    I would do it by localizing everything on the frontend. Backend would send ids which client apps then translate to localized text.

    Benefits:

    • single source of translation for everything - buttons, tooltips etc and the error messages
    • formatting support - you might need to make some parts of the message bold/clickable/etc which needs to be done on the frontend
    • client-only validation - error messages for client side validation should be the same as the server side ones for the same error (with backend localization you might end up duplicating some translations)
    • language agnostic testing is possible
    • language agnostic backend is possible - no need for locale on the backend just for the sake of translation
    • in sync with the general recommendation of localizing as close to the client as possible
    • removes the incentive of doing more backend translations in future

    Drawbacks:

    • translation for new errors is not possible. If an error was defined on the backend after the client apps had been bundled, clients would need to display the generic message (but if necessary can display the new error id).
    • more complex bundling

    To support multiple client apps you might need resx transformation during bundling step in your build. It will create resource files in the format required by the client so you can keep a single source of translations

提交回复
热议问题