Changeset 108194 in spip-zone


Ignore:
Timestamp:
Dec 26, 2017, 4:17:38 PM (15 months ago)
Author:
eric@…
Message:

On limite le transcodage vers weather uniquement à l'icone ce qui est plus logique. Le résumé est donc toujours celui fourni par le service qui est en plus traduit (sauf weather). On va se servir de weather uniquement pour les icônes dont les jeux sont très nombreux.
On désactive l'option transcodage pour les services dont la fonction n'est pas encore codée.

Location:
_plugins_/rainette/trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/trunk/formulaires/configurer_rainette_service.html

    r108193 r108194  
    4444                                [(#REM) <!-- Configuration du système d'icônes à utiliser (sauf pour weather) --> ]
    4545                                [(#SAISIE{radio, condition,
    46                                         datas=#ARRAY{#ENV{service}, <:rainette:label_condition_native:>, weather, <:rainette:label_condition_weather:>},
    47                                         explication=<:rainette:explication_configurer_condition:>,
    48                                         label=<:rainette:label_condition:>,
     46                                        datas=#ARRAY{#ENV{service}, <:rainette:label_icone_natif:>, weather, <:rainette:label_icone_weather:>},
     47                                        disable=#ARRAY{#ENV{service}, 0, weather, #ENV{service}|in_array{#LISTE{wunderground, weatherbit, apixu, owm}}},
     48                                        explication=<:rainette:explication_configurer_icone:>,
     49                                        label=<:rainette:label_icone:>,
    4950                                })]
    5051                        ]
  • _plugins_/rainette/trunk/formulaires/configurer_rainette_service.php

    r108193 r108194  
    5151        $valeurs['_meta_casier'] = "rainette/${service}";
    5252
    53 
    5453        return $valeurs;
    5554}
  • _plugins_/rainette/trunk/inc/rainette_normaliser.php

    r108183 r108194  
    722722function langue_determiner($configuration_service) {
    723723
    724         if ($configuration_service['condition'] == $configuration_service['alias']) {
    725                 // Rainette est configurée pour utiliser le résumé renvoyé par le service pour l'affichage :
    726                 // il est donc nécessaire de demander ce résumé dans la bonne langue si elle existe.
    727 
    728                 // On détermine la "bonne langue" : on choisit soit celle de la page en cours
    729                 // soit celle en cours pour l'affichage.
    730                 $langue_spip = $GLOBALS['lang'] ? $GLOBALS['lang'] : $GLOBALS['spip_lang'];
    731 
    732                 // On cherche si le service fournit la langue utilisée par le site.
    733                 // -- Pour cela on utilise la configuration du service qui fournit un tableau des langues disponibles
    734                 //    sous le format [code de langue du service] = code de langue spip.
    735                 $langue_service = array_search($langue_spip, $configuration_service['langues']['disponibles']);
    736                 if ($langue_service === false) {
    737                         // La langue utilisée par SPIP n'est pas supportée par le service.
    738                         // -- On cherche si il existe une langue SPIP utilisable meilleure que la langue par défaut du service.
    739                         // -- Pour ce faire on a défini pour chaque code de langue spip, un ou deux codes de langue SPIP à utiliser
    740                         //    en cas d'absence de la langue concernée dans un ordre de priorité (index 0, puis index 1).
    741                         $langue_service = $configuration_service['langues']['defaut'];
    742                         if ($GLOBALS['rainette_config']['langues_alternatives'][$langue_spip]) {
    743                                 foreach ($GLOBALS['rainette_config']['langues_alternatives'][$langue_spip] as $_langue_alternative) {
    744                                         $langue_service = array_search($_langue_alternative, $configuration_service['langues']['disponibles']);
    745                                         if ($langue_service !== false) {
    746                                                 break;
    747                                         }
     724        // Les services de Rainette sauf weather.com peuvent renvoyer la traduction du résumé dans plusieurs langues.
     725        // il est donc nécessaire de demander ce résumé dans la bonne langue si elle existe.
     726
     727        // On détermine la "bonne langue" : on choisit soit celle de la page en cours
     728        // soit celle en cours pour l'affichage.
     729        $langue_spip = $GLOBALS['lang'] ? $GLOBALS['lang'] : $GLOBALS['spip_lang'];
     730
     731        // On cherche d'abord si le service fournit la langue utilisée par le site.
     732        // -- Pour cela on utilise la configuration du service qui fournit un tableau des langues disponibles
     733        //    sous le format [code de langue du service] = code de langue spip.
     734        $langue_service = array_search($langue_spip, $configuration_service['langues']['disponibles']);
     735
     736        if ($langue_service === false) {
     737                // La langue utilisée par SPIP n'est pas supportée par le service.
     738                // -- On cherche si il existe une langue SPIP utilisable meilleure que la langue par défaut du service.
     739                // -- Pour ce faire on a défini pour chaque code de langue spip, un ou deux codes de langue SPIP à utiliser
     740                //    en cas d'absence de la langue concernée dans un ordre de priorité (index 0, puis index 1).
     741                $langue_service = $configuration_service['langues']['defaut'];
     742                if ($GLOBALS['rainette_config']['langues_alternatives'][$langue_spip]) {
     743                        foreach ($GLOBALS['rainette_config']['langues_alternatives'][$langue_spip] as $_langue_alternative) {
     744                                $langue_service = array_search($_langue_alternative, $configuration_service['langues']['disponibles']);
     745                                if ($langue_service !== false) {
     746                                        break;
    748747                                }
    749748                        }
    750749                }
    751         } else {
    752                 // Rainette est configurée pour afficher le résumé Weather.com après transcodage. La langue de la requête
    753                 // importe peu, on choisit donc la langue configurée par défaut.
     750        }
     751
     752        // Aucune langue ne correspond véritablement, on choisit donc la langue configurée par défaut.
     753        if ($langue_service === false) {
    754754                $langue_service = $configuration_service['langues']['defaut'];
    755755        }
  • _plugins_/rainette/trunk/lang/rainette_fr.php

    r108182 r108194  
    5353        'explication_configurer_cle_facultative' => 'Ce service <strong>ne nécessite pas une clé d\'inscription</strong> pour être utilisé mais il est fortement recommandé d\'en acquérir une. Si vous le decidez, veuillez acquérir cette clé sur la page @url@ et la saisir ci-dessous.',
    5454        'explication_configurer_cle_obligatoire' => 'Ce service nécessite toujours une clé d\'inscription pour être utilisé. Veuillez acquérir cette clé sur la page @url@ et la saisir ci-dessous.',
    55         'explication_configurer_condition' => 'Choisissez le mode d\'affichage du résumé et de l\'icone représentatifs d\'une condition météorologique donnée.',
     55        'explication_configurer_icone' => 'Choisissez le mode d\'affichage de l\'icone représentatif d\'un état météorologique donné.',
    5656        'explication_configurer_theme' => 'Choisissez le thème d\'icônes à utiliser dans les affichages.',
    5757        'explication_configurer_unite' => 'Choisissez le système d\'unité dans lequel seront exprimées les données météorologiques.',
     
    100100        'label_compteur_hour' => 'Compteur heure',
    101101        'label_compteur_minute' => 'Compteur minute',
    102         'label_condition_native' => 'Utilisation du résumé et de l\'icone fourni par ce service',
    103         'label_condition_weather' => 'Utilisation du résumé et de l\'icone du service weather.com&reg; (nécessite une conversion approximative de la condition)',
    104         'label_condition' => 'Conditions météorologiques',
     102        'label_icone_natif' => 'Utilisation de l\'icône fourni par ce service',
     103        'label_icone_weather' => 'Utilisation d\'un icône issu du service weather.com&reg; (nécessite une conversion approximative de la condition)',
     104        'label_icone' => 'Système d\'icônes',
    105105        'label_dernier_appel' => 'Dernier appel',
    106106        'label_format_json' => 'JSON',
  • _plugins_/rainette/trunk/paquet.xml

    r108193 r108194  
    22        prefix="rainette"
    33        categorie="divers"
    4         version="3.4.5"
     4        version="3.4.6"
    55        etat="stable"
    66        compatibilite="]3.1.3;3.2.*]"
  • _plugins_/rainette/trunk/prive/squelettes/contenu/configurer_rainette.html

    r108180 r108194  
    22<h1 class="grostitre"><:rainette:titre_page_configurer:></h1>
    33
    4 [(#SET{configurer, [(#ENV{type-page})_[(#ENV{service, weather})]]})]
    54[<div class='ajax'>(#FORMULAIRE_CONFIGURER_RAINETTE_SERVICE{#ENV{service, weather}})</div>]
  • _plugins_/rainette/trunk/services/apixu.php

    r108180 r108194  
    407407                }
    408408
    409                 // Determination, suivant le mode choisi, du code, de l'icone et du resume qui seront affiches
     409                // Détermination du résumé à afficher.
     410                // Depuis la 3.4.6 on affiche plus que le résumé natif de chaque service car les autres services
     411                // que weather.com possèdent de nombreuses traductions qu'il convient d'utiliser.
     412                // Pour éviter de modifier la structure de données, on conserve donc desc_meteo et resume même si
     413                // maintenant ces deux données coincident toujours.
     414                $tableau['resume'] = ucfirst($tableau['desc_meteo']);
     415
     416                // Determination de l'icone qui sera affiché.
    410417                if ($configuration['condition'] == $configuration['alias']) {
    411                         // On affiche les conditions natives fournies par le service.
    412                         // Pour le resume, apixu fournit la traduction dans un item différent que pour les autres services.
    413                         // Cet item est stocké dans 'trad_meteo'.
     418                        // On affiche l'icône natif fourni par le service.
    414419                        $tableau['icone']['code'] = $tableau['code_meteo'];
    415420                        $tableau['icone']['url'] = copie_locale($tableau['icon_meteo']);
    416                         $tableau['resume'] = ucfirst($tableau['desc_meteo']);
    417421                } else {
    418                         // On affiche les conditions traduites dans le système weather.com
     422                        // On affiche l'icône correspondant au code météo transcodé dans le système weather.com.
    419423                        $meteo = meteo_apixu2weather($tableau['code_meteo'], $tableau['periode']);
    420424                        $tableau['icone'] = $meteo;
    421                         $tableau['resume'] = $meteo;
    422425                }
    423426        }
  • _plugins_/rainette/trunk/services/owm.php

    r108190 r108194  
    401401                }
    402402
    403                 // Determination, suivant le mode choisi, du code, de l'icone et du resume qui seront affiches
     403                // Détermination du résumé à afficher.
     404                // Depuis la 3.4.6 on affiche plus que le résumé natif de chaque service car les autres services
     405                // que weather.com possèdent de nombreuses traductions qu'il convient d'utiliser.
     406                // Pour éviter de modifier la structure de données, on conserve donc desc_meteo et resume même si
     407                // maintenant ces deux données coincident toujours.
     408                $tableau['resume'] = ucfirst($tableau['desc_meteo']);
     409
     410                // Determination de l'icone qui sera affiché.
    404411                if ($configuration['condition'] == $configuration['alias']) {
    405                         // On affiche les conditions natives fournies par le service.
    406                         // Celles-ci etant deja traduites dans la bonne langue on stocke le texte exact retourne par l'API
     412                        // On affiche l'icône natif fourni par le service.
    407413                        $tableau['icone']['code'] = $tableau['code_meteo'];
    408414                        $url = _RAINETTE_OWM_URL_BASE_ICONE . '/' . $tableau['icon_meteo'] . '.png';
    409415                        $tableau['icone']['url'] = copie_locale($url);
    410                         $tableau['resume'] = ucfirst($tableau['desc_meteo']);
    411416                } else {
    412                         // On affiche les conditions traduites dans le systeme weather.com
    413                         // Pour le resume on stocke le code et non la traduction pour eviter de generer
    414                         // un cache par langue comme pour le mode natif. La traduction est faite via les fichiers de langue
     417                        // On affiche l'icône correspondant au code météo transcodé dans le système weather.com.
    415418                        $meteo = meteo_owm2weather($tableau['code_meteo'], $tableau['periode']);
    416419                        $tableau['icone'] = $meteo;
    417                         $tableau['resume'] = $meteo;
    418420                }
    419421        }
  • _plugins_/rainette/trunk/services/weather.php

    r108180 r108194  
    154154 * @param string $mode
    155155 *
    156  * @return string
     156 * @return array
    157157 */
    158158function weather_service2configuration($mode) {
  • _plugins_/rainette/trunk/services/weatherbit.php

    r108180 r108194  
    402402                }
    403403
    404                 // Determination, suivant le mode choisi, du code, de l'icone et du resume qui seront affiches
     404                // Détermination du résumé à afficher.
     405                // Depuis la 3.4.6 on affiche plus que le résumé natif de chaque service car les autres services
     406                // que weather.com possèdent de nombreuses traductions qu'il convient d'utiliser.
     407                // Pour éviter de modifier la structure de données, on conserve donc desc_meteo et resume même si
     408                // maintenant ces deux données coincident toujours.
     409                $tableau['resume'] = ucfirst($tableau['desc_meteo']);
     410
     411                // Determination de l'icone qui sera affiché.
    405412                if ($configuration['condition'] == $configuration['alias']) {
    406                         // On affiche les conditions natives fournies par le service.
    407                         // L'icône est un png pour lequel il est nécessaire de construire l'url car elle n'est pas directement
    408                         // fournie par le service.
     413                        // On affiche l'icône natif fourni par le service.
    409414                        // TODO : Weatherbit conseille d'utiliser des images stockées en local.
    410415                        $tableau['icone']['code'] = $tableau['code_meteo'];
    411416                        $url = _RAINETTE_WEATHERBIT_URL_BASE_ICONE . '/' . $tableau['icon_meteo'] . '.png';
    412417                        $tableau['icone']['url'] = copie_locale($url);
    413                         $tableau['resume'] = ucfirst($tableau['desc_meteo']);
    414418                } else {
    415                         // On affiche les conditions traduites dans le système weather.com
     419                        // On affiche l'icône correspondant au code météo transcodé dans le système weather.com.
    416420                        $meteo = meteo_weatherbit2weather($tableau['code_meteo'], $tableau['periode']);
    417421                        $tableau['icone'] = $meteo;
    418                         $tableau['resume'] = $meteo;
    419422                }
    420423        }
  • _plugins_/rainette/trunk/services/wunderground.php

    r108193 r108194  
    478478                }
    479479
    480                 // Determination, suivant le mode choisi, du code, de l'icone et du resume qui seront affiches
     480                // Détermination du résumé à afficher.
     481                // Depuis la 3.4.6 on affiche plus que le résumé natif de chaque service car les autres services
     482                // que weather.com possèdent de nombreuses traductions qu'il convient d'utiliser.
     483                // Pour éviter de modifier la structure de données, on conserve donc desc_meteo et resume même si
     484                // maintenant ces deux données coincident toujours.
     485                $tableau['resume'] = ucfirst($tableau['desc_meteo']);
     486
     487                // Determination de l'icone qui sera affiché.
    481488                if ($configuration['condition'] == $configuration['alias']) {
    482                         // On affiche les conditions natives fournies par le service.
    483                         // Celles-ci étant déjà traduites dans la bonne langue on stocke le texte exact retourné par l'API.
     489                        // On affiche l'icône natif fourni par le service.
    484490                        $tableau['icone']['code'] = $tableau['code_meteo'];
    485491                        $url = _RAINETTE_WUNDERGROUND_URL_BASE_ICONE . '/' . $configuration['theme'] . '/' . $icone;
    486492                        $tableau['icone']['url'] = copie_locale($url);
    487                         $tableau['resume'] = ucfirst($tableau['desc_meteo']);
    488493                } else {
    489                         // On affiche les conditions traduites dans le système weather.com
    490                         // Pour le resume on stocke le code et non la traduction pour éviter de générer
    491                         // un cache par langue comme pour le mode natif. La traduction est faite via les fichiers de langue
     494                        // On affiche l'icône correspondant au code météo transcodé dans le système weather.com.
    492495                        $meteo = meteo_wunderground2weather($tableau['code_meteo'], $tableau['periode']);
    493496                        $tableau['icone'] = $meteo;
    494                         $tableau['resume'] = $meteo;
    495497                }
    496498        }
  • _plugins_/rainette/trunk/services/wwo.php

    r108181 r108194  
    417417                }
    418418
    419                 // Determination, suivant le mode choisi, du code, de l'icone et du resume qui seront affiches
     419                // Détermination du résumé à afficher.
     420                // Depuis la 3.4.6 on affiche plus que le résumé natif de chaque service car les autres services
     421                // que weather.com possèdent de nombreuses traductions qu'il convient d'utiliser.
     422                // Pour éviter de modifier la structure de données, on conserve donc desc_meteo et resume même si
     423                // maintenant ces deux données coincident toujours.
     424                // Pour wwo, la description est dans trad_meteo et non dans desc_meteo.
     425                $tableau['resume'] = ucfirst($tableau['trad_meteo']);
     426
     427                // Determination de l'icone qui sera affiché.
    420428                if ($configuration['condition'] == $configuration['alias']) {
    421                         // On affiche les conditions natives fournies par le service.
    422                         // Pour le resume, wwo fournit la traduction dans un item différent que pour les autres services.
    423                         // Cet item est stocké dans trad_meteo.
     429                        // On affiche l'icône natif fourni par le service.
    424430                        $tableau['icone']['code'] = $tableau['code_meteo'];
    425431                        $tableau['icone']['url'] = copie_locale($tableau['icon_meteo']);
    426                         $tableau['resume'] = ucfirst($tableau['trad_meteo']);
    427432                } else {
    428                         // On affiche les conditions traduites dans le systeme weather.com
     433                        // On affiche l'icône correspondant au code météo transcodé dans le système weather.com.
    429434                        $meteo = meteo_wwo2weather($tableau['code_meteo'], $tableau['periode']);
    430435                        $tableau['icone'] = $meteo;
    431                         $tableau['resume'] = $meteo;
    432436                }
    433437        }
Note: See TracChangeset for help on using the changeset viewer.