Skip to content
Extraits de code Groupes Projets
Valider 84337960 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

feat: Prévoir l’écriture spip5 des fichiers de langue par Salvatore

parent a3447e48
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -76,8 +76,7 @@ function salvatore_ecrire($liste_sources, $message_commit = '', $dir_modules = n
$id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'dir_module = ' . sql_quote($source['dir_module']));
if (!$id_tradlang_module) {
salvatore_fail("[Ecriveur] Erreur sur $module", "Erreur : export impossible, le module n'est pas en base\n");
}
else {
} else {
// url de l'interface de traduction d'un module
$url_trad_module = url_absolue(generer_objet_url($id_tradlang_module, 'tradlang_module'), $url_gestionnaire);
$nb = salvatore_exporter_module($id_tradlang_module, $source, $url_gestionnaire, $url_trad_module, $dir_modules, $dir_depots, $message_commit);
......@@ -119,14 +118,15 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
salvatore_log("<error>Le module #$id_tradlang_module $module n'existe pas</error>");
return false;
}
$lang_ref = $row_module['lang_mere'];
$dir_module = $dir_modules . $row_module['dir_module'];
$module = $row_module['module'];
$type_export = $row_module['type_export'];
if (is_numeric($row_module['limite_trad']) && $row_module['limite_trad'] > 0) {
$seuil_export = $row_module['limite_trad'];
}
else {
} else {
$seuil_export = lire_config('tradlang/seuil_export_tradlang', _SALVATORE_SEUIL_EXPORT);
}
......@@ -206,7 +206,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
$comment = ' # ' . trim($comment); // on rajoute les commentaires ?
}
// nettoyger la chaine de langue et calcul du md5
// nettoyer la chaine de langue et calcul du md5
$str = salvatore_nettoyer_chaine_langue($chaine['str'], $lang);
$newmd5 = md5($str);
......@@ -221,7 +221,13 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
}
salvatore_log(' - traduction (' . $total_chaines['OK'] . "/$count_trad_reference OK | " . $total_chaines['RELIRE'] . "/$count_trad_reference RELIRE | " . $total_chaines['MODIF'] . "/$count_trad_reference MODIFS), export");
$file_name = salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines, $url_trad_module, ($lang == $lang_ref) ? $url_repo : false);
$salvatore_exporter_fichier_php = 'salvatore_exporter_fichier_php_' . $type_export;
if (!function_exists($salvatore_exporter_fichier_php)) {
salvatore_log("<error>Pas de fonction pour l’export '$type_export'</error>");
$salvatore_exporter_fichier_php = 'salvatore_exporter_fichier_php_spip5';
}
$file_name = $salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines, $url_trad_module, ($lang == $lang_ref) ? $url_repo : false);
// noter la langue et les traducteurs pour lang/module.xml
$people_unique = [];
......@@ -386,7 +392,13 @@ function salvatore_clean_comment($comment) {
/**
* Generer un fichier de langue a partir de ses lignes php
* Generer un fichier de langue (SPIP < 5) a partir de ses lignes php
*
* À partir de SPIP 4.1, les fichiers de langues SPIP peuvent retourner
* directement un array (plus propre que de peupler une globale).
* Cette méthode d’écriture sera donc à déprécier / supprimer dans quelques années
* pour utiliser uniquement `spip5`
*
* @param string $dir_module
* @param string $module
* @param string $lang
......@@ -395,7 +407,7 @@ function salvatore_clean_comment($comment) {
* @param $origin
* @return string
*/
function salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines, $url_trad_module, $origin) {
function salvatore_exporter_fichier_php_spip($dir_module, $module, $lang, $php_lines, $url_trad_module, $origin) {
$file_name = $dir_module . '/' . $module . '_' . $lang . '.php';
$file_content = '<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
......@@ -431,6 +443,37 @@ function salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines,
}
/**
* Generer un fichier de langue (SPIP >= 4.1) a partir de ses lignes php
* @param string $dir_module
* @param string $module
* @param string $lang
* @param array $php_lines
* @param string $url_trad_module
* @param $origin
* @return string
*/
function salvatore_exporter_fichier_php_spip5($dir_module, $module, $lang, $php_lines, $url_trad_module, $origin) {
$file_name = $dir_module . '/' . $module . '_' . $lang . '.php';
$file_content = '<?php' . "\n";
$file_content .= '// This is a SPIP language file -- Ceci est un fichier langue de SPIP' . "\n";
if ($origin) {
$file_content .= '// Fichier source, a modifier dans ' . $origin . "\n\n";
} else {
$url_trad_module = parametre_url($url_trad_module, 'lang_cible', $lang, '&');
$file_content .= '// extrait automatiquement de ' . $url_trad_module . "\n";
$file_content .= '// ** ne pas modifier le fichier **' . "\n\n";
}
$file_content .= 'return [' . "\n" . implode("\n", $php_lines) . "\n];\n";
file_put_contents($file_name, $file_content);
// et on fixe le chmod au passage
chmod($file_name, 0644);
return $file_name;
}
/**
* Lire la date de derniere modif d'un fichier de langue
* @param string $file_name
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter