Je viens de buter sur une page perso pour un site multilingue.
En effet, pour avoir une URL propre et réécrite, si on indique l'URL comme précédemment, on se retrouve sur une page qui ne correspond pas forcément à la langue du visiteur.
J'ai donc fouiné un peu et ai trouvé une solution fonctionnelle en obtenant une URL réécrite dirigée vers la langue utilisateur.
Prenons en exemple un site français / anglais.
- Créons 2 modules de contenus personnalisés contenant chacun ce que l'on souhaite afficher au visiteur, l'un en anglais, l'autre en français.
- Affectons ces deux modules à leur langue respective.
- Créons la page d'erreur personnalisée et n'y insérons que les deux modules préalablement créés comme suit {loadmodule mod_custom,moduleFR} {loadmodule mod_custom,ModuleEN} (Les noms dépendent de vos créations de modules bien sûr)
- Comme langue de la page, sélectionnons "Toutes" afin qu'elle puisse s'afficher dans les deux langues. Le fait d'avoir paramétré le module FR pour la langue française ne lui permettra de s'afficher que sur la partir française du site et vice et versa pour le module anglais.
- Créons maintenant un lien masqué vers la page d'erreur et relevons son alias.
- Rendons-nous sur la page d'erreur du template et faisons-en une copie sous un autre nom au cas où…
- Dans la page error.php, entrons ce qui suit :
Code PHP:
<?php
/**
* @package Joomla.Site
* @subpackage Template.system
*
* [USER="64686"]Copyright[/USER] Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/** @var JDocumentError $this */
if (!isset($this->error))
{
$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
$this->debug = false;
}
$app = JFactory::getApplication();
if (($this->error->getCode()) == '404') {
header('Location: ' .$this->baseURL . '404.html'); // dans l'exemple ici, l'alias de l'article est 404, suivi de l'extension html si elle est utilisée dans vos paramètres.
exit;
}
?>
Testé avec succès sur un site au template créé par TemplateCreator CK et un autre au template HelixUltimate.
En espérant que ça puisse aider les webmestres gérant des sites multilingues…
Laisser un commentaire: