保存されたパーセンテージを出力するカスタムヘルパーメソッドがあります。たとえば、アイテムの割引を計算し、 "20%off"を出力します。Rails I18n:ロケールに基づいて異なるロジックを呼び出す
私はサイトを中国語にローカライズしていますが、中国語では同じ割引が異なって表現されています。 「20%off」は、「8カット」または「元価格の80%」で表されます。これらの2つの表現は全く異なるので、私はヘルパーメソッドの2つのバージョンを書く必要があると思います。
は現在、私はヘルパー自体にロケールを確認し、このようにそれを書いた:
def percent_off(discount, locale=I18n.locale)
if not locale.to_s.include?('zh')
n = ((1 - (discount.preferential_price/discount.original_price)) * 100) .to_i
"#{n}% off"
else
# Chinese
n = ((discount.preferential_price/discount.original_price) * 10) .to_i
"#{n} cut"
end
end
はこれを行うには良い方法はありますか?
を私は今、あなたのソリューションは、最もきれいだと思いますが、各ロケールの文言とロジックは非常に密接に結合されているので、私は一緒になりますが、それらを入れて感じます簡単に管理できます。 – lulalala