Интернационализация на серверном бэкэнде (AWS) - PullRequest
0 голосов
/ 26 апреля 2018

Я создаю веб-приложение без сервера 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}。",
}

Таким образом, похоже, что все работает без проблем, но я что-то упустил?

1 Ответ

0 голосов
/ 28 апреля 2018

Мы делаем то же самое, что вы предлагаете в B) ... в основном у нас есть наш бэкэнд на AWS lambda и доступ к данным из DynamodB.

Весь наш перевод происходит в интерфейсе. Разница лишь в том, что мы используем i18next (более конкретная реакция-i18next, но не имеет значения, если this или response-intl -> просто предлагает немного больше бэкэндов, кэширование, определение языка, ... https://www.i18next.com/).

Если вы хотите узнать больше или увидеть его в действии Оформить заказ https://locize.com (или попробуйте прямо на https://www.locize.io/ 14d бесплатная пробная версия), в то время как приложение в настоящее время доступно только на английском языке, все тексты приходят через загрузку через xhr и применяется во время выполнения (i18n).

Если вы заинтересованы в том, как мы используем serverless на locize.com, посмотрите следующие слайды из речи, с которой мы выступили в прошлом году: https://blog.locize.com/2017-06-22-how-locize-leverages-serverless/

И последнее, но не менее важное ... если вы хотите получить максимальную отдачу от своих сообщений и проверки ICU, выделения синтаксиса и правильного преобразования множественного числа и машинного перевода, не разрушая icu dsl во время MT -> просто попробуйте наш сервис. ..одоступна бесплатная пробная версия 14d.

...