Clientul care comandă în engleză sau rusă primește confirmarea în română
Site-ul e în trei limbi. E-mailul de confirmare pe care îl primește clientul după ce trimite comanda e într-una singură: româna, scrisă direct în cod. Cine navighează pe /en sau /ru, adaugă în coș și trimite formularul, primește în inbox un mesaj pe care poate nu îl înțelege — și e primul lucru pe care i-l scrie magazinul.
Ce am găsit
backend/src/services/composeOrderConfirmation (email-service.ts) compune mesajul din texte fixe:
- subiect:
Confirmare comandă #1001 - titlu:
Mulțumim, am primit comanda ta #1001. - corp:
Te contactăm în curând la telefonul sau emailul lăsat, ca să confirmăm detaliile. - eyebrow:
CONFIRMARE COMANDĂ
Niciunul nu trece prin fișierele de traducere.
Cauza e mai jos de text: comanda nu reține limba în care a fost făcută. Modelul Order din backend/prisma/schema.prisma:596 are number, status, name, phone, email, comment și sumele — nicio coloană de limbă. Chiar dacă textele s-ar traduce mâine, backend-ul n-ar avea de unde să știe pe care s-o aleagă.
E-mailul care pleacă spre magazin (composeOrderNotification) rămâne în română oricum — îl citește Vitalie, nu clientul.
Ce cere
Trei bucăți, în ordine:
- O coloană
localepeOrder, scrisă din formularul de comandă (limba din URL). Migrație scrisă de mână, cuDEFAULT 'ro'pentru rândurile existente. - Textele de confirmare mutate în cele trei limbi. Ele nu sunt texte de interfață obișnuite: nu le citește browserul, ci serverul, deci merg pe conducta
dist/seo-strings.jsonsau pe una la fel, nu în pachetul pe care îl descarcă vizitatorul. - Traducerile propriu-zise în engleză și rusă — decizie de conținut, a lui Vitalie.
De ce nu s-a rezolvat în #22 (closed)
#22 (closed) a fost curățenie de cod. Textul ăsta nu e o scăpare de limbă în cod: e conținut văzut de client, deci intră la produs, nu la tehnic.
De făcut
-
Coloană localepeOrderplus migrație scrisă de mână, testată pe o copie -
Formularul de comandă trimite limba paginii -
Textele de confirmare în ro / en / ru, servite spre backend fără să intre în pachetul frontend-ului -
Test: o comandă trimisă de pe /enproduce un e-mail cu subiect englezesc; una de pe/rămâne exact cum e azi
Criteriu de acceptare
- O comandă de test de pe
/enși una de pe/ruproduc fiecare confirmarea în limba ei, verificat în căsuța reală. - O comandă de pe
/produce exact textul de azi, literă cu literă. - Comenzile din baza de date de dinainte de migrație rămân valide și se deschid în panou.