Annonce

  •  » Plugins
  •  » [Résolu] [Entraide dev] Utilisation de get_l10n_args()

#1 2012-09-20 18:56:01

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

[Résolu] [Entraide dev] Utilisation de get_l10n_args()

Bonjour à tous,

Je suis face à un casse-tête : J'essaie d'utiliser la fonction pwg_mail_notification_admins() de Piwigo pour notifier tous les admins d'une galerie. J'ai pris exemple sur ce qui se fait dans le plugin Community (fichier add_photo.php) mais je suis bloqué sur la traduction du sujet et du contenu des mails.

Voici la fonction que j'ai codé :

Code:

UAM_Admins_notification($username,$key)
{
    include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');

    $keyargs_content = array
    (
        get_l10n_args('UAM_Manual_validation_needed_for %s', stripslashes($username)),
        get_l10n_args('', ''),
        get_l10n_args('UAM_Link: %s', $key)
      );

    pwg_mail_notification_admins(
        get_l10n_args('UAM_Subject admin validation for %s',stripslashes($username)),
        $keyargs_content,
        false
    );
}

Les mails sont correctement envoyés et les arguments passés dans les get_l10n_args() sont bien insérés mais les singular_key ne sont pas traduite dans la langue par défaut de la galerie comme cela devrait être le cas.

Je précise que les clés "UAM_Subject admin validation for %s", "UAM_Link: %s" et "UAM_Manual_validation_needed_for %s" sont bien présentes dans les fichiers de traduction EN et FR (dans mon cas).

Par exemple, le sujet d'un mail reçu est : "UAM_Subject admin validation for trucmuche" au lieu de "Inscription de trucmuche à valider".


Si quelqu'un a une idée du pourquoi les clés ne sont pas traduites, je prends ! ^^

Merci d'avance pour vos pistes.

Hors ligne

#2 2012-09-21 18:37:41

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

Je me réponds à moi-même :
Après moultes essais et vérifications, il s'avère que mon problème vient de la fonction pwg_mail_notification_admins() de Piwigo qui ne supporte pas les clés de traduction en dehors du contexte propre à Piwigo.

Par exemple, si je renseigne mes clés de trad dans le fichier ../language/fr_FR/admin.lang.php (par ce que la langue par défaut de ma galerie de test est FR), la traduction fonctionne.

C'est dommage car je vais être obligé de coder ma propre fonction de notification aux admins alors que celle de Piwigo aurait très bien pu faire l'affaire.

Serait-il envisageable de faire quelque chose dans ce domaine pour une version future de Piwigo ?

Hors ligne

#3 2012-09-21 18:45:46

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

toujours dans ma todo list de réécrire intégralement pwg_mail et consort, 2.6... peut-être

Hors ligne

#4 2012-09-21 18:48:45

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

Ce que je ne m'explique pas c'est pourquoi cela fonctionne avec le plugin Community ? J'ai beau retourner le code add_photos.php de ce plugin dans tous les sens et le comparer au mien, je ne trouve pas ce qui cloche chez moi. :-(

Pierrick, si tu passes par ici... ;-)

Hors ligne

#5 2012-09-21 19:15:16

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

J'avance dans la compréhension de mon problème avec pwg_mail_notification_admins() - Non, je ne lâche rien ;-)

Dans la fonction pwg_mail_notification_admins(), on a "switch_lang_to(get_default_language())" qui est sensé (si j'ai bien tout capté) basculer dans la langue configurée par défaut de la galerie pour envoyer les notifications aux admins. Ainsi, si des admins ont des langues différentes, tous recevront le mail dans la langue par défaut et non la leur.
Et c'est çà qui ne fonctionne pas dans l'appel que je fais à pwg_mail_notification_admins() dans mon code. La langue par défaut n'est pas détectée et la traduction ne peut pas se faire.

En commentant les appels aux fonctions switch_lang_to(get_default_language()) et switch_lang_back(), le contenu des notifications aux admins est, cette fois, bien traduit mais dans la langue dans laquelle est affichée la galerie à l'instant T.

Dans mon cas, je souhaite utiliser pwg_mail_notification_admins() au moment de l'inscription d'un utilisateur. La langue de la galerie se positionne alors dans la langue par défaut du navigateur (avec FF, on peut configurer plusieurs langues d'affichage préférées mais c'est la première de la liste qui est prise).

Du coup, si un utilisateur chinois s'inscrit, les admins recevront leur notification en chinois... Pas top :-(

Hors ligne

#6 2012-09-21 20:53:17

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

Problème résolu en recodant un fonction "clone" de pwg_mail_notification_admins().

L'astuce que j'ai trouvée pour que la langue par défaut soit utilisée est de passer la fonction switch_lang_to(get_default_language()) avant la définition des get_l10n_args(). Un peu tordu mais çà marche ^^

Hors ligne

#7 2012-09-23 10:41:34

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

De tête, il me semble qu'il existe un trigger lors du chargement des langues. A essayer!?

Sinon, effectivement les switch_lang permettent dans une même session d'utiliser plusieurs langues.
Mais pour les traductions locales à un trigger, il faut bien les charger aussi en passant par le switch_lang donc par le trigger.

Après recherche, le trigger est dans common.inc.php (edit Mistic: et dans functions_mail.inc.php)

Code:

trigger_action('loading_lang');

Hors ligne

#8 2012-09-23 10:50:12

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: [Résolu] [Entraide dev] Utilisation de get_l10n_args()

ah bien vu, switch_lang ne recharge que les fichiers du core de Piwigo

on pourrais imaginer une modification de load_language() qui garde la trace des fichiers de langue chargés, trace utilisée par switch_lang() pour tout recharger

Hors ligne

  •  » Plugins
  •  » [Résolu] [Entraide dev] Utilisation de get_l10n_args()

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact