Rails 3 和斯洛文尼亚语多元化

发布于 2024-11-28 00:25:11 字数 286 浏览 0 评论 0原文

我想在 Rails 3.0.9 中使用 t('errors', :count => 2) 进行斯洛文尼亚语翻译,并希望它返回“2 napaki”,这是一种特殊的复数形式斯洛文尼亚语。

我已经创建了 locales/sl.yml 并具有以下代码:

sl:
  error:
    one: %{count} napaka
    two: %{count} napaki
    other: %{count} napak

但这似乎不起作用。

I'd like to use t('errors', :count => 2) with slovenian translation in Rails 3.0.9 and want it to return "2 napaki" which is a special plural form for slovene language.

I have created locales/sl.yml and have this code:

sl:
  error:
    one: %{count} napaka
    two: %{count} napaki
    other: %{count} napak

But this doesn't seem to work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾城月光淡如水﹏ 2024-12-05 00:25:11

确保将翻译放入 config/locales/sl.yml 中。您还需要创建一个文件 config/locales/plurals.rb 并将以下代码放入其中:

# More rules in this file: https://github.com/svenfuchs/i18n/blob/master/test/test_data/locales/plurals.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
{
  :'sl' => { :i18n => { :plural => { :rule => lambda { |n| [1].include?(n % 100) && ![11].include?(n % 100) ? :one : [2].include?(n % 100) && ![12].include?(n % 100) ? :two : [3, 4].include?(n % 100) && ![13, 14].include?(n % 100) ? :few : :other }}}}
}

在您的 application.rb 中,确保设置默认区域设置:

class Application < Rails::Application
  ...
  config.i18n.default_locale = :sl
  ...
end

确保在进行这些更改后重新启动服务器。除了 :one, :two, :other 之外,您还可以使用 :few 来表示 3、4、... 等数字,

您还可以使用 看看这个要点,它完全符合您的要求。

Make sure you put your translations in config/locales/sl.yml. You'll also need to create a file config/locales/plurals.rb and put the following code inside:

# More rules in this file: https://github.com/svenfuchs/i18n/blob/master/test/test_data/locales/plurals.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
{
  :'sl' => { :i18n => { :plural => { :rule => lambda { |n| [1].include?(n % 100) && ![11].include?(n % 100) ? :one : [2].include?(n % 100) && ![12].include?(n % 100) ? :two : [3, 4].include?(n % 100) && ![13, 14].include?(n % 100) ? :few : :other }}}}
}

In your application.rb make sure you set the default locale:

class Application < Rails::Application
  ...
  config.i18n.default_locale = :sl
  ...
end

Make sure you restart the server after you make these changes. Besides :one, :two, :other you also have :few for numbers like 3, 4, ...

You can have also have a look at this gist wich does exactly what you ask.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文