78 lines
3.0 KiB
JavaScript
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);
|
|
});
|
|
|
|
})();
|