Я создаю веб-приложение без сервера node.js в AWS (с использованием Serverless Framework) и пытаюсь реализовать интернационализацию в бэкэнде (API Gateway / Lambda / DynamoDB).
Для front-end (React) я использую redux для хранения выбранного языка и response-intl для переключения нескольких языков. Для бэкэнда, как лучше всего реализовать интернационализацию?
Вот два способа, о которых я могу подумать, но должны быть и лучшие.
A. Перевести на внутренний интерфейс (Получить язык из параметра пути)
path: {language}/validate
validate.js
export function main(event, context, callback) {
const language = event.pathParameters.language;
const data = JSON.parse(event.body);
callback(null, validate(language, data));
}
Таким образом, мне нужно передать язык в качестве параметра функции везде, что нежелательно.
B. Перевести на интерфейс (i18n, реагировать-intl)
backend hello.js response
{
id: "samplePage.message.hello",
defaultMessage: `Hello, ${name}`,
values: { name }
}
frontend hello.js
<FormattedMessage {...response} />
ja.json (файл перевода для i18n)
{
"samplePage.message.hello": "こんにちは、{name}。",
}
Таким образом, похоже, что все работает без проблем, но я что-то упустил?