AngularJS:将本地化的用户输入数据存储在翻译 json 文件或数据库中

标签 angularjs database architecture localization

我有一个与本地化相关的架构问题。我关心的是存储和管理本地化用户数据的最佳方法是什么。让我解释: 我有一个带有 mysql 数据库的 AngularJS webapp。对于文本翻译,我们对文件使用 Angular 翻译。对于标签、静态文本等,效果很好。

另一方面,用户可以创建项目(即出租房屋)并为其填写标题和描述。他还能够编辑该信息。这些信息通过表格收集并存储在数据库中。

我们想为这些用户输入数据提供翻译,考虑到这种情况,我看到了两种方法:

  1. 用户在数据库中以他的语言存储数据。我们将翻译存储在数据库(翻译表...)中,并从那里提供翻译。
  2. 用户在数据库中以他的语言存储数据。我们将翻译存储在 locale.json 文件中,并在数据库中创建一个 key 以获取这些翻译(angular-translate)。

在这两种情况下,我们都需要翻译用户是创建还是更新标题或描述。但看起来如果你将它存储在数据库中,至少你已经有了一个默认翻译。如果将其存储在 json 文件中,则将默认翻译数据保存在两个位置。

从维护的 Angular 来看,使用翻译文件乍一看有点复杂。此外,每次添加或更新用户输入文本时都需要考虑部署。

但是,从性能的 Angular 来看,翻译文件可能是更好的方法。当用户更改语言时,您可能至少将一个查询保存到数据库。

从架构的 Angular 来看,我会说用户数据应该存储在数据库中。

你怎么看?

最佳答案

始终存储用户输入。

仅当您始终需要时才将翻译存储在数据库中。 如果您很少需要这样做,请为用户提供一个“Transalation”按钮。

做更便宜的事。如果您只有千分之一的另一种语言输入并且很少访问它,那么浪费宝贵的数据库空间是没有意义的,让它按需即时完成。

还有你怎么知道它需要翻译?有些人会说两种语言,并且在某些情况下,外国游客正在(努力)使用另一种语言设置的设备。

观察:。 你知道自动翻译是垃圾吗?那么你是如何翻译的?

关于AngularJS:将本地化的用户输入数据存储在翻译 json 文件或数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683599/

相关文章:

angularjs - 如何使用 Angular js 构建简单的 $http post 测试脚本

css - 使用 Angular Material 将子 md-card 与父中心对齐?

.net - 仅使用 .dll 引用通过 .Net 连接到 IBM DB2

php - 使用 MySQL 过滤数字

database - 文本冒险的游戏设计和架构建议

java - 如何在 asp.net 响应中包含一个 java 页面?

c - 子进程执行时,OS把argv和argc存放在哪里?

javascript - 使用 angular-ui-bootstrap 动态创建 ng-templates 以显示 popover 内容

database - 使用 PostgreSQL 在插入时为行生成唯一 ID

angularjs - Angular 2(Ionic 2)在显示页面时调用页面中的函数