Ruby中的领域特定语言和翻译

时间:2018-06-17 11:34:29

标签: ruby-on-rails ruby translation dsl i18n-gem

考虑在ruby中创建自己的特定于域的语言的一个很好的架构,我对翻译部分进行了一些讨论。假设我们遇到了事件问题:

event "We made a profit" do
   income > expenditure
end

event "We have some deficite" do
   income < expenditure
end

我喜欢使用事件描述“我们赚了钱”和“我们有一些不足”作为用户的输出。问题是描述仅用英语。它应该以不同的语言出现。我可以使用i18n宝石,但这看起来不适合我。

event "event.deficite" do
   income < expenditure
end

或类似:

event i18n.t('event.deficite') do
   income < expenditure
end

这不是一个非常好的解决方案,因为它不具有可读性。整个事件描述通过翻译而丢失,并在我的意见中破坏了“领域特定语言”的任务。什么是解决这个问题的好方法?

0 个答案:

没有答案