joomla - принудительно получить ключевое слово из определенного языка в JText

0

на самом деле я искал ответ, чтобы точно решить ту же проблему, что и в joomla - принудительно получить ключевое слово с определенного языка, за исключением того, что его решение не сработает для меня. здесь я объясняю все так хорошо, как могу:

Мне нужно использовать JText таким образом, чтобы я дал ему язык, который я хочу перевести. уже пытался установить/загрузить этот язык перед вызовом функции JText, но, несмотря на то, что результат загрузки по языку успешно, он всегда возвращает ключевые слова по умолчанию. я написал компонент, где запрос клиентов отправляется администратору по электронной почте. клиент получает копию (на правильном языке посещаемого сайта = это работает). администратор, однако, должен получить копию одного и того же bodytext, но с принудительным языком:

$body = '<td><b>'.JText::_(TPL_FORM_TELEFON).'</b></td><td>'.$_POST['tel'].'</td></tr>'.

так что в основном JText::_(TPL_FORM_TELEFON) находится в электронном письме с копией, отправленном клиенту либо en-GB либо ru-RU (в зависимости от того, на каком языке он посещает), но для администратора JText::_(TPL_FORM_TELEFON) быть в немецкий (de-DE)

любая идея, как достичь этого?

Теги:
joomla

1 ответ

1
Лучший ответ

Есть способ сделать это. Найдите эту статью внутри Joomla! Документы: https://docs.joomla.org/Specification_of_language_files

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

непереведенные строки появятся на английском языке, а не как нетранслируемые ключи

Таким образом, вы можете загрузить переведенные строки интерфейса для отправки электронной почты клиенту, а для администратора вы можете загрузить немецкий языковой файл. Пока вы не переводите немецкий языковой файл и не пускаете en & ru, вы всегда должны получать немецкие строки для электронной почты администратора. Не забывайте, что вам может понадобиться использовать разные языковые ключи для внутренних и внешних файлов языка, чтобы это работало.

Примеры интерфейсных ключей:
для de-DE: TPL-FROM-TELEFON="Telefon"
для en-GB: TPL-FROM-TELEFON="Phone"

Примеры базовых ключей:
для de-DE: TPL-FROM-TELEFON-ADMIN="Telefon"
для en-GB: TPL-FROM-TELEFON-ADMIN = НЕ ВКЛЮЧАЙТЕ ЭТОТ КЛЮЧ ВСЕХ !!!

В конце вам нужно загрузить языковые файлы, как описано в Joomla! Docs:

Вы можете использовать что-то подобное для файлов исходного языка:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true);
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, null, true);

И для загрузки файлов интерфейса внешнего интерфейса, используя тот же трюк:

$language = JFactory::getLanguage();
$language->load('com_yourcomponentname', JPATH_SITE, 'en-GB', true);
$language->load('com_yourcomponentname', JPATH_SITE, null, true);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню