Puncte:2

Lac pe site multilingv

drapel uy

Am un site multilingv unde folosesc în majoritatea modulelor mele personalizate (fișiere .module) și în fișierul mycustomtheme.theme aceste linii de cod: \Drupal::languageManager()->getCurrentLanguage()->getId();

\Drupal::service('domain.negotiator')->getActiveId(); Vreau să instalez Varnish pe site-ul meu și știu că pot specifica unele URL-uri care să nu fie stocate în cache, cum ar fi, de exemplu, am specificat calea unui controler personalizat unde \Drupal::languageManager()->getCurrentLanguage()->getId(); este folosit pentru ca pagina aferentă acestui controler să nu fie memorată în cache. Cu toate acestea, nu știu ce să fac pentru toate fișierele .module în care am folosit această linie de cod. Are aceasta functie ->getCurrentLanguage()->getId(); au o cale specifică, astfel încât să pot specifica calea acesteia să fie ignorată de lac? PS: acest lucru este important deoarece unele caracteristici diferă de la un utilizator la altul în funcție de limba site-ului.

Puncte:2
drapel cn

Pentru trafic anonim nu getCurrentLanguage()->getId() este problema, este metoda de detectare a limbii. Nu este recomandată baza de browser.Pentru performanța memoriei cache, este o idee mai bună să redirecționați către metoda de detectare a limbii bazată pe cale după ce ați determinat limba browserului, de exemplu cu modulul Redirecţiona. Pentru aceasta, trebuie să configurați un prefix de limbă pentru toate limbile.

drapel uy
multumesc pentru raspuns.poti te rog sa detaliezi putin? Practic, folosesc această expresie nu pentru a redirecționa utilizatorul, ci doar pentru a-i detecta limbajul. Am deja un prefix de limbă, de exemplu /fr pentru franceză. dar în customtheme.theme-ul meu îl folosesc, de exemplu, în hook_page_attachments_alter sau în modulul personalizat pentru a trimite un anumit bloc pe baza limbii site-ului.. Îl folosesc foarte mult și mă tem că, dacă pagina este în cache, n toate utilizatorii vor vedea același bloc în aceeași limbă..
4uk4 avatar
drapel cn
După cum s-a spus, aceasta nu este problema. Tot ce este pe o pagină Drupal este traducabil, nu contează dacă adaugi un alt bloc translabil. Desigur, nu puteți redirecționa dintr-un cârlig sau bloc. Ai nevoie de un abonat la eveniment. Modulul Redirect ar fi o soluție fără cod, deoarece are deja un abonat la eveniment care redirecționează către calea canonică a unei pagini. Aceasta include prefixul de limbă. Prefixul trebuie configurat pentru toate limbile, de asemenea pentru limba implicită a site-ului, iar prioritatea în lista de detectare trebuie să fie mai mare decât detectarea browserului.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.