Вопрос

Я пытаюсь интернационализировать свой сайт, и одна вещь-использовать разные размеры шрифта для разных языков. Также необходимо заменить некоторые текстовые изображения.

Я думаю, что единственный способ сделать это-иметь дополнительные специфичные для локали файлы CSS в общедоступной папке и загрузить их на основе локали, на мой взгляд. Это позволяет избежать конвейера активов от составления этих конкретных файлов CSS. Но мне интересно, если есть лучший способ сделать это?

Это было полезно?

Решение

Лучший выбор в организации - иметь разные листы в стиле, специфичные для локализации, а затем создать состояние в вашем макете о том, какие листы стилей можно сделать на основе локали.

Только поставьте только локальный специфический стиль, и если вы думаете об этом ... это не должно влиять на время нагрузки, потому что я считаю, что вы меняете только размеры шрифтов.

Обновление от OP:

Вот что я настроил, чтобы это было работать:

  • Я создал locales каталог под app/assets/stylesheets
  • Я помещаю в кафедры специфических таблиц стилей, например, как fr.sass
  • Я настраиваю состояние в layouts/application.html.erb Для ссылки на файлы CSS: <% if I18n.locale != :en %> <%= stylesheet_link_tag "locales/" + I18n.locale.to_s %> <% end %>
  • Я настраиваю правила докомпиляции в config/application.rb

config.assets.precompile += 'locales/*.css'

Обратите внимание, что я в списке белых активов, в которые я хочу собрать application.css, так что специфические стили локали не попадут в application.css.

Другие советы

Я согласен с Onno. Мне нужны были только очень простые изменения, поэтому я добавил локаль в качестве языковой тег, как описано в этом ответе:https://stackoverflow.com/a/11577356/1822977

HTML:

<html lang="<%= I18n.locale || 'en' %>">

Sass:

body {
    font-family:verdana,arial,helvetica,sans-serif;
    html[lang="jp"] & {
        font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
     }
}

Вы также можете использовать специфичные для локали атрибуты класса в html. Я думаю, что это лучший/более простой способ достичь того, что вы хотите. Размещать CSS на публику не так приятно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top