【问题标题】:How to translate strings by format on Ruby on Rails?如何在 Ruby on Rails 上按格式翻译字符串?
【发布时间】:2013-07-28 14:54:11
【问题描述】:

我从外部 API 将一些字符串输入到我的数据库中,我想在显示用户之前翻译它们。我不想通过 globalize3 翻译每个对象,因为我要翻译的内容有某种格式。

例如我需要用日期更改所有信息值:

“游戏从 22.08.2013 推迟”-> 日期更改但字符串相同。

我尝试使用字符串作为键,如果我没有变量,它可以工作:

config/locale/tr.yml 文件

tr:

Hello World:“Merhaba Dunya”

轨道控制台

I18n.t("Hello World")

=> "梅哈巴杜尼亚"

如何使用带有变量的字符串作为键并获得翻译?

我想定义这个:

tr:

"游戏从 %{d​​ate} 推迟" => "Mac %{date} tarihinden ertelendi"

我想通过以下方式使用它:

I18n.t("比赛从 22.08.2013 推迟")

=> "Mac 22.08.2013 tarihinden ertelendi"

使用 I18n 可能不是我的情况的最佳解决方案,但我不知道如何解决这个问题。

【问题讨论】:

    标签: ruby-on-rails localization internationalization translation rails-i18n


    【解决方案1】:

    在你的config/locale/tr.yml

    'Game postponed from': 'Game postponed from %{date}'
    

    控制台:

    I18n.t 'Game postponed from', :date => some_date
    

    【讨论】:

    • 我知道如何将变量传递给 I18n,但我的问题是我没有变量。 “游戏从 22.08.2013 推迟”是保存在我的数据库中的字符串。
    • 将字符串拆分为两部分,使用I18n查找“游戏延期”,然后使用日期字符串作为变量
    • @Slicedpan 我正在寻找这种情况的通用解决方案。我有很多不同的格式“游戏推迟......”只是一个例子。我可能需要本地化“%{name} 进球”和“比赛裁判是 %{name}”。如果我以编程方式拆分它们,我也可以交换它们,因为我的网站只有一种语言。
    • 一般有什么方法可以判断每个字符串的哪个部分是可翻译的?
    • @Slicedpan no :( 我尝试创建一个管理面板来添加格式(例如“游戏从 %{d​​ate} 推迟”)及其值,但我仍然不知道如何将它们与它们匹配数据库字段。
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2010-10-23
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多