Files
thalim-theme/js/admin/admin-rename.js

78 lines
3.0 KiB
JavaScript

/**
* Renomme « Article » en « Annonce » dans l'interface admin (toutes pages).
* Dépend de admin-base.js (window.ThalimAdmin).
*/
(function() {
'use strict';
var TA = window.ThalimAdmin;
function renameArticlesToAnnonces() {
const replacements = [
[/Tous les articles/g, 'Toutes les annonces'],
[/Ajouter un article/g, 'Ajouter une annonce'],
[/Modifier l.article/g, "Modifier l'annonce"],
[/Prévisualiser l.article/g, "Prévisualiser l'annonce"],
[/Afficher l.article/g, "Afficher l'annonce"],
[/Voir l.article/g, "Voir l'annonce"],
[/Article publié/g, 'Annonce publiée'],
[/Article mis à jour/g, 'Annonce mise à jour'],
[/Article planifié/g, 'Annonce planifiée'],
[/Articles par page/g, 'Annonces par page'],
[/Articles/g, 'Annonces'],
[/Article/g, 'Annonce'],
[/Rechercher des articles/g, 'Rechercher des annonces'],
];
function applyReplacements(text) {
return replacements.reduce((t, [s, r]) => t.replace(s, r), text);
}
function replaceInTextNodes(el) {
if (!el) return;
const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT);
const nodes = [];
while (walker.nextNode()) nodes.push(walker.currentNode);
nodes.forEach(function(node) {
const replaced = applyReplacements(node.textContent);
if (replaced !== node.textContent) node.textContent = replaced;
});
}
// Menu latéral
replaceInTextNodes(document.querySelector('#menu-posts'));
// Titre de page (h1) et bouton d'ajout
document.querySelectorAll('.wp-heading-inline, .page-title-action').forEach(replaceInTextNodes);
// Notifications après sauvegarde (Article publié, mis à jour…)
document.querySelectorAll('#message, .notice').forEach(replaceInTextNodes);
// Boîte de publication — lien "Voir l'article"
replaceInTextNodes(document.querySelector('.submitbox'));
// Options d'écran — "Articles par page"
replaceInTextNodes(document.querySelector('#screen-options-wrap'));
// Bouton de recherche (attribut value + aria-label)
var searchSubmit = document.querySelector('#search-submit');
if (searchSubmit) {
if (searchSubmit.value) {
searchSubmit.value = applyReplacements(searchSubmit.value);
}
var ariaLabel = searchSubmit.getAttribute('aria-label');
if (ariaLabel) {
searchSubmit.setAttribute('aria-label', applyReplacements(ariaLabel));
}
}
// Titre de l'onglet du navigateur
document.title = applyReplacements(document.title);
}
document.addEventListener('DOMContentLoaded', function() {
TA.safeRun('renameArticlesToAnnonces', renameArticlesToAnnonces);
});
})();