14

Postanowiłem potraktować to jako pytanie samo w sobie, ponieważ wywołało ono tak wiele dyskusji w komentarzach original post.W jaki sposób witryny internetowe powinny zajmować się ustawieniami lokalizacji? (z "Jakie są typowe nieporozumienia i irytacje interfejsu użytkownika?")

To ciekawe, że wiele osób na SO (którzy są programistami) po prostu nie dostaje lokalizacji. Oto moje zdanie na temat tego, jak powinno działać:

We wszystkich przeglądarkach, na które patrzyłem (i dla programistów .NET również), gdy patrzysz na preferencje kulturowe użytkownika, jest ono w następującym formacie: język -Kultura.

Więc mamy:

  • en-GB - język angielski - Wielka Brytania kultura
  • en-US - język angielski - US kultury
  • pl - Język angielski - kultura niezmienne.
  • fr-FR - francuski język - kultura francuska
  • fr-CH - język francuski - kultura szwajcarski
  • de-CH - Język niemiecki - kultura szwajcarski
  • de-DE - niemiecki język - kultura niemiecka

Aby uzyskać pełną listę obsługiwaną przez platformę .NET, zobacz MSDN.

Kiedy wchodzę na stronę internetową, wie, że chcę, aby język angielski pochodzi z en i wie, że jestem zainteresowany tym, że jest ukośny w Wielkiej Brytanii (formatowanie liczb, formatowanie daty). Więc kiedy wchodzę na stronę google.com i prowadzi mnie to google.de (ze względu na mój adres IP), to całkiem dobrze, jeśli google.de wyświetla mi wszystko w języku angielskim, ale całkowicie błędnie, ponieważ google.de jest w języku niemieckim. Mam niewielką kontrolę nad moim adresem IP, ale mam pełną kontrolę nad ustawieniami języka i kultury. Jeśli jesteś zainteresowany, nowa wyszukiwarka Microsoftu (bing.com) zajmuje się prawidłowo. Miejmy nadzieję, że Microsoft może dowiedzieć się, jak to zrobić wyszukiwania jak Google czy Google może nauczyć się lokalizować jak Microsoft;)

MSDN ma kolejny dobry artykuł tutaj, aby uzyskać więcej informacji

Więc jakie są zalecenia dla how stron powinien poradzić sobie z lokalizacjami?

+0

To naprawdę nie jest pytanie ... Powinna być wiki społeczności lub ... blog? Interesujące uwagi w każdym razie, po prostu nie czuję, że należą one tutaj. –

+2

Uważam, że to dobre pytanie. Projektanci aplikacji wep mogliby skorzystać z zamieszczonych tutaj odpowiedzi (jeśli są w ogóle :), aby ich aplikacje były lepsze, więc jest to uzasadnione pytanie programistyczne. –

+0

Drogi Marku, jak można zauważyć, twoja odpowiedź była dla mnie inspiracją do złożenia skargi na Google w komentarzu do twojej odpowiedzi iw moim własnym poście. Niestety, nie znalazłem wcześniej Twojego postu. –

Odpowiedz

13

Rozwiązanie jest tutaj tak proste, denerwujące, że programista robi cokolwiek innego.

  1. Przestrzegaj ustawień przeglądarki. Jeśli mówi po angielsku, to według Boga jest angielski.

  2. Jeśli koniecznie musisz, to po prostu dodaj przycisk u góry, aby wybrać coś innego. Wtedy i TYLKO wtedy przesłonisz przeglądarkę.

  3. Jeśli uważasz, że Twoja droga jest lepsza. Zatrzymaj się, niech ktoś cię spoliczkuje. To nie jest. Powtórz w razie potrzeby.

  4. Pozbądź się stron webowych z prośbą o czyjś kraj. Po prostu pokaż swoją normalną stronę na podstawie domyślnych ustawień przeglądarki i zobacz punkt 2 powyżej. Nie natknąłem się jeszcze na stronę, w której ma to naprawdę znaczenie.aktualizacja:kilka lat później i jest teraz powód, aby to zrobić. W 2013 r. Wielka Brytania ustanowiła zasady dotyczące plików cookie, których operatorzy stron internetowych muszą przestrzegać w odniesieniu do witryn z tego kraju, które udostępniają strony odwiedzającym z tego kraju. Zwróć uwagę na prawa obowiązujące w krajach, w których jesteś hostowany.

  5. JEŚLI zdarzyło Ci się, że witryna jest obsługiwana przez wiele serwerów w wielu krajach, prawdopodobnie możesz wykryć, który z nich jest naprawdę bliżej do obsługi. Jeśli nie możesz, po prostu zatrzymaj przekierowujące szaleństwo, a potem nie próbuj ich determinować.

