blog translates in progress

This commit is contained in:
Fred Tempez 2023-01-23 15:44:11 +01:00
parent ad6fac8450
commit ed0e882ce3
6 changed files with 269 additions and 30 deletions

View File

@ -458,6 +458,18 @@ class common
}
self::$dialog = json_decode(file_get_contents(self::I18N_DIR . self::$i18nUI . '.json'), true);
// Dialogue du module
if ($this->getData(['page', $this->getUrl(0), 'moduleId'])) {
$moduleId = $this->getData(['page', $this->getUrl(0), 'moduleId']);
if (
is_dir(self::MODULE_DIR . $moduleId . '/i18n')
&& file_exists(self::MODULE_DIR . $moduleId . '/i18n/' . self::$i18nUI . '.json')
) {
$d = json_decode(file_get_contents(self::MODULE_DIR . $moduleId . '/i18n/' . self::$i18nUI . '.json'), true);
self::$dialog = array_merge(self::$dialog, $d);
}
}
// Mise à jour des données core
if ($this->getData(['core', 'dataVersion']) !== intval(str_replace('.', '', self::ZWII_VERSION))) include('core/include/update.inc.php');
@ -3047,14 +3059,6 @@ class core extends common
if (array_key_exists($action, $module::$actions)) {
$module->$action();
$output = $module->output;
// Dialogues du module
if (
is_dir(self::MODULE_DIR . $moduleId . '/i18n')
&& file_exists(self::MODULE_DIR . $moduleId . '/i18n/' . self::$i18nUI . '.json')
) {
$d = json_decode(file_get_contents(self::MODULE_DIR . $moduleId . '/i18n/' . self::$i18nUI . '.json'), true);
self::$dialog = array_merge(self::$dialog, $d);
}
// Check le groupe de l'utilisateur
if (
($module::$actions[$action] === self::GROUP_VISITOR

View File

@ -255,7 +255,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Nouvel article créé',
'notification' => helper::translate('Nouvel article créé'),
'state' => true
]);
}
@ -268,7 +268,7 @@ class blog extends common
unset($userFirstname);
// Valeurs en sortie
$this->addOutput([
'title' => 'Nouvel article',
'title' => helper::translate('Rédiger un article'),
'vendor' => [
'flatpickr',
'tinymce',
@ -287,7 +287,6 @@ class blog extends common
self::$commentsDelete = template::button('blogCommentDeleteAll', [
'class' => 'blogCommentDeleteAll buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/commentDeleteAll/' . $this->getUrl(2) . '/' . $_SESSION['csrf'],
'ico' => 'trash',
'value' => 'Tout effacer'
]);
// Ids des commentaires par ordre de création
@ -308,7 +307,8 @@ class blog extends common
$buttonApproval = template::button('blogCommentApproved' . $commentIds[$i], [
'class' => $comment['approval'] === true ? 'blogCommentRejected buttonGreen' : 'blogCommentApproved buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/commentApprove/' . $this->getUrl(2) . '/' . $commentIds[$i] . '/' . $_SESSION['csrf'],
'value' => $comment['approval'] === true ? 'A' : 'R'
'value' => $comment['approval'] === true ? 'A' : 'R',
'help' => $comment['approval'] === true ? 'Approuvé' : 'Rejetté',
]);
}
self::$comments[] = [
@ -325,7 +325,7 @@ class blog extends common
}
// Valeurs en sortie
$this->addOutput([
'title' => 'Gestion des commentaires : ' . $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(2), 'title']),
'title' => helper::translate('Gestion des commentaires'),
'view' => 'comment'
]);
}
@ -347,7 +347,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Action interdite'
'notification' => helper::translate('Action interdite')
]);
}
// Suppression
@ -356,7 +356,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/comment/' . $this->getUrl(2),
'notification' => 'Commentaire supprimé',
'notification' => helper::translate('Commentaire supprimé'),
'state' => true
]);
}
@ -381,7 +381,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/comment',
'notification' => 'Commentaires supprimés',
'notification' => helper::translate('Commentaires supprimés'),
'state' => true
]);
}
@ -404,7 +404,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Action interdite'
'notification' => helper::translate('Action interdite')
]);
}
// Inversion du statut
@ -421,7 +421,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/comment/' . $this->getUrl(2),
'notification' => $approved ? 'Commentaire approuvé' : 'Commentaire rejeté',
'notification' => $approved ? helper::translate('Commentaire approuvé') : helper::translate('Commentaire rejeté'),
'state' => $approved
]);
}
@ -491,20 +491,18 @@ class blog extends common
]),
template::button('blogConfigEdit' . $articleIds[$i], [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $articleIds[$i] . '/' . $_SESSION['csrf'],
'value' => template::ico('pencil'),
'help' => 'Éditer l\'article'
'value' => template::ico('pencil')
]),
template::button('blogConfigDelete' . $articleIds[$i], [
'class' => 'blogConfigDelete buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $articleIds[$i] . '/' . $_SESSION['csrf'],
'value' => template::ico('trash'),
'help' => 'Effacer l\'article'
'value' => template::ico('trash')
])
];
}
// Valeurs en sortie
$this->addOutput([
'title' => 'Configuration du module',
'title' => helper::translate('Configuration du module'),
'view' => 'config'
]);
}
@ -525,13 +523,13 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/option',
'notification' => 'Modifications enregistrées',
'notification' => helper::translate('Modifications enregistrées'),
'state' => true
]);
}
// Valeurs en sortie
$this->addOutput([
'title' => 'Options de configuration',
'title' => helper::translate('Paramètres'),
'view' => 'option'
]);
}
@ -553,7 +551,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Action interdite'
'notification' => helper::translate('Action interdite')
]);
}
// Suppression
@ -562,7 +560,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Article supprimé',
'notification' => helper::translate('Article supprimé'),
'state' => true
]);
}
@ -578,7 +576,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Action non autorisée'
'notification' => helper::translate('Action interdite')
]);
}
// L'article n'existe pas
@ -634,7 +632,7 @@ class blog extends common
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => 'Modifications enregistrées',
'notification' => helper::translate('Modifications enregistrées'),
'state' => true
]);
}

