In che modo i siti Web devono gestire le impostazioni di localizzazione? (da "Quali sono le idee sbagliate e i fastidi comuni dell'interfaccia utente?")

StackOverflow https://stackoverflow.com/questions/1016709

Domanda

Ho scelto di prendere questo come una domanda a sé stante poiché stava generando così tanto dibattito nei commenti di .

È interessante vedere che molte persone su SO (che sono sviluppatori) non ottengono la localizzazione. Ecco la mia opinione su come dovrebbe funzionare:

In tutti i browser che ho guardato (e anche per gli sviluppatori .NET là fuori) quando guardi le preferenze di cultura di un utente è nel seguente formato: lingua-cultura.

Quindi abbiamo:

  • en-GB - Lingua inglese - Cultura del Regno Unito
  • en-US - Lingua inglese - Cultura americana
  • en - English language - Invariant culture.
  • fr-FR - Lingua francese - Cultura francese
  • fr-CH - Lingua francese - Cultura svizzera
  • de-CH - Lingua tedesca - Cultura svizzera
  • de-DE - Lingua tedesca - Cultura tedesca

Vedi MSDN per un elenco completo supportato da .NET framework.

Quando visito un sito Web, sa che desidero la lingua inglese dall'interno e sa che sono interessato a essere inclinato nel Regno Unito (formattazione dei numeri, formattazione della data). Quindi quando vado su google.com e mi porta su google.de (a causa del mio indirizzo IP), va benissimo se google.de mi mostra tutto in inglese ma completamente sbagliato poiché google.de è in tedesco. Ho poco controllo sul mio indirizzo IP ma controllo completo sulle mie impostazioni di lingua e cultura. Se sei interessato, il nuovo motore di ricerca di Microsoft (bing.com) gestisce le cose correttamente. Speriamo che Microsoft possa imparare a fare ricerche, così come Google o Google possano imparare a localizzare così come Microsoft;)

MSDN ha un altro buon articolo qui per ulteriori informazioni

Quali sono i tuoi consigli su come i siti dovrebbero gestire le localizzazioni?

È stato utile?

Soluzione

La soluzione qui è così semplice, è fastidioso che gli sviluppatori facciano qualsiasi altra cosa.

  1. Rispetta le impostazioni del browser. Se dice inglese, allora per dio è inglese.

  2. Se assolutamente necessario, aggiungi semplicemente un pulsante in alto per scegliere qualcos'altro. Quindi, e SOLO, sostituisci il browser.

  3. Se pensi che la tua strada sia migliore. Fermati, chiedi a qualcuno di schiaffeggiarti. Non è. Ripeti se necessario.

  4. Sbarazzati di quelle pagine Web che chiedono il paese di qualcuno. Mostra solo la tua pagina normale, in base alle impostazioni predefinite del browser, e vedi l'elemento 2 sopra. Devo ancora imbattermi in un sito in cui conta davvero. aggiornamento: qualche anno dopo e ora c'è un motivo per farlo. Nel 2013 il Regno Unito ha istituito politiche relative ai cookie che gli operatori del sito Web devono rispettare per i siti con sede in quel paese che offrono pagine ai visitatori di quel paese. Quindi presta attenzione alle leggi dei paesi in cui sei ospitato.

  5. SE ti capita di avere un sito che è realmente servito da più server in più paesi, allora puoi probabilmente rilevare quale dei tuoi server è davvero più vicino da servire. Se non ci riesci, basta interrompere la follia di reindirizzamento e quindi non provare a prendere una decisione per loro.

Altri suggerimenti

Se sono disponibili le impostazioni di localizzazione - inclusa, ma non solo, l'intestazione HTTP Accept-Language - i siti Web dovrebbero assolutamente rispettarle.

L'argomento comune contro questo è che "gli utenti medi" non sono abbastanza intelligenti da trovare le impostazioni della lingua e configurarle in modo che corrispondano alle proprie preferenze, quindi queste impostazioni sono, il più delle volte, errate (a meno che l'utente non sia negli Stati Uniti).

Questa è la soluzione sbagliata.

Se un segmento sostanziale della popolazione di utenti non riesce a trovare (o non può essere disturbato a trovare) le impostazioni della lingua del proprio browser, la risposta corretta è renderle più facili da trovare , non affinché i siti ignorino ciò su cui sono stati impostati. Forse rendere le impostazioni della lingua direttamente accessibili dal menu di livello superiore del programma invece di seppellirlo all'interno di un "complicato" Preferenze ". dialogo. Forse chiedi le preferenze della lingua al primo avvio del programma. Forse utilizzare le impostazioni di localizzazione del sistema operativo. O forse qualcosa di completamente diverso, se è quello che serve per rendere quasi certo che il browser invierà informazioni corrette sulle preferenze dell'utente. Ma non limitarti a alzare le mani, di '" è inutile e non può essere riparato! & Quot ;, e ignoralo.

Altre risposte hanno parlato di come consentire all'utente di scegliere una lingua o una lingua nel proprio profilo sul sito, che è anche importante e assolutamente dovrebbe essere standard, ma questo è solo per fornire una sostituzione specifica del sito alle normali impostazioni dell'utente. Se l'utente non lo ha ignorato sul sito, tuttavia, l'azione corretta è quella di impostare automaticamente la lingua / le impostazioni internazionali più preferite come specificato nelle impostazioni del proprio browser, non basarlo sulla geolocalizzazione del proprio indirizzo IP.