+1

Wiele osób nie jest tak sumiennych jak ty czy ja, jeśli chodzi o ustawienia regionalne. Mogą używać przeglądarki z domyślnym językiem en_US, nawet jeśli są to Brytyjczycy, Szwajcarzy, Chorwaci, Zulusi itd. Jeśli polegasz na reklamowanej lokalizacji w przeglądarce, będziesz rozmawiał z wieloma osobami w niewłaściwym języku. Podstawowy problem polega na tym, że przeglądarki mają domyślne ustawienia lokalne lub ustawienia regionalne, które są określane przez dobrego administratora sysadmin. Jeśli przeglądarki wyświetlały tylko preferencje, gdy użytkownik wyraził je pozytywnie, mielibyśmy o wiele mniej kłopotów. –

+3

@twic: Zgadzam się, dlatego wstawiam # 2. Nie mam żadnych odczuć odnośnie liczby osób, które mają nieprawidłowe ustawienia. Jeśli jednak traktujemy to jako domyślne i dajemy użytkownikowi końcowemu opcję przesłonięcia, wówczas rozwiązujemy wszystkie problemy. – NotMe

1

Ryzykuję, że uważam się za niegrzecznego, ale myślę, że moje post on this topic będzie miało więcej informacji, głównie dlatego, że mój post jest naprawdę pytaniem. Przykro mi, ale nie znalazłem tego wcześniejszego postu.

1

Istnieje różnica między inteligentnymi wartościami domyślnymi a możliwością ich zastępowania przez użytkowników. W dużych aplikacjach, nad którymi pracowałem, założyłem ustawienia użytkownika z ustawień przeglądarki, geolokalizacji itp. - ale zawsze dawałem użytkownikom możliwość łatwej zmiany.

Nie wiem, jak inaczej można to zrobić. Nie dawanie użytkownikom szansy na poprawienie twoich przypuszczeń jest bardzo problematyczne, ponieważ przez jakiś czas będziesz się mylił.

Ponadto:

Myślę, że problemem jest to, że podczas gdy można edytować ustawienia regionalne, jeśli wyglądają w zasadzie identyczne z domyślnego, nie ma mowy o twórcy aplikacji, aby powiedzieć, jeśli w lewo to jak jest celowo, lub dlatego, że nie wiesz, jak i dlaczego go zmienić.

Proponuję przestrzegać ustawień lokalizacji użytkownika, z wyjątkiem, jeśli ustawienie jest przytłaczającą wartością domyślną, której użytkownicy nie mogą zmienić. Na przykład, wierzę, że znakomita większość (90 +%) użytkowników z ustawieniem geograficznym w Wietnamie prawie zawsze lepiej byłoby wyświetlać treści wietnamskie niż amerykańskie, o ile istnieje prosty sposób na zmianę lokalizacji. Z drugiej strony, jeśli użytkownik geolokalizowany w USA ma ustawienie wietnamskie, należy podać mu wietnamską treść.

Czy to irytujące dla użytkowników amerykańsko-angielskich w Wietnamie? Pewnie. Ale jest to także największe dobro dla jak największej liczby osób i pomaga zagwarantować, że przeciętni nietechniczni użytkownicy uzyskają najlepsze doświadczenia w świecie rzeczywistym. Dopóki nie będziemy mogli trzymać pistoletu w głowach użytkowników i zmusić ich do uczciwego zadeklarowania swoich preferencji językowych/kulturowych przed włączeniem komputera, będziemy potrzebować heurystyki w ten sposób.

+1

Zapewnienie użytkownikowi łatwego mechanizmu zmiany rzeczy jest zdecydowanie słuszne, moim problemem jest opieranie początkowego założenia na jednej rzeczy, której nie mam wpływu na: mój adres IP. – Mark

+0

Masz rację - dodałem trochę więcej tekstu, odpowiadając na to w mojej odpowiedzi. – Anirvan

+0

