В настоящее время я работаю над проектом по интернационализации одного из наших веб-приложений на 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 запускается и сообщает мне, что 17, 50 не является числом (точнее, он говорит "n'est pas un nombre" ). Мне нужно ввести 17.50, чтобы сохранить его.
Если честно, я не совсем уверен в правильности этого. Должны ли все страны вводить цифры с полными остановками в текстовых полях или есть способ заставить Ruby-on-Rails отображать запятые и соответствующим образом проверять их?