Rails 5: можно ли распечатать страницу с другим языковым стандартом? - PullRequest
1 голос
/ 10 марта 2019

Я распечатываю страницу с квитанцией, используя следующую информацию:

link_to '', :onclick => 'window.print();return false;',

Можно ли просмотреть страницу в локали, подобной en, но распечатать вдругой, такой как de?

Пример: англоговорящий пользователь может использовать систему в Германии, но все распечатки все равно будут на немецком языке.Это позволило бы пользователям использовать систему на своем родном языке, где бы ни находилась компания или организация.

Кроме того, это лучший способ распечатать страницу в рельсах?

Я попытался взломать с I18n.with_locale() do, но не нашел хорошего способа сделать это.Желательно передать строку локали в функцию print или аналогичную.

1 Ответ

1 голос
/ 10 марта 2019

Есть несколько подходов к этому:

1) сделайте это на внешнем интерфейсе с помощью CSS: используйте атрибут lang по всей странице, создавая два элемента для каждого текста на странице. Скройте один из языков по умолчанию (т. Е. :lang(de) { display: none } и используйте @media print CSS, чтобы отобразить его, одновременно скрывая другой. Вы можете применять другие стили CSS для таких вещей, как скрытие элементов навигации и т. Д.

2) открыть новое окно, содержащее документ на другом языке. Вероятно, меньше удивления для пользователя. Вы можете передать желаемый языковой стандарт в URL-адресе, и он будет вызывать window.print() JS в обработчике onload.

3) напрямую сгенерировать PDF на сервере, возможно, используя другой формат в вашем действии show. Это дает вам больше контроля над фактическим макетом, не полагаясь на поведение браузеров ваших пользователей. Для этого есть несколько библиотек, одна из которых https://github.com/igorkasyanchuk/rails_pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...