79
module/blog/i18n/es.json Normal file
View File

@ -0,0 +1,79 @@
{
"Rédiger un article": "Escribir un artículo",
"Article supprimé": "",
"Aucun article": "Ningún artículo",
"Article complet en pleine page": "Artículo completo a plena página",
"Tableau : couverture + 200 signes": "Tabla: portada + 200 caracteres",
"Tableau : couverture + 400 signes": "Tabla: portada + 400 caracteres",
"Tableau : couverture + 600 signes": "Tabla: portada + 600 caracteres",
"Tableau : couverture + 800 signes": "Tabla: portada + 800 caracteres",
"Articles par page": "Artículos por página",
"1 article": "1 Artículo",
"2 articles": "2 Artículos",
"4 articles": "4 Artículos",
"6 articles": "6 Artículos",
"8 articles": "8 Artículos",
"10 articles": "10 Artículos",
"12 articles": "12 Artículos",
"Lien du flux RSS": "Enlace de fuente RSS",
"Texte de l'étiquette": "Texto de la etiqueta",
"Publier": "Publicar",
"Informations générales": "Información general",
"Permalink": "Enlace permanente",
"Taille optimale de l'image de couverture : 920 x 350 pixels.": "Tamaño de imagen de portada óptimo: 920 x 350 píxeles.",
"Image de couverture": "Imagen de portada",
"Largeur de l'image": "Ancho de la imagen",
"Très petite": "Muy pequeña",
"Petite": "Pequeña",
"Grande": "Grande",
"Très Grande": "Muy grande",
"Pleine largeur": "Anchura completa",
"Le texte de l'article est adapté autour de l'image": "El texto del artículo se envuelve alrededor de la imagen",
"À gauche": "A la izquierda",
"À droite ": "A la derecha",
"Masquer l'image dans l'article": "Ocultar imagen en la publicación",
"Options de publication": "Opciones de publicación",
"Auteur": "Autor",
"Date de publication": "Fecha de publicación",
"L'article n'est visible qu'après la date de publication prévue.": "El artículo solo es visible después de la fecha de publicación programada.",
"Edition - Suppression": "Editar Borrar",
"Les utilisateurs des groupes supérieurs accèdent à l'article sans restriction": "Los usuarios de grupos superiores pueden acceder al artículo sin restricción.",
"Tous les groupes": "Todos los grupos",
"Groupe du propriétaire": "Grupo de propietarios",
"Propriétaire": "Propietario",
"Commentaires": "Comentarios",
"Fermer les commentaires": "Cerrar los comentarios",
"Approbation par un modérateur": "Aprobación del moderador",
"Caractères par commentaire": "Caracteres por comentario",
"Choix du nombre maximum de caractères pour chaque commentaire de l'article, mise en forme html comprise.": "Elección del número máximo de caracteres para cada comentario del artículo, incluido el formato html",
"100 signes": "100 caracteres",
"250 signes": "250 caracteres",
"500 signes": "500 caracteres",
"750 signes": "750 caracteres",
"Notification par email": "Notificación por correo electrónico",
"Membre": "Miembro",
"Éditeur": "Editor",
"Administrateur": "Administrador",
"Éditer l'article": "Editar artículo",
"Effacer l'article": "Eliminar artículo",
"État": "Estado",
"Masquer l'image de couverture dans l'article": "Ocultar imagen de portada en el artículo",
"Supprimer le commentaire ?": "¿Borrar el comentario?",
"Approuver le commentaire ?": "¿Aprobar el comentario?",
"Rejeter le commentaire ?": "¿Rechazar el comentario?",
"Supprimer tous les commentaire ?": "¿Borrar todos los comentarios?",
"Supprimer cet article ?": "¿Borrar este artículo?",
"Aucun commentaire": "Sin comentarios",
"Index des articles": "Índice de artículos",
"Éditer / Approuver les commentaires": "",
"Commentaire approuvé": "",
"Commentaire rejeté": "",
"Commentaires supprimés": "",
"Brouillon": "",
"Nouvel article créé": "",
"Tout effacer": "",
"Approuvé": "",
"Rejetté": "",
"Commentaire supprimé": "",
"Gestion des commentaires": "Gestión de comentarios"
}