Lepszym rozwiązaniem byłoby ustawienie domyślne wartości pustej w przeglądarce, co natychmiast eliminuje problem rozróżniania między "en-us, ponieważ ustawiłem to" i "en-us, ponieważ nie wiem, że jest konfigurowalny" . Twoja sugestia "wszyscy inni na świecie mogą wybrać preferencje językowe, ale jeśli mówisz po angielsku i kiedykolwiek opuścisz USA, musisz po prostu wyssać to, ponieważ twój język jest najczęściej używanym ustawieniem domyślnym" doesn " t uderza mnie jako szczególnie dobry. –

2

Zgadzam się, dać użytkownikowi możliwość zastąpienia ich preferencjami użytkownika w aplikacji. Jest to szczególnie przydatne w przypadku problemów z lokalizacją strefy czasowej, których nie można uzyskać z ustawień przeglądarki.

3

W pewnym momencie mojej kariery utrzymywałem część stosu TCP/IP. To stawia mnie w dość rzadkiej sytuacji, gdy dobrze wiem, że adresy IP nie powinny być używane jako nic innego niż adresy warstwy sieciowej. Każde powiązanie adresu IP z lokalizacją jest zupełnie nieprzypadkowe - jest artefaktem sposobu dystrybucji adresów, a nie podstawową częścią tego, co oznacza adres IP.

(Są również nieprzydatne jako unikatowy identyfikator komputera, ale to inna historia)

Proponuję pozostawiając geolokalizacji z niego. Standard HTTP zawiera sposób, w jaki przeglądarka lub inny agent użytkownika może uwzględniać preferencje kulturowe użytkowników przy każdym żądaniu (i pamiętaj, że jest to lista ważonych preferencji, niekoniecznie tylko jedna kultura). Ponieważ przeglądarka jest bliżej użytkownika niż ty, powinieneś uszanować to żądanie, przynajmniej jako domyślne.

Można wtedy zezwolić użytkownikowi na zmianę preferencji dotyczących witryny, tymczasowo lub na stałe. Można nawet zezwolić użytkownikowi na wyświetlanie różnych treści z różnymi ustawieniami kultury. Przykładem może być strona zawierająca zarówno wiadomości polityczne, jak i informacje techniczne. Jest całkiem rozsądne, że ktoś chciałby wiadomości w ich "naturalnym" języku, ale informacje techniczne w języku angielskim.

Wreszcie, jest w porządku mieć wzór awaryjny. Jeśli, na przykład, masz witrynę, która obsługuje użytkowników na podstawie ich regionu (na przykład resellerzy), możliwe jest, że japońska treść istnieje tylko w Twojej podregionie w Azji. Japońskojęzyczny użytkownik odwiedzający Twoją witrynę w regionie EMEA może po prostu utknąć w oczekiwaniu na treść w języku angielskim, co może być jego ostatnim wyborem.

+1

Istnieją całe firmy i bazy danych poświęcone geolokalizacji adresów IP. Są naprawdę dość dokładne. –

0

Widziałem wystarczająco energiczne raporty o błędach od klientów, że gdy badane okazać się, że jedna z tam użytkownicy musieli ustawienie tak, że teraz niech klient zastępują przeglądarek z ustawieniem konfiguracyjnym kulturę przeglądarce. Ustawienia kultury przeglądarki często są złe, co nie jest zbyt przydatne, a dla większości użytkowników końcowych jest zbyt trudne do znalezienia lub zmiany.

+1

To jest w porządku, aby pozwolić użytkownikom zastąpić ich ustawienia, ale po prostu źle zignorować ustawienia lub je odgadnąć. W przeciwnym razie po prostu karasz ludzi, którzy wiedzą, co robią z powodu ignorancji innych. – Mark

+0

Niestety użytkownicy nie płacą za oprogramowanie, klienci robią .... Zatrzymanie jednego telefonu od użytkownika, który nie wie, że robią, ma większą wartość dla wielu klientów, a następnie nie karze tam użytkownika energii (który może się sortować i tak) –

+2

Przepraszam, ale jaki jest sens posiadania zdefiniowanego przez standardy, konfigurowalnego przez użytkownika ustawienia języka w HTTP, jeśli powinien (według ciebie) po prostu zostać całkowicie zignorowany? Być może lepszym rozwiązaniem byłoby ułatwienie znalezienia w przeglądarce, hmm? Może nawet poprosić użytkownika o instalację/pierwsze uruchomienie, jaki jest preferowany język? Istnieją sposoby na to, aby przeciętny użytkownik mógł go ustawić i rozwiązać problem dla * wszystkich * zamiast mówić: "Zabierzmy wszystkim możliwość wyboru domyślnego języka, ponieważ niektórzy nie wiedzą jak". –

