ROR:大型翻译字典的i18n最佳实践

4
  • 在国际化 Rails 应用程序时,组织/范围字典文件中的翻译的最佳实践方式是什么?
  • 在什么情况下应该使用变量的插值?
  • 每个短语都应该是一个条目吗?
  • 是否有任何参与 DHH 的 Tolk 的人可以解释一下 37signals 如何分解他们的字典文件?

使用 i18n gem 一个半月后,我们的 en.yml 文件变得庞大。使用作用域是否有任何好处?我们希望字典更容易翻译,保持字典DRY,但要考虑不同的时态,并仍然利用 "您确定要删除此对象吗?""您确定要将其标记为已完成吗?",如 "您确定要{{verb}}此{{noun}}吗?"


1
我重新命名并重新格式化了,希望你不介意。 - Adriano Varoli Piazza
1
我完全不知道!非常感谢。我仍然是一个Overflow新手。 - davidahines
2个回答

3

我们在组织中完全按照Rails建议的默认目录结构进行了翻译。

我们有自己的语言环境,然后为每个视图和模型创建了翻译,这样就可以完美地工作了。

例如,在HomeController#show中,我们使用:

t('.title')

它会在 views/home/{locale}.yml 中查找相关内容。

{locale}:
  show:
    title:

它也可以很好地与部分视图一起使用。 与上面相同的示例,但在“最新”的部分视图中将是:
{locale}:
  latest:
    title:

不确定这是否完全符合您的需求,但希望它能有所帮助。


-1

我在一年前也遇到了同样的问题,因此我建立了t_t gem。它可以显著减少翻译文件中的重复内容。更多细节请查看cheatsheet - # Actions 部分将帮助您处理“您确定要{{verb}}这个{{noun}}吗?”的问题。

更新:

一个示例Gist


如果你要发布一个“使用我的库”答案,你的答案应该解释如何使用你的库,而不仅仅是一个链接。 - Jeffrey Bosboom
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅链接的答案可能会失效。- 来自审查 - Jeffrey Bosboom
我创建了一个Gist,展示了这个库如何处理这种情况 https://gist.github.com/jalkoby/7a29b2dfb325db7ff052 - jalkoby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接