web-dev-qa-db-fra.com

La langue du texte ne fonctionne pas dans un fichier ajax externe

J'utilise un fichier ajax externe pour effectuer un appel ajax dans un module (je ne voulais pas modifier le contrôleur ni créer un sous-contrôleur pour un seul appel).

jQuery(document).ready(function($){
$(document).on('click', '.changeBtn',function(){
  var yo="<?php echo 'ip_searchmod_'.$unique_qsid; ?>";
  var text="<?php echo JText:: _('COM_IPROPERTY_THANASIS_ADV_SEARCH');?>";
  $.ajax({

    type:"POST",
    url:"/templates/spiti360/html/mod_ip_homesearch/ajaxChangeSimple.php",
    success: function(response){

      $('#' + yo).html(response);
      $('#' + yo).addClass('formSwapper');
      $('#top_search_form').addClass('divConSwapper');
      $('#swapper').addClass('simpleBtn');
      $('#swapper').removeClass('changeBtn');
      $('#swapper').text(text);
    }

  });

});
});

Ajax fonctionne correctement, mon problème est que j'utilise ce JText:: _('COM_IPROPERTY_THANASIS_FOR_SALE'); à l'intérieur du fichier ajax et que cela se répercute comme: COM_IPROPERTY_THANASIS_FOR_SALE au lieu de For Sale. Sur le default.phpfichier du module, cette définition de langage fonctionne parfaitement, mais pas dans le fichier ajax.

J'ai essayé d'utiliser le remplacement de langue par l'administrateur joomla, mais cela n'a pas fonctionné.

Dans le fichier ajax, j'utilise les éléments suivants:

require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );

Dois-je inclure quelque chose de plus pour que cela fonctionne?

1
IseNgaRt

Après vous êtes require_once appels, ajoutez les éléments suivants pour initialiser les applications:

$mainframe = JFactory::getApplication('site');
$mainframe->initialise();

Puis chargez le fichier de langue du composant:

$lang = JFactory::getLanguage();
$lang->load('com_iproperty', JPATH_ROOT);

J'ai deviné com_iproperty _, donc si ce n'est pas correct, veuillez le changer.

2
Lodder