Valider 846899e1 rédigé par Eric Lupinacci's avatar Eric Lupinacci
Parcourir les fichiers

Ajout d'un var_mode=traduction.

Ce nouveau var_mode permet :
- de surligner les chaines de langues traduites en ajoutant une bulle d'info donnant l'item source et la langue de traduction
- de faire clignoter en rouge les items de langue inexistants (comme l'option du plugin dev, néanmoins ce var_mode ne nécessite pas le plugin dev).
Les fonctions modifiées sont uniquement inc_traduire_dist et _L pour insérer les enrichissements et initi_var_mode pour imposer l'option calcul et nocache pour ce var_mode.
parent f07c8761
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+16 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -197,7 +197,7 @@ function inc_traduire_dist($ori, $lang) {
	static $deja_vu = array();
	static $local = array();

	if (isset($deja_vu[$lang][$ori]))
	if (isset($deja_vu[$lang][$ori]) AND (_request('var_mode') != 'traduction'))
		return $deja_vu[$lang][$ori];

	// modules demandes explicitement <xxx|yyy|zzz:code> cf MODULES_IDIOMES
@@ -241,12 +241,17 @@ function inc_traduire_dist($ori, $lang) {

	// Retour aux sources si la chaine est absente dans la langue cible ;
	// on essaie d'abord la langue du site, puis a defaut la langue fr
	$langue_retenue = $lang;
	if (!strlen($text)
	AND $lang !== 'fr') {
		if ($lang !== $GLOBALS['meta']['langue_site'])
		if ($lang !== $GLOBALS['meta']['langue_site']) {
			$text = inc_traduire_dist($ori, $GLOBALS['meta']['langue_site']);
		else 
			$langue_retenue = (!strlen($text) ? $GLOBALS['meta']['langue_site'] : '');
		}
		else {
			$text = inc_traduire_dist($ori, 'fr');
			$langue_retenue = (!strlen($text) ? 'fr' : '');
		}
	}

	// Supprimer la mention <NEW> ou <MODIF>
@@ -261,7 +266,14 @@ function inc_traduire_dist($ori, $lang) {
		$text = charset2unicode($text,'utf-8');
	}

	if (_request('var_mode') == 'traduction') {
		if ($text)  {
			$text = '<span lang=' . $langue_retenue . ' style=background-color:#cde0ed;color:#0000ff; title=' . $ori . '(' . $langue_retenue . ')>' . $text . '</span>';
		}
	}
	else {
		$deja_vu[$lang][$ori] = $text;
	}

	return $text;
}
+9 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -666,8 +666,8 @@ function _L($text, $args=array(), $class=null) {
		if ($args) spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)),_LOG_DEBUG);
	}

	if ($GLOBALS['test_i18n'] AND $class===null)
		return "<blink style='color:red;'>$text</blink>";
	if (($GLOBALS['test_i18n'] OR (_request('var_mode') == 'traduction')) AND $class===null)
		return "<blink style=color:red;>$text</blink>";
	else
		return $text;
}
@@ -2117,7 +2117,7 @@ function init_var_mode(){
				if (!defined('_VAR_MODE')) define('_VAR_MODE',$_GET['var_mode']);
			}
			// preview, debug, blocs, urls et images necessitent une autorisation
			else if (in_array($_GET['var_mode'],array('preview','debug','inclure','urls','images'))) {
			else if (in_array($_GET['var_mode'],array('preview','debug','inclure','urls','images','traduction'))) {
				include_spip('inc/autoriser');
				if (autoriser(
					($_GET['var_mode'] == 'preview')
@@ -2125,6 +2125,12 @@ function init_var_mode(){
						: 'debug'
				)) {
					switch($_GET['var_mode']){
						case 'traduction':
							// forcer le calcul pour passer dans traduire
							if (!defined('_VAR_MODE')) define('_VAR_MODE','calcul');
							// et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages
							if (!defined('_VAR_NOCACHE')) define('_VAR_NOCACHE',true);
							break;
						case 'preview':
							// basculer sur les criteres de preview dans les boucles
							if (!defined('_VAR_PREVIEW')) define('_VAR_PREVIEW',true);