我有一个大型 Rails 应用程序,它使用定制的 CMS,将某些页面部分存储在数据库中。这个应用程序还有一个 translate(string) 函数,可以在另一个 DB 表中查找字符串 || 如果找不到,请谷歌翻译 API。
现在这个设置效果很好,除了一个小方面——当切换到另一种语言时,静态内容也必须被翻译,因此我们只需将内容克隆到不同的行中。
我想做的是实现某种要在模板中使用的标签,并具有与普通翻译调整静态模板中的字符串相同的助手。我会让用户输入诸如 [translate[mary had a little lamb]] 之类的标签,当页面呈现时,助手会启动并从数据库或谷歌翻译 API 中提取翻译。助手已经很好地工作了,使用 memcache、CRUD 管理页面来管理字符串等等。
所以基本上:
<div class="some-random-class">
<p>This is some random text that won't be translated</p>
<p>And the following piece of text will be translated using the helper: [translate[mary had a little lamb]]</p>
</div>
有没有(安全的)方法来实现这一点?将不胜感激任何指针。我们已经有数百个页面,并且对于在此应用程序上运行的每个站点将它们克隆 15 次将是一场噩梦。
稍后编辑:内容在 Q 标题中称为动态,因为它来自数据库。然而,对于最终用户来说,它是静态 HTML,到处都有一些文本。抱歉,如果这引起任何混乱。