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 ...@@ -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'])); $id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'dir_module = ' . sql_quote($source['dir_module']));
if (!$id_tradlang_module) { if (!$id_tradlang_module) {
salvatore_fail("[Ecriveur] Erreur sur $module", "Erreur : export impossible, le module n'est pas en base\n"); 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 de l'interface de traduction d'un module
$url_trad_module = url_absolue(generer_objet_url($id_tradlang_module, 'tradlang_module'), $url_gestionnaire); $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); $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 ...@@ -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>"); salvatore_log("<error>Le module #$id_tradlang_module $module n'existe pas</error>");
return false; return false;
} }
$lang_ref = $row_module['lang_mere']; $lang_ref = $row_module['lang_mere'];
$dir_module = $dir_modules . $row_module['dir_module']; $dir_module = $dir_modules . $row_module['dir_module'];
$module = $row_module['module']; $module = $row_module['module'];
$type_export = $row_module['type_export'];
if (is_numeric($row_module['limite_trad']) && $row_module['limite_trad'] > 0) { if (is_numeric($row_module['limite_trad']) && $row_module['limite_trad'] > 0) {
$seuil_export = $row_module['limite_trad']; $seuil_export = $row_module['limite_trad'];
} } else {
else {
$seuil_export = lire_config('tradlang/seuil_export_tradlang', _SALVATORE_SEUIL_EXPORT); $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 ...@@ -206,7 +206,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
$comment = ' # ' . trim($comment); // on rajoute les commentaires ? $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); $str = salvatore_nettoyer_chaine_langue($chaine['str'], $lang);
$newmd5 = md5($str); $newmd5 = md5($str);
...@@ -221,7 +221,13 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url ...@@ -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"); 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 // noter la langue et les traducteurs pour lang/module.xml
$people_unique = []; $people_unique = [];
...@@ -386,7 +392,13 @@ function salvatore_clean_comment($comment) { ...@@ -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 $dir_module
* @param string $module * @param string $module
* @param string $lang * @param string $lang
...@@ -395,7 +407,7 @@ function salvatore_clean_comment($comment) { ...@@ -395,7 +407,7 @@ function salvatore_clean_comment($comment) {
* @param $origin * @param $origin
* @return string * @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_name = $dir_module . '/' . $module . '_' . $lang . '.php';
$file_content = '<?php $file_content = '<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP // 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, ...@@ -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 * Lire la date de derniere modif d'un fichier de langue
* @param string $file_name * @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