gpt4 book ai didi

ruby-on-rails - 使用 rails-i18n 进行反向翻译

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:39 24 4
gpt4 key购买 nike

我一直很高兴地使用内置的 rails i18n支持将字符串翻译成不同的语言,效果很好。最近我需要一些超出此 gem 默认行为的东西。

由于找不到更好的词,我将其称为“inverse translation”。基本上我的想法是我有某种语言的一些字符串,我希望能够调用另一个语言环境的方法,并取回翻译成该语言环境的字符串如果该语言环境中存在映射字符串。

例如,假设我在 config/locales/en.yml

en:
hello: Hello World!

config/locales/ja.yml 中:

ja:
hello: Konnichi wa!

然后当我在英语语言环境中调用此方法 l2l_translate(“语言环境到语言环境翻译”)时,将字符串和语言环境作为参数,我得到日语翻译:

I18n.locale = :en
l2l_translate("Hello World!", :ja) #=> "Konnichi wa!"

此外,这更棘手,我希望能够反向匹配内插字符串。所以说我有:

config/locales/en.yml

en:
minutes: "%d minutes"

config/locales/ja.yml

ja:
minutes: "%d分"

然后我应该能够像这样从英语翻译成日语:

l2l_translate("5 minutes", :ja) #=> "5分"

所以基本上字符串应该与英语翻译字符串的正则表达式匹配,并且“5”被提取并作为参数“%d”发送给日语翻译。

显然这里存在潜在问题,如果:1) 没有匹配项,或 2) 有多个匹配项。这些可以通过引发异常来处理,例如,或者在前一种情况下返回 nil 而在后一种情况下返回一系列翻译。无论如何,这些都是次要问题。

我的基本问题是:是否存在这样的事情?如果没有,是否有人对如何开发它有任何建议(比如作为 gem)?

我特别想到的应用程序是日语服务的 API 包装器。我希望能够用日语指定可以匹配并翻译成其他语言的模式。默认的 i18n 支持不会这样做,我不知道有任何其他 gem 会这样做。

如有任何意见或建议,我们将不胜感激!另请参见 this discussion 2010 年关于使用 i18n-rails 进行逆向翻译的主题。

最佳答案

我们使用 gettext ,这是一个标准的 unix i18n 解决方案。对于 Rails,您可以使用 gettext_i18n_rails .需要注意的是,gettext_i18n_rails 支持的 FastGettext 似乎没有完整的 gettext 支持,复数等一些高级功能没有按预期工作。

关于ruby-on-rails - 使用 rails-i18n 进行反向翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com