首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无服务器后端(AWS)的国际化

无服务器后端(AWS)的国际化
EN

Stack Overflow用户
提问于 2018-04-26 16:54:30
回答 1查看 3K关注 0票数 0

我正在AWS上构建一个无服务器的node.js web应用程序(使用serverless框架),并试图在后端(API /Lambda/DynamoDB)上实现国际化。

对于前端(End),我使用redux来存储所选的语言,用react来切换多种语言。对于后端,实现国际化的最佳方式是什么?

以下是我能想到的两种方法,但肯定有更好的方法。

A.后端的转换(从路径参数获取语言)

代码语言:javascript
运行
复制
path: {language}/validate

validate.js

代码语言:javascript
运行
复制
export function main(event, context, callback) {
    const language = event.pathParameters.language;
    const data = JSON.parse(event.body);
    callback(null, validate(language, data));
}

这样,我需要将语言作为函数参数传递到任何地方,这是不可取的。

B.前端翻译(i18n,react intl)

后端hello.js响应

代码语言:javascript
运行
复制
{
    id: "samplePage.message.hello",
    defaultMessage: `Hello, ${name}`,
    values: { name }
}

前端hello.js

代码语言:javascript
运行
复制
<FormattedMessage {...response} />

ja.json (i18n翻译文件)

代码语言:javascript
运行
复制
{
    "samplePage.message.hello": "こんにちは、{name}。",
}

这样的话,一切看起来都很顺利,但我有遗漏什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-28 20:13:55

我们做的和你在B)...basically中建议的一样,我们在AWS上有我们的后端,并从dynamodb访问数据。

我们所有的翻译都发生在前面。唯一的区别是我们使用了i18next (更具体的detection i18Next,但是如果这或detection intl ->只是提供了更多的后端、缓存、语言检测、. https://www.i18next.com/)就没有什么区别了。

如果你想学习更多,或者看到它在行动中,结帐https://locize.com (或直接尝试在https://www.locize.io/ 14d免费试用),而应用程序目前只有英文版本,所有文本都是通过xhr加载并在运行时(i18n)上应用的。

如果对我们如何在locize.com使用无服务器服务感兴趣,请参阅我们去年演讲的幻灯片:https://blog.locize.com/2017-06-22-how-locize-leverages-serverless/

最后,但不是least...if,您最喜欢从您的ICU消息和验证,语法高亮和适当的复数转换和机器翻译,不破坏icu dsl在MT ->只是给我们的服务一个try...it提供14d免费试用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50048368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档