翻译数据库内文本的最佳方法是什么

2024-04-27

我们这里有问题。

我们需要将网站翻译成多种语言。 我们已经使用 gettext 来翻译静态内容。但我们必须将一些文本内容翻译成多种语言。

ui不是问题。

我们找到了两种翻译文本的方法。 1. 在我们的文本输入中使用 JSON 为什么这个解决方案不好。每个文本输入都需要更大,因为我们无法猜测属性的实际大小。

  1. 使用保留对原始模型的引用并翻译每个字段的翻译表。它仍然需要大字段,因为我们无法通过记录定义字段大小。

  2. 最后,我提出的最佳解决方案是创建一个转换表。该表将保留其他表的外键。对于每个翻译,我们都会复制需要翻译的记录。翻译表内部有4个字段,model_name(primary)、reference_id(primary)、translated_id(primary)、locale(primary)。该解决方案使得同一模型不可能以同一种语言进行多次翻译。

  3. 最后但并非最不重要的一点是,我们可以使用像某人提议的东西......数据库 gettext。我们有一个包含字符串且仅包含字符串(键、文本、区域设置)的表,因此我们可以搜索模型,即与模型中使用的字符串相同的字符串,然后使用我们找到的字符串代替。

我的观点是,所有这些解决方案都是 hack,第 4 个解决方案可能是看起来更好的一个。

由于我没有找到任何好的文档,我真的很想让这个问题脱颖而出。


这是我们处理多种语言的方法(我们也有一些专家研究了这个解决方案!)。

  • 我们在数据库中有一个文本表(textid、key、nl、uk、de、fr)
  • 我们有文本表的外键(例如来自productnameid)
  • html 页面中需要翻译的静态文本用哈希值包围:##name##
  • 在 html 内容从服务器发送到客户端之前,将解析 htmlstream 以在哈希值之间转换内容。
  • 翻译后的文本存储在缓存中,这使得该解决方案灵活且快速

它对我们有用,我们建立的网站每小时浏览量超过 10 万次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

