Browse Source

modification du controleur/vue crayon/traduction pour enregistrement effectif de la traduction proposée si inexistante

pull/1/head
gouz@root-me.org 3 years ago
parent
commit
7799c0b2cb
  1. 2
      controleurs/traduction.html
  2. 12
      controleurs/traduction.php
  3. 10
      inc/crayons.php
  4. 2
      vues/traduction.html

2
controleurs/traduction.html

@ -3,7 +3,7 @@
]
[(#CACHE{0})]
<input class="crayon-active" name="content_#ENV{key}_#ENV{motif_langue}" style="width:#ENV{largeur}px;#ENV{style}" value="[(#ENV{value})]" />
<input class="crayon-active" name="content_#ENV{key}_#ENV{motif_langue}" style="width:#ENV{largeur}px;#ENV{style}" value="[(#ENV{value}|sinon{#ENV{traduction}})]" />

12
controleurs/traduction.php

@ -8,7 +8,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
// html == avec un modele, controleurs/traduction.html)
function controleurs_traduction_dist($regs) {
list(,$crayon,$type,$champ,$id,$classes) = $regs;
spip_log("controleurs_traduction_dist $champ", _LOG_INFO_IMPORTANTE);
$valeur = valeur_colonne_table($type, $id, $champ);
$n = new Crayon(
@ -18,6 +17,17 @@ function controleurs_traduction_dist($regs) {
);
$contexte = array('motif_langue' => $id, 'value'=>$valeur[$id]);
spip_log("$valeur = valeur_colonne_table($type, $id, $champ);", _LOG_INFO_IMPORTANTE);
include_spip("inc/traduire_texte");
if ( $contexte["value"] == '' && function_exists("traduire") ){
include_spip("inc/filtres");
$mod = substr($champ,0,-3);
$lang = substr($champ,-2);
$valeur_lang_site = _T("$mod:$id", array('spip_lang'=>$GLOBALS['meta']['langue_site']));
$traduction = textebrut(traduire($valeur_lang_site, $lang, $GLOBALS['meta']['langue_site']));
$contexte["traduction"] = $traduction;
}
$html = $n->formulaire($contexte);
$status = null;

10
inc/crayons.php

@ -522,13 +522,9 @@ function traduction_valeur_colonne_table_dist($table, $motifs, $module) {
$lang = substr($module,-2);
$mod = substr($module,0,-3);
$valeur = _T("$mod:$motifs[0]", array('spip_lang'=>$lang), array('force'=>false));
if ( $lang != $GLOBALS['meta']['langue_site']){ // vérifie qu'on n'utilise pas la traduction dans la langue par défaut
include_spip("inc/traduire_texte");
if ( function_exists("traduire") && $valeur == _T("$mod:$motifs[0]", array('spip_lang'=>$GLOBALS['meta']['langue_site'])) ){
include_spip("inc/filtres");
$valeur_traduite = traduire($valeur, $lang, $GLOBALS['meta']['langue_site']);
$valeur = textebrut($valeur_traduite);
}
// valeur vide si traduction trouvée dans la langue du site
if ( $lang != $GLOBALS['meta']['langue_site'] && $valeur == _T("$mod:$motifs[0]", array('spip_lang'=>$GLOBALS['meta']['langue_site'])) ){
$valeur='';
}
return array($motifs[0] => $valeur);
}

2
vues/traduction.html

@ -1,5 +1,5 @@
<?php
$i18n = 'i18n_[(#ENV{id_traduction}|texte_script)]';
$i18n = 'i18n_[(#ENV{hash}|texte_script)]';
$chaine = '[(#ENV{crayon_modele}|texte_script)]';
if ( isset($GLOBALS[$i18n]) && isset($GLOBALS[$i18n][$chaine]) ){
echo $GLOBALS[$i18n][$chaine];

Loading…
Cancel
Save