View File

@ -0,0 +1,79 @@
{
"Rédiger un article": "",
"Article supprimé": "",
"Aucun article": "",
"Article complet en pleine page": "",
"Tableau : couverture + 200 signes": "",
"Tableau : couverture + 400 signes": "",
"Tableau : couverture + 600 signes": "",
"Tableau : couverture + 800 signes": "",
"Articles par page": "",
"1 article": "",
"2 articles": "",
"4 articles": "",
"6 articles": "",
"8 articles": "",
"10 articles": "",
"12 articles": "",
"Lien du flux RSS": "",
"Texte de l'étiquette": "",
"Publier": "",
"Informations générales": "",
"Permalink": "",
"Taille optimale de l'image de couverture : 920 x 350 pixels.": "",
"Image de couverture": "",
"Largeur de l'image": "",
"Très petite": "",
"Petite": "",
"Grande": "",
"Très Grande": "",
"Pleine largeur": "",
"Le texte de l'article est adapté autour de l'image": "",
"À gauche": "",
"À droite ": "",
"Masquer l'image dans l'article": "",
"Options de publication": "",
"Auteur": "",
"Date de publication": "",
"L'article n'est visible qu'après la date de publication prévue.": "",
"Edition - Suppression": "",
"Les utilisateurs des groupes supérieurs accèdent à l'article sans restriction": "",
"Tous les groupes": "",
"Groupe du propriétaire": "",
"Propriétaire": "",
"Commentaires": "",
"Fermer les commentaires": "",
"Approbation par un modérateur": "",
"Caractères par commentaire": "",
"Choix du nombre maximum de caractères pour chaque commentaire de l'article, mise en forme html comprise.": "",
"100 signes": "",
"250 signes": "",
"500 signes": "",
"750 signes": "",
"Notification par email": "",
"Membre": "",
"Éditeur": "",
"Administrateur": "",
"Éditer l'article": "",
"Effacer l'article": "",
"État": "",
"Masquer l'image de couverture dans l'article": "",
"Supprimer le commentaire ?": "",
"Approuver le commentaire ?": "",
"Rejeter le commentaire ?": "",
"Supprimer tous les commentaire ?": "",
"Supprimer cet article ?": "",
"Aucun commentaire": "",
"Index des articles": "",
"Éditer / Approuver les commentaires": "",
"Commentaire approuvé": "",
"Commentaire rejeté": "",
"Gestion des commentaires": "",
"Commentaires supprimés": "",
"Brouillon": "",
"Nouvel article créé": "",
"Tout effacer": "",
"Approuvé": "",
"Rejetté": "",
"Commentaire supprimé": ""
}

View File

