Об i18n в rails и реверсировании веб-сайта в Rails

Я решил попытаться перевести свое приложение rails, используя i18n, на арабский язык, который справа налево, в отличие от английского языка (слева направо), как я могу перевернуть свой веб-сайт в случае арабского языка и сбросить его обратно в случае выбора английского языка?

Я пробовал <html dir="rtl">, он меняет только направление текста, мне нужно сделать что-то вроде Facebook, чтобы изменить весь сайт в соответствии с выбранным языком, если он с R на L или с L на R

Как сделать условие для переключения между RTL и LTR в приложении rails?


person Mostafa Hussein    schedule 07.05.2013    source источник
comment
Вы видели это? w3.org/TR/i18n-html-tech-bidi   -  person Brad Werth    schedule 08.05.2013
comment
Это не для рельсов! я не могу использовать его в приложении rails для переключения между LTR и RTL, или, если у вас есть решение, просто напишите и объясните его, пожалуйста.   -  person Mostafa Hussein    schedule 08.05.2013
comment
Возможно, что-то вроде локализации файла CSS? stackoverflow.com/questions/9310044/rails-i18n-of -css-файл   -  person olleolleolle    schedule 08.05.2013
comment
Хотите верьте, хотите нет, но Rails использует HTML...   -  person Brad Werth    schedule 08.05.2013
comment
и хотите верьте, хотите нет, но в приложении Fedena rails [Educational ERP SYSTEM] у них есть поддержка RTL, а в ‹html› написано условие ruby ​​on rails между ‹%=› и также используется css, что позволяет вам использовать RTL и LTR, поэтому мне нужно решение в rails и css, потому что я не знаю, что они добавляют в другие файлы!   -  person Mostafa Hussein    schedule 08.05.2013
comment
загляните в (github.com/projectfedena/fedena /blob/master/app/views/layouts/)   -  person Mostafa Hussein    schedule 08.05.2013


Ответы (1)


Когда я искал похожую проблему, я столкнулся с вашим вопросом. Вот что я делаю. в просмотрах:

<div class="some-css-class-<%= I18n.locale.to_s %>"> some content </div>

а затем в ваших файлах css вы должны дублировать некоторые классы.

Например, если у вас было что-то вроде этого:

.some-css-class{ align: left; }

вы должны изменить его на

.some-css-class-en{ align: left; } .some-css-class-ar{ align: right; }

Хотя я предлагаю вам определить переменную направления в вашем макете или в application_controller.rb или даже в application_helper.rb, которая указывает направление страницы: @direction_page = (I18n.locale==:ar)?("rtl"):("ltr"), которое более расширяемо для будущих изменений.

person Mojtaba Ghorbanalibeik    schedule 30.04.2014