Я хотів би i18n текст, який виглядає приблизно так:
Вже підписалися? Увійти!
Зверніть увагу, що на тексті є посилання. У цьому прикладі він вказує на Google - насправді він вказуватиме на мої програми log_in_path
.
Я знайшов два способи зробити це, але жоден з них не виглядає "правильним".
Перший спосіб, який я знаю, полягає в тому, щоб мати це своє en.yml
:
log_in_message: "Already signed up? <a href='{{url}}'>Log in!</a>"
І на мій погляд:
<p> <%= t('log_in_message', :url => login_path) %> </p>
Це спрацьовує , але те, що брати <a href=...</a>
участь у роботі en.yml
, не виглядає дуже чисто для мене.
Інший відомий мені варіант - це використання локалізованих представлень - login.en.html.erb
, і login.es.html.erb
.
Це також не є правильним, оскільки єдиною іншою лінією буде вищезгадана; решта огляду (~ 30 рядків) буде повторена для всіх переглядів. Це було б не дуже ДУХО.
Я здогадуюсь, я міг би використати "локалізовані частки", але це здається занадто кам'яним каменем; Я думаю, що я вважаю за краще перший варіант мати стільки крихітних файлів перегляду.
Отже, моє запитання: чи є "правильний" спосіб цього здійснити?