A un certo punto della mia carriera, ho mantenuto parti dello stack TCP / IP. Ciò mi mette nella posizione alquanto rara di sapere molto bene che gli indirizzi IP non dovrebbero essere usati come qualcosa di diverso dagli indirizzi a livello di rete. Qualsiasi associazione tra un indirizzo IP e una posizione è quasi casuale: è un artefatto del modo in cui gli indirizzi sono distribuiti, non una parte fondamentale del significato di un indirizzo IP.

(Non sono utili come identificatore univoco di un computer, ma questa è una storia diversa)

Suggerisco di lasciarne fuori la geolocalizzazione. Lo standard HTTP include un modo per un browser o un altro agente utente di includere le preferenze di cultura degli utenti con ogni richiesta (e ricordare, è un elenco di preferenze ponderate, non necessariamente solo una cultura). Poiché il browser è più vicino all'utente di te, dovresti rispettare questa richiesta, almeno come impostazione predefinita.

È quindi consentito consentire all'utente di modificare le proprie preferenze per il proprio sito, temporaneamente o permanentemente. È anche accettabile consentire all'utente di scegliere di visualizzare contenuti diversi con impostazioni di cultura diverse. Un esempio selvaggio sarebbe un sito che include sia notizie politiche che informazioni tecniche. È abbastanza ragionevole che qualcuno vorrebbe le notizie nel loro "naturale" lingua, ma le informazioni tecniche in inglese.

Infine, va bene avere un modello di fallback. Se, ad esempio, disponi di un sito che fornisce assistenza agli utenti in base alla loro regione (rivenditori, ad esempio), è possibile che il contenuto giapponese esista solo sul tuo sito secondario regionale asiatico. Un utente di lingua giapponese che visita il tuo sito EMEA potrebbe essere bloccato a vedere contenuti in inglese, che potrebbe benissimo essere la sua ultima scelta.

Sui siti che creo di solito seguo questo schema:

  • Ogni pagina ha un URL univoco con la lingua in qualche luogo, di solito come / en / page o un (sotto) dominio diverso
  • Se l'utente apre un URL con una lingua non specificata come / page , inizio a indovinare:
    • È disponibile un cookie di una sessione precedente?
    • In caso contrario, Accept-Language è disponibile e posso mapparlo su una lingua disponibile sul sito?
    • In caso contrario, se è una possibilità, posso indovinare tramite IP?
    • In caso contrario, impostare automaticamente la lingua predefinita del sito.
  • Ho impostato un cookie con la lingua indovinata e reindirizzato l'utente su un sito con l'URL appropriato
  • Metto un cambio di lingua su ogni pagina, quindi / en / page può essere facilmente impostato su / xx / page
    • I cookie vengono aggiornati se l'utente passa a una pagina diversa

Idealmente, devo solo indovinare una volta e da allora in poi utilizzare il cookie dell'utente, oppure l'utente visita direttamente la pagina desiderata.

Sono d'accordo, offri all'utente la possibilità di sostituirli con le preferenze dell'utente nella tua app. Questo è particolarmente utile per cose come problemi di localizzazione del fuso orario che non puoi derivare dalle impostazioni del browser.

Rischio di essere considerato scortese, ma penso che il mio pubblica questo argomento avrà risposte più informative, soprattutto perché il mio post è davvero una domanda. Mi dispiace però di non aver trovato prima questo post.

Esiste una differenza tra le impostazioni predefinite intelligenti e la capacità degli utenti di sovrascriverle. Nelle grandi app su cui ho lavorato, ho assunto le impostazioni locali dell'utente dalle impostazioni del browser, dalla geolocalizzazione, ecc., Ma ho sempre dato agli utenti un modo per passare facilmente.

Non so come si farebbe altrimenti. Non dare agli utenti la possibilità di correggere i tuoi presupposti è profondamente problematico, perché sbaglierai qualche volta.

AGGIUNTA:

Penso che il tuo problema qui sia che mentre puoi modificare le tue impostazioni locali, se sembrano sostanzialmente identiche a quelle predefinite, non c'è modo per uno sviluppatore di applicazioni di dire se lo hai lasciato così com'è o perché non non so come o perché cambiarlo.

Suggerisco di onorare le impostazioni di localizzazione degli utenti, tranne se l'impostazione è l'impostazione predefinita schiacciante, che gli utenti non possono modificare. Ad esempio, credo che la stragrande maggioranza (90 +%) degli utenti con un'impostazione en-us geolocalizzata in Vietnam sarebbe quasi sempre meglio servita a vedere contenuti vietnamiti, piuttosto che contenuti in inglese americano, finché in quanto esiste un modo banale per cambiare locale. Il rovescio della medaglia, se un utente geolocalizzato negli Stati Uniti ha un'impostazione vietnamita, dai sicuramente il suo contenuto vietnamita.

È irritante per gli utenti inglese-americani in Vietnam? Sicuro. Ma è anche il più grande bene per il maggior numero e aiuta a garantire che gli utenti non tecnici medi ottengano la migliore esperienza nel mondo reale. Fino a quando non saremo in grado di tenere una pistola alla testa degli utenti e costringerli a dichiarare onestamente le loro preferenze di lingua / cultura prima di accendere un computer, avremo bisogno di euristiche come questa.

Ho visto abbastanza forti segnalazioni di bug da parte dei clienti che, quando indagato, risulta che uno di quegli utenti aveva sbagliato l'impostazione della cultura del browser, che ora lasciamo che il cliente prevalga sui browser con un'impostazione di configurazione. L'impostazione della cultura del browser è errata abbastanza spesso che non è molto utile, è anche troppo difficile per la maggior parte degli utenti finali trovarla o modificarla.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top