ruby-on-rails 明确地告诉翻译成什么语言

dl5txlt9  于 2023-05-19  发布在  Ruby
关注(0)|答案(5)|浏览(142)

我像往常一样有我的翻译文件在地区。
现在我有一封用不同语言写的邀请信。
我希望用户选择邮件应该用什么语言发送,因为这与操作用户的语言无关,而是与邮件接收者应该阅读的语言有关。
有没有一种方法可以明确地告诉rails选择什么语言,比如t(:my_string, :en)
我们的目标是,让它临时转换为t的一次调用。
这就是我所需要的,在t()命令中告诉我们要使用什么语言。

u3r8eeie

u3r8eeie1#

可以将:locale选项传递给t方法:

t :my_string, locale: :de
mrzz3bfm

mrzz3bfm2#

我认为你需要明确地为I18n设置适当的语言。
您可以用途:I18n.locale = :en设置您需要的语言。
也看这里:I18n

f5emj3cl

f5emj3cl3#

您可以使用I18n后端,它将locale作为第一个参数:
I18n.backend.translate(:en, :my_string)

j8ag8udp

j8ag8udp4#

要实现这一点,您需要接收方的区域设置信息。一旦你有了它,你就可以在你的rails代码中把它传递给I18n.t方法。

preferred_locale = `Receiver.preferred_locale_name` || I18n.default_locale

I18n.t('sample-string', locale: preferred_locale)
inb24sb2

inb24sb25#

如果要临时更改区域设置:I18n.with_locale(:*your_locale*)可以达到这个目的。
更多读数,https://translation.io/blog/rails-i18n-with-locale

相关问题