gpt4 book ai didi

ruby-on-rails - 如何翻译 (I18N) 模型中验证引发的错误文本 (Ruby On Rails)

转载 作者:行者123 更新时间:2023-12-03 16:02:05 25 4
gpt4 key购买 nike

我正在 Ruby On Rails (3.1) 上运行一个应用程序,需要处理各种语言的翻译。我使用 I18N 功能正确处理了我的 Controller 文本,但是模型中的验证呢,尤其是像这样的:

validate :valid_quantities?

def valid_quantities?
if self.quantity*self.unitprice < 1.00
errors.add("The transaction value", "is < 1.00")
return false
end

我将如何编码以提供对其他语言的支持?
另外,如何处理数字的格式?我无法调用 ActionView 助手和用户,例如数字到货币

最佳答案

我会用这个:

total_price = self.quantity*self.unitprice
errors.add(:transaction_value, :transaction_undervalued, { value: total_price })

恕我直言,你最好使用一个简单的关键字,如 :transaction_undervalued ,这样 I18n 根据 rails guides - i18n - error message scopes 在几个命名空间中查找:
activerecord.errors.models.[model_name].attributes.transaction_undervalued
activerecord.errors.models.[model_name]
activerecord.errors.messages
errors.attributes.transaction_undervalued
errors.messages

*用正在使用此验证的模型替换 [model_name]

对于语言环境部分,这是/config/locales/en.yml 中的示例
en:
errors: &errors
messages:
transaction_undervalued: "The transaction value is %{value}. That is < 1.00"

关于ruby-on-rails - 如何翻译 (I18N) 模型中验证引发的错误文本 (Ruby On Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554401/

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