Ответ 1
Локализация является частью Content-Negotiation в Restful API.
Итак, мой предпочтительный способ сделать это через заголовки. HTTP предлагает стандартный способ определения желаемого языка. Посмотрите заголовок Accept-Language.
Я решаю, как организовать URL-адрес и поместить в него локаль. У меня есть два варианта:
С одной стороны example.com/en/page
выглядит лучше и компактнее, чем example.com/page?locale=en
.
С другой стороны у нас есть два URL example.com/en/page
и example.com/ru/page
для одного ресурса с двумя представлениями.
Конечно, в случае example.com/page?locale=en
у нас есть два URL-адреса для одного ресурса, но он немного больше RESTful по моему вкусу.
Какая лучшая практика? Что вы используете и почему?
Локализация является частью Content-Negotiation в Restful API.
Итак, мой предпочтительный способ сделать это через заголовки. HTTP предлагает стандартный способ определения желаемого языка. Посмотрите заголовок Accept-Language.
Из https://www.w3.org/International/info/qa-accept-lang-locales:
Первоначально заголовок HTTP-Accept-Language предназначался для указания языка пользователя. Однако, поскольку многие приложения должны знать язык пользователя, в обычной практике для определения этой информации использовался Accept-Language. Не рекомендуется использовать заголовок Accept-Language HTTP только для определения локали пользователя. Если вы используете исключительно Accept-Language, вы можете навязать пользователю набор вариантов не по своему вкусу.
Мои предпочтения:
Accept-Language
, если параметр запроса не
указанныйAccept-Language
не определенContent-Language
<some-root-tag xml:lang="en-US">
(см. http://www.opentag.com/xfaq_lang.htm)