@ -0,0 +1,79 @@
{
"Supprimer le commentaire ?": "Διαγράψτε το σχόλιο;",
"Approuver le commentaire ?": "Εγκρίνετε το σχόλιο;",
"Rejeter le commentaire ?": "Απορρίπτετε το σχόλιο;",
"Supprimer tous les commentaire ?": "Να διαγράψετε όλα τα σχόλια;",
"Supprimer cet article ?": "Να διαγράψετε αυτό το άρθρο;",
"Aucun commentaire": "Κανένα σχόλιο",
"Index des articles": "Ευρετήριο άρθρων",
"Rédiger un article": "Γράψτε ένα άρθρο ",
"Aucun article": "κανένα άρθρο",
"Article complet en pleine page": "Άρθρο πλήρους σελίδας",
"Tableau : couverture + 200 signes": "Πίνακας: εξώφυλλο + 200 χαρακτήρες",
"Tableau : couverture + 400 signes": "Πίνακας: εξώφυλλο + 400 χαρακτήρες",
"Tableau : couverture + 600 signes": "Πίνακας: εξώφυλλο + 600 χαρακτήρες",
"Tableau : couverture + 800 signes": "Πίνακας: εξώφυλλο + 800 χαρακτήρες",
"Articles par page": "Άρθρα ανά σελίδα",
"1 article": "1 Άρθρο",
"2 articles": "2 Άρθρα",
"4 articles": "4 Άρθρα",
"6 articles": "6 Άρθρα",
"8 articles": "8 Άρθρα",
"10 articles": "10 Άρθρα",
"12 articles": "12 Άρθρα",
"Lien du flux RSS": "Σύνδεσμος τροφοδοσίας RSS",
"Texte de l'étiquette": "Κείμενο ετικέτας",
"Publier": "δημοσιεύστε το άρθρο",
"Informations générales": "Γενικές πληροφορίες",
"Permalink": "Μόνιμος σύνδεσμος",
"Taille optimale de l'image de couverture : 920 x 350 pixels.": "Βέλτιστο μέγεθος εικόνας εξωφύλλου: 920 x 350 pixels",
"Image de couverture": "εικόνα εξωφύλλου",
"Largeur de l'image": "Πλάτος εικόνας",
"Très petite": "Πολύ μικρη",
"Petite": "μικρη",
"Grande": "Μεγάλη",
"Très Grande": "Πολύ μεγάλη",
"Pleine largeur": "Πλήρες πλάτος",
"Le texte de l'article est adapté autour de l'image": "Το κείμενο του άρθρου τοποθετείται γύρω από την εικόνα",
"À gauche": "Αριστερά",
"À droite ": "Δεξιά",
"Masquer l'image dans l'article": "Απόκρυψη εικόνας στο άρθρο",
"Options de publication": "Επιλογές δημοσίευσης",
"Auteur": "Συγγραφέας",
"Date de publication": "ημερομηνία δημοσίευσης",
"L'article n'est visible qu'après la date de publication prévue.": "Το άρθρο είναι ορατό μόνο μετά την προγραμματισμένη ημερομηνία δημοσίευσης",
"Edition - Suppression": "Επεξεργασία - Διαγραφή",
"Les utilisateurs des groupes supérieurs accèdent à l'article sans restriction": "Οι χρήστες σε ανώτερες ομάδες έχουν απεριόριστη πρόσβαση στο άρθρο",
"Tous les groupes": "Όλες οι ομάδες",
"Groupe du propriétaire": "Ομάδα ιδιοκτήτη",
"Propriétaire": "Ιδιοκτήτης",
"Commentaires": "Σχόλια",
"Fermer les commentaires": "Κλείσιμο σχολίων",
"Approbation par un modérateur": "Έγκριση επόπτη",
"Caractères par commentaire": "Χαρακτήρες ανά σχόλιο",
"Choix du nombre maximum de caractères pour chaque commentaire de l'article, mise en forme html comprise.": "Επιλογή του μέγιστου αριθμού χαρακτήρων για κάθε σχόλιο του άρθρου, συμπεριλαμβανομένης της μορφοποίησης html.",
"100 signes": "100 χαρακτήρες",
"250 signes": "250 χαρακτήρες",
"500 signes": "500 χαρακτήρες",
"750 signes": "750 χαρακτήρες",
"Notification par email": "Ειδοποίηση ηλεκτρονικού ταχυδρομείου",
"Membre": "Μέλος",
"Éditeur": "Συντάκτης",
"Administrateur": "Διαχειριστής",
"Éditer l'article": "Επεξεργασία άρθρου",
"Effacer l'article": "Διαγραφή αντικειμένου",
"État": "κατάσταση ",
"Masquer l'image de couverture dans l'article": "Απόκρυψη της εικόνας εξωφύλλου στο άρθρο",
"Article supprimé": "",
"Éditer / Approuver les commentaires": "",
"Commentaire approuvé": "",
"Commentaire rejeté": "",
"Commentaires supprimés": "",
"Brouillon": "",
"Nouvel article créé": "",
"Tout effacer": "",
"Approuvé": "",
"Rejetté": "",
"Commentaire supprimé": "",
"Gestion des commentaires": ""
}

View File

@ -219,7 +219,7 @@ class form extends common {
}
// Valeurs en sortie
$this->addOutput([
'title' => 'Options de configuration',
'title' => helper::translate('Options de configuration'),
'vendor' => [
'html-sortable',
'flatpickr'