无服务器后端 (AWS) 的国际化
Internationalization on serverless backend (AWS)
我正在 AWS 上构建无服务器 node.js Web 应用程序(使用无服务器框架)并尝试在后端实现国际化 (API Gateway/Lambda/DynamoDB)。
对于前端(React),我用redux存储选择的语言,用react-intl切换多国语言。对于后端,实现国际化的最佳方式是什么?
这里有两种我能想到的方法,但一定有更好的。
一个。后台翻译(从路径参数获取语言)
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));
}
这样,我需要将语言作为函数参数传递到任何地方,这是不可取的。
乙。前端翻译 (i18n, react-intl)
后端hello.js响应
{
id: "samplePage.message.hello",
defaultMessage: `Hello, ${name}`,
values: { name }
}
前端hello.js
<FormattedMessage {...response} />
ja.json(i18n 的翻译文件)
{
"samplePage.message.hello": "こんにちは、{name}。",
}
这样看起来一切正常,没有任何问题,但我是否遗漏了什么?
我们按照您在 B) 中的建议做同样的事情...基本上我们在 AWS lambda 上有我们的后端并从 dynamodb 访问数据。
我们所有的翻译都发生在前端。我们使用 i18next 的唯一区别(更具体的 react-i18next 但如果这个或 react-intl 没有区别 -> 只是提供更多的后端、缓存、语言检测,...https://www.i18next.com/)。
如果您想了解更多信息或在操作结帐中查看 https://locize.com (or directly try it at https://www.locize.io/ 14 天免费试用)虽然该应用程序目前仅提供英文版本,但所有文本均通过 xhr 加载并在运行时应用(i18n ).
如果对 locize.com 我们如何使用无服务器感兴趣,请参阅我们去年发表的演讲中的以下幻灯片:https://blog.locize.com/2017-06-22-how-locize-leverages-serverless/
最后但并非最不重要的...如果您想通过在 MT 期间不破坏 icu dsl 来充分利用您的 ICU 消息和验证、语法突出显示以及适当的复数转换和机器翻译 -> 请给我们的服务一个试试...它附带 14 天免费试用。
我正在 AWS 上构建无服务器 node.js Web 应用程序(使用无服务器框架)并尝试在后端实现国际化 (API Gateway/Lambda/DynamoDB)。
对于前端(React),我用redux存储选择的语言,用react-intl切换多国语言。对于后端,实现国际化的最佳方式是什么?
这里有两种我能想到的方法,但一定有更好的。
一个。后台翻译(从路径参数获取语言)
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));
}
这样,我需要将语言作为函数参数传递到任何地方,这是不可取的。
乙。前端翻译 (i18n, react-intl)
后端hello.js响应
{
id: "samplePage.message.hello",
defaultMessage: `Hello, ${name}`,
values: { name }
}
前端hello.js
<FormattedMessage {...response} />
ja.json(i18n 的翻译文件)
{
"samplePage.message.hello": "こんにちは、{name}。",
}
这样看起来一切正常,没有任何问题,但我是否遗漏了什么?
我们按照您在 B) 中的建议做同样的事情...基本上我们在 AWS lambda 上有我们的后端并从 dynamodb 访问数据。
我们所有的翻译都发生在前端。我们使用 i18next 的唯一区别(更具体的 react-i18next 但如果这个或 react-intl 没有区别 -> 只是提供更多的后端、缓存、语言检测,...https://www.i18next.com/)。
如果您想了解更多信息或在操作结帐中查看 https://locize.com (or directly try it at https://www.locize.io/ 14 天免费试用)虽然该应用程序目前仅提供英文版本,但所有文本均通过 xhr 加载并在运行时应用(i18n ).
如果对 locize.com 我们如何使用无服务器感兴趣,请参阅我们去年发表的演讲中的以下幻灯片:https://blog.locize.com/2017-06-22-how-locize-leverages-serverless/
最后但并非最不重要的...如果您想通过在 MT 期间不破坏 icu dsl 来充分利用您的 ICU 消息和验证、语法突出显示以及适当的复数转换和机器翻译 -> 请给我们的服务一个试试...它附带 14 天免费试用。