翻译数据库内文本的最佳方法是什么 的相关文章

  • 每次使用 COUNT() 函数,还是存储该值并将其加一?

    我有一个带有用户 投票 表和 用户 表的数据库 我认为数据库会在短时间内变得相当大 所以我想使用最有效的方法 我想我可以每次使用 投票 表中的 WHERE 语句来 COUNT 投票数 或者我可以将分数存储在 用户 表中 每次投票时将其增加
  • ORA-02289: 序列不存在,hibernbate 中出错

    ORA 02289 序列不存在 hibernbate 中出错 在 Oracle 中 您无法自动生成值 您应该创建一个序列 我们称之为 VEHICLE SEQ 然后你应该把这个注释放在你的 id 上 GeneratedValue strate
  • 自定义错误消息在 ASP.NET MVC 4 中未翻译

    我想翻译验证消息 字段日期必须是日期 我已将以下键添加到 Global asax 的 Application Start 中 ClientDataTypeModelValidatorProvider ResourceClassKey Mod
  • Erlang 更好地支持哪种数据库(SQL)?

    你建议我在 Erlang 中使用什么 MySQL 还是 Postgres 哪个数据库有更好 更成熟 更稳定 更快 的 Erlang 驱动程序 The Erlang ODBC 接口 http erlang org doc apps odbc
  • 如何通过csv文件仅更新sql表的一列

    我有一个 csv 文件包含一些数据 在我的 Sql 数据库中 我有一个具有多个列名的表 现在我只想通过 csv 文件更新一列 谢谢 你可以这样尝试 Import the csv file to a temp table Update you
  • Apple Watch 基础本地化显示错误的默认语言

    我有一个应用程序本地化为三种语言 简体中文 法语和捷克语 并以英语作为开发语言 虽然本地化在 iPhone 上完美运行 但 Apple Watch 存在问题 如果用户将 Watch 语言设置为英语 法语 中文 捷克语以外的任何其他语言 则内
  • 如何应对本地化?我应该遵循一个标准吗?

    我正在尝试创建一组类来处理本地化 主要是货币部分 但也包括语言 我可以想象其中的逻辑 但我不知道不同的语言和货币使用什么名称 我看到有很多 ISO 标准 我应该选择哪一个 不管怎样 这是我想到的逻辑 以防你也能帮忙解决这个问题 我会有一个
  • SQLite3 数据库中的派生字段

    各位晚上好 今天想问一个关于SQLite3中的派生字段 也称为计算字段 的问题 利用存储在我的数据库中的两个值 重量 和 距离 我知道可以利用它们来执行计算 以利用需要这两个值的公式返回我想要的值 但是我想知道是否有一种方法可以通过 SQL
  • 用户反馈系统的正确数据库模型(一个有趣的案例)

    我正在使用 PHP 和 Yii Framework 开发一个应用程序 我一直在考虑最适合给定功能的数据库结构 这就是我的想法 但我并不是 100 肯定应该这样做 因此我决定询问社区 应用程序说明 注册用户可以参加活动 每个事件都可以有一个
  • 将文件保存为 MYSQL 数据库中的 blob 或文件路径

    我知道这些问题是常见问题之一 但我需要您针对具体案例提供帮助 我正在开发一个应用程序 其中一些用户可以添加订单 一些用户可以执行这些订单 这些订单非常具体 因此只有有限数量的用户可以添加它们 然后 为每个订单生成三个文档 每个文档的大小不超
  • SQLite 列错误:表 XXX 没有名为 YYY 的列

    我查看了以下内容 但没有发现任何与我的问题相符的内容 据我所知 android database sqlite SQLiteException 表 X 没有名为 Y 的列 编译时 INSERT INTO https stackoverflo
  • Phonegap:WebSql 还是 SqLite?

    我使用phonegap的时间很短 并且我对其中的存储概念遇到了一些麻烦 因此 文档指出您可以打开这个数据库 它是一个 SQLite 实现 window openDatabase 返回一个新的数据库对象 此方法将创建一个新的 SQL Lite
  • 可能的 PDOException 错误(MySQL 5)?

    因此 我正在为我的网络应用程序设置一个安装程序 并具有数据库凭据的输入字段 我的验证过程的一部分包括测试数据库连接 使用 PHP 的 PDO 库 如果连接失败 我希望能够区分错误的密码 错误的地址 不存在的数据库名称等 以便我可以引用表单上
  • 使用mysqldump只转储数据,不转储任何表信息

    我正在寻找转储 mysql 数据库中所有数据的语法 我不需要任何表格信息 mysqldump no create info 您也可以使用 skip triggers 如果您使用触发器 no create db 如果您正在使用 databas
  • 通过php将MYSQL数据导出到Excel/CSV

    我想通过 php 将 MYSQL 数据导出到 Excel CSV 这样我以后就可以使用我的数据库 或者有人可以使用并理解它 要使用适合 EXCEL 的语法创建 CSV 文件 您可以使用基本 SQL SELECT FROM mytable I
  • 在自动触发的默认侦听器之前触发 Hibernate 自定义事件侦听器

    我创建了一个自定义 Hibernate 事件监听器 扩展了 org hibernate event PreInsertEventListener 自定义侦听器会重写 onPreInsert 方法 并在使用 DAO 将 联系人 实体保存到数据
  • SQLite 和共享首选项的优缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 SQLite 数据库和共享首选项之间存储信息的良好机制是什么 为什么要使用共享偏好设置 为什么使用sqlite 我试图找出它们之间的区别 以
  • 获取ADO.NET中的参数前缀

    我想使用列名作为参数基于列列表生成多个 SQL 语句 Edit C var columns new string COL1 COL2 var tableName TABLE 1 var prefix TODO get this from t
  • 什么是“标量”查询?

    我正在使用 LLBLGEN 其中有一种方法可以将查询作为scalar query 谷歌搜索给了我一个定义scalar sub query 它们一样吗 标量查询是返回由一列组成的一行的查询
  • 单击按钮本地化应用程序

    我在我的项目 mainMaster 页面中找到了 imageButtons

随机推荐