În Drupal 7, a existat drupal_get_title()
și drupal_set_title()
. Ei sunt istorie.
Vreau să modific titlul paginii „Creați X” în „Adăugați X” pentru toate X și cred hook_preprocess_page_title()
în fișierul meu .theme este locul potrivit pentru a face acest lucru. (Dacă nu sunteți de acord, vă rugăm să spuneți.)
i.e. Vreau să fie „Adăugați X” pentru orice „X” atunci când inițial a fost „Creați X”. De exemplu: „Creați articol” ar trebui să devină „Adăugați articol”. Și dacă titlul este „Articol de bar”, ar trebui să rămân așa.
Practic, vreau să adulmec șirul de titlu și dacă începe cu „Creare”, îl modific în „Adăugați”. Acesta este până acum am obținut și acesta este evident incomplet:
/**
* Implementează hook_preprocess_page_title().
*/
Prima incercare:
funcția mytheme_preprocess_page_title(&$variabile) {
$cerere = \Drupal::cerere();
$route_match = \Drupal::routeMatch();
$titlu = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
}
A doua încercare, bazată pe sugestia 4k4:
funcția mytheme_preprocess_page_title(&$variabile) {
$titlu = $variabile['titlu'];
if ($title instance of TranslatableMarkup) {
$titlu = $titlu->getUntranslatedString();
$title = str_replace('Creați', 'Adăugați', $titlu);
$variabile['titlu'] = t($titlu);
}
else {
$variables['title'] = Markup::create(str_replace('Create', 'Add', $title));
}
}
Titlurile pe care vreau să le schimb provin din nucleul Drupal și sunt traducibile, așa că este instanceof TranslatableMarkup
ramură care este executată, dar sunt de acord cu o rezervă în cazul în care nu sunt, este o idee bună.
Cu toate acestea, deși este un început bun, aceasta nu este o soluție completă. Schimbă titlul redat al formularului de adăugare a articolului din „Creați articol” în „Adăugați @nume”.
Am votat răspunsul cu 4k4, deoarece merge mult mai departe spre o soluție decât prima mea încercare, dar încă nu este complet.
Nu vreau să folosesc Anulări șiruri din mai multe motive, mai ales pentru că această temă ar trebui să funcționeze peste traduceri fără a necesita configurație suplimentară atunci când este implementată.