Nano Hash - криптовалюты, майнинг, программирование

Использование gettext с содержимым из базы данных в приложении phoenix?

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


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

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

Но это не так:

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

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

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

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


  • Обратите внимание, что если вам просто нужен динамический перевод на основе переменной (вместо явной строки), dgettext не нужен. Как показано в выдержке из документации ниже, Gettext.gettext уже может выполнять эту работу. Динамическая часть dgettext заключается только в том, что она позволяет указать конкретный субдомен, поэтому я считаю, что такое название немного вводит в заблуждение. 29.10.2018

Ответы:


1

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

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

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

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

string = "hello world"
Gettext.gettext(#{inspect(gettext_module)}, string)
28.04.2018
  • Это то, что я пытаюсь сделать, и это не работает. :( 28.04.2018
  • Вы звоните Gettext.dgettext или MyApp.Gettext.dgettext? 28.04.2018
  • Фейспалм. Я пробовал с MyApp.Gettext, и это не сработало. Но, конечно, это было под MyAppWeb.Gettext. 28.04.2018
  • Я не понимаю разницы между ‹%= Gettext.dgettext(MyAppWeb.Gettext, материалы, material.name) %› и ‹%= материалы AmazingApp.Gettext.dgettext, #{material.name} %›, но это работает . :D 28.04.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..