我像往常一样有我的翻译文件在地区。现在我有一封用不同语言写的邀请信。我希望用户选择邮件应该用什么语言发送,因为这与操作用户的语言无关,而是与邮件接收者应该阅读的语言有关。有没有一种方法可以明确地告诉rails选择什么语言,比如t(:my_string, :en)?我们的目标是,让它临时转换为t的一次调用。这就是我所需要的,在t()命令中告诉我们要使用什么语言。
t(:my_string, :en)
t
t()
u3r8eeie1#
可以将:locale选项传递给t方法:
:locale
t :my_string, locale: :de
mrzz3bfm2#
我认为你需要明确地为I18n设置适当的语言。您可以用途:I18n.locale = :en设置您需要的语言。也看这里:I18n
I18n.locale = :en
f5emj3cl3#
您可以使用I18n后端,它将locale作为第一个参数:I18n.backend.translate(:en, :my_string)
I18n
I18n.backend.translate(:en, :my_string)
j8ag8udp4#
要实现这一点,您需要接收方的区域设置信息。一旦你有了它,你就可以在你的rails代码中把它传递给I18n.t方法。
I18n.t
preferred_locale = `Receiver.preferred_locale_name` || I18n.default_locale I18n.t('sample-string', locale: preferred_locale)
inb24sb25#
如果要临时更改区域设置:I18n.with_locale(:*your_locale*)可以达到这个目的。更多读数,https://translation.io/blog/rails-i18n-with-locale
I18n.with_locale(:*your_locale*)
5条答案
按热度按时间u3r8eeie1#
可以将
:locale
选项传递给t
方法:mrzz3bfm2#
我认为你需要明确地为I18n设置适当的语言。
您可以用途:
I18n.locale = :en
设置您需要的语言。也看这里:I18n
f5emj3cl3#
您可以使用
I18n
后端,它将locale作为第一个参数:I18n.backend.translate(:en, :my_string)
j8ag8udp4#
要实现这一点,您需要接收方的区域设置信息。一旦你有了它,你就可以在你的rails代码中把它传递给
I18n.t
方法。inb24sb25#
如果要临时更改区域设置:
I18n.with_locale(:*your_locale*)
可以达到这个目的。更多读数,https://translation.io/blog/rails-i18n-with-locale