Использование gettext с контентом из базы данных в приложении Phoenix? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь использовать Gettext и домены в приложении Феникс для перевода "материалов" (дерево, шерсть, хлопок, капок ...). Материалы поступают из базы данных.


Это работает:

<%= MyApp.Gettext.dgettext "materials", "cotton" %>

Но это не так:

<%= MyApp.Gettext.dgettext "materials", "#{material.name}" %>

Я пытаюсь добавить перевод в шаблон

<%= for material <- @materials do %>
  <td><%= AmazingApp.Gettext.dgettext "materials", "#{material.name}" %></td>
<% end %>

Как можно переводить в этой ситуации?

1 Ответ

0 голосов
/ 28 апреля 2018

Вы можете использовать Gettext.dgettext/3 для этого:

<%= Gettext.dgettext(MyApp.Gettext, "materials", material.name) %>

Из документации :

Следует избегать динамических переводов, поскольку они ограничивают возможности Gettext. возможность извлекать переводы из вашего исходного кода. Если ты уверен, что вам нужен динамический поиск, вы можете использовать функции в Gettext Модуль:

string = "hello world"
Gettext.gettext(#{inspect(gettext_module)}, string)
...