Локализация текстового поля, содержащего число, в Ruby on Rails

В настоящее время я работаю над проектом по интернационализации одного из наших веб-приложений ruby-on-rails, чтобы его можно было использовать в других странах (Франция будет первой в этом случае).

Отдельная проблема, которую я еще не решил, - это отображение числовых полей. При отображении чисел только для отображения я делаю следующее:

<%= number_to_percentage(tax.rate, :precision => 2)%>

На английском языке отображается 17,50 , но на французском языке отображается 17,50 (с запятой вместо десятичная точка), как и ожидалось. Проблема возникает в форме редактирования, когда я показываю текстовое поле

<%= f.text_field :rate, :size => 15 %>

Когда это отображает текстовое поле на экране, текстовое поле всегда показывает 17,50 с точкой, а не запятой для французского языка. Я не уверен, что это правильно.

Когда я попытался сделать следующее:

<%= f.text_field :rate, :size => 15, :value => number_with_precision(f.object.rate, :precision => 2) %>

Это действительно показало 17,50 в текстовом поле для французского языка, но когда я нажимаю кнопку «Обновить», чтобы сохранить форму, выполняется проверка Ruby. in и сообщает мне, что 17,50 не является числом (или, скорее, оно говорит «n'est pas un nombre»). Мне нужно ввести 17,50 , чтобы сохранить его.

Если честно, я не совсем уверен, что здесь делать.Должны ли все страны вводить числа с точками в текстовых полях или есть способ заставить Ruby-on-Rails отображать запятые и проверять их надлежащим образом?

14
задан Tim C 9 March 2017 в 15:46
поделиться