Task pentru experti

Salut,
am o problema si nu gasesc rezolvarea.
pe siteul meu vreau sa am functia de setare automata a tari (dupa IP) si a limbi (dupa limba browserului).
problema este ca doresc sa pot seta ulterior tara si limba si independent de aceaste functii automate.
Este posibil asa ceva?
Ioan,

Da.

3 Likes

Da. Cel mai simplui si rapid pentru identificare tara dupa IP ar fi sa iti faci cont de cloudflare (moca) pentru DNS si CDN… in spatele caruia sa stea site-ul tau.

Astfel:

  • cloduflare-ul va trimite ca header tara
  • site-ul poate citit acel header si sa il interpreteze cum vrea

Mai multe detalii despre implementare tin de infrastructura existenta: site, platform, etc.

In ceea ce priveste limba data de browser, si ea este trimisa ca header in requesturile facute de site, insa foarte multi din RO au defapt headerele pe Engleza.

exemplu:

Accept-Language:
en-US,en;q=0.9,ro;q=0.8,bg;q=0.7
1 Like

Salut,

Dupa mine, cel mai ok ar fi sa faci ceva custom folosit 2 cookie-uri unul pentru tara (in care poti sa detectezi automat tara, sau ia ultima setare) si altul pentru limba (pe baza header-ului de Accept-Language). Eu personla aleg versiuni in Engleza ale aplicatiilor/browserelor, deci un q=0.9,ro la mine nu ar fi valid.

Pe urma 2 simple dropdown-uri in unul ai tarile, in altul ai limbile sa reseteze acele cookie-uri ar fi de ajuns.

Ca si hint, am lucrat la o aplicatie in care in functie de tara se vindeau anumite produse, si limbile pe tara respectiva erau cele oficiale din tara respectiva + Engleza.

Deci daca ai ceva ff specific ca exemplul de mai sus, va trebui sa muti partea de decizie de selectare a tarii si in zona de afisare de produse.

3 Likes

Totusi, saitul tau este atat de utilizat la scara internationala incat necesita o asemenea functionalitate?

Este o functie pe care doresc so o introduc in site (cea de tari si limbi).
Am introdus toate tarile iar la limbi doar cele folosite in fiecare tara.
Problema este ca a intervenit acest inpediment, ori tari limba automat ori selectare tara/limba.
Nu vad cum sa il rezolv.

1 Like

tarii si limbii.

faci o functie care seteaza tara/limba intr-un cookie cand e aleasa de utilizator, si daca nu e setata de el, face fallback pe ce detectezi tu ca ip.

Eu prefer să iau limba din header că fiecare și-o setează in browser (sau o lasă implicit). Așa IP-ul poate fi al unui VPN din altă țară.

E complicat cu limba. Si locale in general pentru ca sunt multe tari care au mai mult de 1 limba oficiala. In unele fiind si problematica impunerea “de la centru” a unei limbi de facto. Fara a merge foarte departe, doar in europa avem 3 exemple: Belgia, Elvetia si Spania.

Daca vrei ceva profi, cel mai safe e sa pui userul sa aleaga limba preferata din prima interactiune pe care o are cu site-ul.

2 Likes

In cazul Belgiei, noi folosim olandeza si isi alege user-ul ce vrea. Sunt mai numerosi vorbitorii de olandeza.

La restul nu ma pricep.

Imi poate da cineva o solutie sau o confirmare ca:

  • Se poate selecta automat tara userului si limba browserului.
  • Dupa selectare din defoult (tara/limba) userul poate sa aiba posibilitatea de a schimba siteul pe o alta tara si/sau limba dorita de acesta.
    noi aici suntem in dilema!

pai tine doua valori (ex: browserLang si userLang), una initiala venita din browser si o alta cu preferinta utilizatorului. cad servesti paginile verifici intai daca e setata userLang. daca da, servesti in limba aia. daca nu, faci fallback la default-ul browserului. daca nici aia nu-i setata atunci faci fallback la ceva stabilit de tine (de ex, tara din care se face requestul).

ps: n-am citit cu atentie toata discutia. fix solutia asta e data de mai multe ori.

Se poate. Si e task banal, de incepatori.

1 Like

salut Dani,
Vrei sa preiei acesta lucrare?

Salut, Ioan.
Pentru detectarea language-ului folosit de browser poti folosi o functie javascript

var userLang = navigator.language || navigator.userLanguage; 
alert ("The language is: " + userLang);

Pentru a detecta locatia poti folosi un api de la geoip sau tot in javascript navigator.gelocation.
Este un task relativ usor.

1 Like

Salut Olteanu,

aceste doua functii am reusit sa le facem.
problema este sa putem schimba tara si limba dupa aceasta selectie automata in alta tara si/sau alta limba, si siteul sa ramana setat pe aceastea
este aceasta posibil?

Pentru selectia manuala va trebui sa setezi un Cookie. In caz ca vrei sa revii la selectia automata trebuie sa stergi acel Cookie.

Gata, am reusit sa rezolvam problema.
A fost destul de simplu (am schimbat furnizorul cu unul un pic mai scump)!

  1. We will make a functionality to show the selected languages in language drop-down when we change the language from drop-down in any page.

  2. Work on admin section give option to edit the IP language from admin for adding the language in any country.

  3. Add country tag and language tag on URl only in home page.

  4. Manage the country table and language table in admin section have to set the proper relation on.

Acestea ar mai fi de facut pentru partea ce tine de Tari/Limbi (este cineva interesat?)