web-dev-qa-db-fra.com

Changer la langue par défaut de l'utilisateur par programme

Dans un composant personnalisé que je crée, il est nécessaire que l'utilisateur, dans sa zone privée, choisisse la langue par défaut pour le Web.

Il s’agit d’un formulaire personnalisé, et j’ai déjà rendu le sélecteur de langue, mais je ne sais pas comment modifier les paramètres de l’utilisateur par programme.

J'ai besoin de l'utilisateur pour choisir la langue et lors de l'enregistrement, le Web doit changer de langue si une autre est sélectionnée.

Toute aide est très appréciée.

Merci

1
Piero Marsilio

Exécutez-le après avoir sauvegardé d'autres données dans votre modèle:

$user = JFactory::getUser();

if (!$user->guest)
{
    $user->setParam('language', $language);
    $user->save();
}

$language est la langue des données de formulaire.

Vous devez également lier les données au formulaire afin que l’option sélectionnée apparaisse comme sélectionnée.

1
Sharky

Si vous souhaitez modifier la langue du site, vous pouvez la stocker dans la langue de l'utilisateur. Vous devrez la charger dans votre condition pour les événements de plug-in tels que onAfterRoute ou onBeforeCompileHead qui vous convient le mieux, car le chargement de la langue doit être effectué. avant que le contenu est préparé.

Comme un plugin, un événement tel que celui-ci est déclenché à la fois au début et à la fin, vous devrez donc placer votre code dans des conditions appropriées.

Définissez la langue souhaitée en utilisant:

$lang = JFactory::getLanguage();
$lang->setLanguage("hi-IN");

Mais placez ce code en bon état afin que seule la langue de l'utilisateur prévu soit mise à jour.

J'espère que cela aidera, si quelqu'un a un meilleur moyen, merci de poster une réponse.

2
Pratyush