4

Jeśli ustawienia lokalizacji są dostępne - w tym, ale nie wyłącznie, nagłówek HTTP Accept-Language - wtedy strony internetowe absolutnie powinny je uszanować.

Powszechnym argumentem przeciwko temu jest to, że "przeciętni użytkownicy" nie są na tyle sprytni, aby znaleźć ustawienia językowe i skonfigurować je zgodnie z ich własnymi preferencjami, więc te ustawienia są, najczęściej, nieprawidłowe (chyba że użytkownik się dzieje być w Stanach Zjednoczonych).

To jest złe rozwiązanie.

Jeśli znaczna część populacji użytkowników nie może znaleźć (lub nie może znaleźć miejsca) ustawień językowych przeglądarki, poprawna odpowiedź to , aby ułatwić znalezienie, a nie do zignorowania witryn. do czego zostali ustawieni. Możliwe, że ustawienia językowe będą bezpośrednio dostępne z menu najwyższego poziomu programu, zamiast pogrzebać je w skomplikowanym oknie dialogowym "Preferencje". Być może zapytaj o preferencje językowe podczas pierwszego uruchomienia programu. Być może użyj ustawień lokalizacji systemu operacyjnego. A może coś zupełnie innego, jeśli to wystarczy, aby było prawie pewne, że przeglądarka będzie wysyłać prawidłowe informacje o preferencjach użytkownika. Ale nie podnoś rąk, powiedz "to bezużyteczne i nie da się naprawić!" I zignoruj ​​to.

Inne odpowiedzi dotyczyły umożliwienia użytkownikowi wyboru języka lub ustawień regionalnych w ich profilu na stronie, co jest również ważne i absolutnie powinno być standardowe, ale ma to na celu tylko zastąpienie specyficzne dla witryny zwykłym ustawieniom użytkownika. Jeśli użytkownik nie zastąpi tego w witrynie, to właściwą operacją jest ustawienie domyślne na najbardziej preferowany dostępny język/ustawienia narodowe zgodnie z ustawieniami przeglądarki, a nie oparcie go na geolokalizacji adresu IP.

+0

Ale ponieważ obecnie * są * złe często, to nieodpowiedzialnie polegać na nich! Po pięciu latach, gdy przeglądarki posortują swój interfejs wyboru ustawień regionalnych, być może sytuacja będzie inna. Ale teraz tak właśnie jest. Ból w dupę, ale tak jest. –

+5

Penalizowanie ludzi, którzy robią wszystko poprawnie, jest * nigdy * właściwą odpowiedzią, ponieważ służy zniechęceniu ich do robienia tego poprawnie w przyszłości. Jako amerykański mieszkaniec mieszkający w Szwecji, co jest dla mnie zachętą do odpowiedniego ustawienia mojego języka na język en/us, jeśli strony powiedzą tylko, że "twój adres IP jest w Szwecji, więc zignorujemy twoje ustawienia preferencji i damy ci szwedzki "? –

3

na stronach tworzę ja zazwyczaj podążać ten wzór:

  • Każda strona posiada unikalny adres URL z językiem w nim gdzieś, jak zwykle /en/page lub innym (pod) kategorii
  • Jeżeli użytkownik otwiera adres URL z nieokreślonym językiem, takim jak /page Zaczynam zgadywać:
    • Czy plik cookie z poprzedniej sesji jest dostępny?
    • Jeśli nie, czy jest dostępny Accept-Language i czy mogę go zamapować na język dostępny w witrynie?
    • Jeśli nie, czy jest to możliwe, czy mogę się domyślić przez IP?
    • Jeśli nie, domyślny jest domyślny język witryny.
  • ustawić ciasteczko z typowany język i przekierować użytkownika do strony z odpowiednim adresem URL
  • kładę zmienić język na każdej stronie, więc /en/page może być łatwo włączone do /xx/page
    • Cookie jest aktualizowany, gdy użytkownik przełączy się na inną stronę

Idealnie mam tylko zgadywać raz i od tej pory nas e cookie użytkownika lub użytkownik odwiedza bezpośrednio wybraną stronę.

+0

Podejście, które stosujemy, to mieć różne nazwy domen dla każdego kraju, więc nie ma dwuznaczności. Przyjeżdżasz na deceze.fr, dostajesz francuski. Przyjeżdżasz na deceze.ch, dostajesz niemiecki, ale są znane przyciski, aby przełączyć się na francuski lub włoski. –

Powiązane problemy