Я написал плагин, который позволяет пользователям добавлять информацию в базу данных. Он работает хорошо, но я не могу перевести информацию с помощью WPML. Это простой пример проблемы:
$ сообщение = ‘тест’; // здесь я получаю информацию о БД
__($message, ‘my-plugin’);
Есть ли способ обойти эту проблему? Я не знаю, можем ли мы использовать для перевода переменную вместо строки. Когда я анализирую виджет в панели администратора, он не показывает строку для перевода.
Этот пример работает в WPML, потому что это строка: __(‘test’, ‘my-plugin’);
Заранее спасибо.
и
_e();
функции прекрасно работают с заполнителями, и это функции php, а не функции WPML, поэтому либо я не понимаю вопроса, либо он просто плохо сформулирован, можете ли вы объяснить немного больше, что вы пытаетесь сделать?@Bainternet спасибо за ваш ответ, я пытаюсь получить информацию из базы данных и отобразить с помощью функций перевода
__()
и_e()
, но вместо того, чтобы повторять строку, например,_e('message','myplugin');
я хочу отображать информацию, которую я получаю из БД, поэтому у меня есть переменная с содержимое я получаю как `_e($message,’myplugin’). Это работает хорошо, повторяя информацию, но когда я иду в WPML, чтобы перевести строку, она не появляется, и я не могу ее перевести.Большое спасибо, я думал, что это может произойти, поэтому теперь мне нужно изменить свой код, используя другие способы отображения информации, возможно, используя пользовательские типы сообщений.
Если вы хотите, чтобы переменные в вашем тексте были переведены, обычным способом будет форматирование строки следующим образом:
с целыми числами:
с более чем одним заполнителем:
но сама переменная не будет переведена никак.
WPML не запускает код раньше
__();
и_e();
не работает, он только ищет файлы для них, и поэтому, когда вы пишете что-то вроде этого:WPML видит только пустое поле
__($message, 'my-plugin');
$message.