gpt4 book ai didi

ruby-on-rails-3.1 - 如何更改 Rails 语言环境文件中内插变量的大小写?

转载 作者:行者123 更新时间:2023-12-04 02:10:33 24 4
gpt4 key购买 nike

在 Ruby 1.9.3p0 中使用 Rails 3.1.3。

我发现在默认情况下,Rails 不为表单按钮使用句子大小写。例如,它生成一个“更新用户”按钮而不是“更新用户”按钮。

按钮名称来自 ActionView locale file .有没有办法创建一个将模型名称小写的默认值?这在 Interpolation 上的 Ruby on Rails 指南 i18n 部分中没有涵盖。所以也许这是不可能的。以下不起作用:

en:
helpers:
submit:
update: 'Update %{model}.downcase'

一般来说,我很乐意找到语言环境 YAML 文件语法的引用。 i18n 指南涵盖了一些语法,但查找有关所有感叹号、各种日期/时间格式等的文档会很有帮助。或者,也许我应该为此使用 Ruby Hash 而不是 YAML 文件?

最佳答案

经过进一步研究,我得出结论,这种对内插值的操作是不可能的,至少使用 YAML 语言环境文件是不可能的。

YAML 记录在此处并且不支持字符串操作:
http://www.yaml.org/spec/1.2/spec.html

Ruby 本地化的主页在这里:
http://ruby-i18n.org/wiki

从那里,我们找到默认 I18n gem 的代码并深入到插值代码。它使用 sprintf做插值:
https://github.com/svenfuchs/i18n/blob/master/lib/i18n/interpolate/ruby.rb

该代码“很大程度上基于 Masao Mutoh 的 gettext 字符串插值扩展”:
http://github.com/mutoh/gettext/blob/f6566738b981fe0952548c421042ad1e0cdfb31e/lib/gettext/core_ext/string.rb

该扩展有一个格式化数字的例子:

For strings.
"%{firstname}, %{familyname}" % {:firstname => "Masao", :familyname => "Mutoh"}

With field type to specify format such as d(decimal), f(float),...
"%<age>d, %<weight>.1f" % {:age => 10, :weight => 43.4}

扩展名引用[Ruby]“ Kernel::sprintf格式字符串的详细信息”:
http://www.ruby-doc.org/core-1.9.2/Kernel.html#method-i-sprintf

在该文档中 sprintf ,有很多方法可以格式化数字,但没有改变字符串大小写的操作。

关于ruby-on-rails-3.1 - 如何更改 Rails 语言环境文件中内插变量的大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642901/

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