Intereting Posts
Распечатайте идентификатор пользователя WordPress – два сайта с одинаковым кодом, но с другим выходом Загрузите дочерний CSS-код Enqueue после загрузки Bootstrap CDN Custom Post Type – добавление персонализированного элемента поддержки? Сортировка сообщений Какой крюк выполняется сразу после выполнения wp_query? Доступ к переменной из панели администратора? Использование глобальных переменных, дорогостоящих для PHP Почему orderbyb meta_value_num не влияет на сгенерированный запрос SQL Query? Предотвращение добавления дублирующихся страниц Пользовательская форма в области администрирования, перенаправление на неправильную страницу Не удается сохранить значение ajax для базы данных Отменить регистрацию меню Nav из Child-Theme Перемещение комментариев только с одной установки WP на другую Почему мой запрос не запускается с подготовкой не может обрабатывать перенаправление

Как i18n текст, поступающий из db или из внешнего источника

Я пишу плагин, и я хочу правильно записать текст, который я храню в db или во внешнем файле. Как мне это сделать? На данный момент мы создаем файлы pot с wordpress, и поэтому весь текст Translatable находится в вызовах

__( 'text', 'plugin_name'); 

Но есть некоторый текст, который я хотел бы хранить в db или в другом формате, и что я не знаю, как помещать файлы POT.

Единственное, что приходит мне на ум – использовать массивы для этих структур данных, чтобы я мог переводить значения, но есть ли другие варианты?

Solutions Collecting From Web of "Как i18n текст, поступающий из db или из внешнего источника"

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

Если вы хотите сохранить весь свой переводный текст в одном файле PHP в виде массива, а затем ссылаться на него из другого места в коде, то это отлично работает.

Но есть некоторый текст, который я хотел бы хранить в db или в другом формате, и что я не знаю, как помещать файлы POT.

Если текст находится в базе данных, вы не можете перевести его с помощью файла POT. Весь смысл перевода – настроить поиск по статическим строкам, используемым в вашем коде. Если текст находится в базе данных, он не является статичным и не может быть переведен.

Ну, по крайней мере, не со стандартной функцией i18n, которую вы пытаетесь использовать.