Changeset 118766 in spip-zone


Ignore:
Timestamp:
Nov 27, 2019, 8:36:39 AM (12 days ago)
Author:
gouz@…
Message:

ajout d'un controleur traduction pour crayonner les chaines de langues du type <:motif_a_traduire:>, activable avec ?var_mode=traduction

Location:
_plugins_/crayons/trunk
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/crayons/trunk/action/crayons_store.php

    r118549 r118766  
    524524}
    525525
     526/**
     527 * Enregistre les modifications dans un fichier de langue
     528 * suite à un crayon sur une chaine de langue
     529 *
     530 *
     531 * @param string $a
     532 *   Nom ou clé du module de langue
     533 * @param bool|array $c
     534 *   Liste des champs modifiés
     535 *   'motif_chaine_traduction' => valeur saisie
     536 * @return void
     537**/
     538function revision_traduction($a, $c = false) {
     539  if (  $a == "public" && ! test_espace_prive() ) $a="local";
     540        if ( $fichier_lang = find_in_path("lang/".$a."_".substr($GLOBALS['idx_lang'],-2).".php") ){
     541    foreach ($c as $key => $value){
     542      $GLOBALS[$GLOBALS['idx_lang']][$key] = $value;
     543      spip_log("revision_traduction(): MAJ motif langue $key dans $fichier_lang", _LOG_INFO_IMPORTANTE);
     544    }
     545    // TODO : enregistrer la modification dans le fichier de langue
     546    $contenu_original = file_get_contents($fichier_lang);
     547    $contenu_modifie = "<?php\nif (!defined('_ECRIRE_INC_VERSION')) return;\n".'$GLOBALS[$GLOBALS[\'idx_lang\']] = array(';
     548    foreach ($GLOBALS[$GLOBALS['idx_lang']] as $key => $value){
     549      if ( strpos($contenu_original, "'$key'") !== false ){
     550        $contenu_modifie.= "'".$key."' => '".str_replace("'", "\'", $value)."',\n";
     551      } else {
     552        spip_log("clé de GLOBALS incohérente :  \$GLOBALS[".$GLOBALS['idx_lang']."][$key] = ".$GLOBALS[$GLOBALS['idx_lang']][$key], _LOG_INFO_IMPORTANTE);
     553      }
     554    }
     555    $contenu_modifie .=');';   
     556    include_spip('inc/flock');
     557    ecrire_fichier($fichier_lang, $contenu_modifie);
     558  }
     559}
    526560
    527561// TODO:
  • _plugins_/crayons/trunk/inc/crayons.php

    r118554 r118766  
    507507}
    508508
     509/**
     510 * Extrait la valeur d'une chaine de langue
     511 *
     512 * @param string $table
     513 *   Nom de la """table""" (traduction)
     514 * @param array $motifs
     515 *   Motifs a traduire
     516 * @param string $module
     517 *   Module de langue
     518 * @return array
     519 *   Couple motif_chaine_de_langue => valeur traduite
     520**/
     521function traduction_valeur_colonne_table_dist($table, $motifs, $module) {
     522        $valeur = _T("$module:$motifs[0]");
     523        return array($motifs[0] => $valeur);
     524}
     525
    509526
    510527function return_log($var) {
Note: See TracChangeset for help on using the changeset viewer.