V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fancy2020
V2EX  ›  程序员

现在大部分的网站,语言都是和地区绑定的,这合理吗?

  •  1
     
  •   fancy2020 ·
    fanchangyong · 198 天前 · 1780 次点击
    这是一个创建于 198 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我用的日本梯子,Google 出来的内容很多都是日语,设置里改成英文和中文,也会莫名其妙的失效。 还有其他各类网站,都会提醒甚至强制跳转到网站的日语版本。

    我就在想,地区和语言之间的关系。比如操作系统里的地区和语言设置都是分开的,如果我是一个 English native speaker ,生活在日本,在操作系统层面我可以设置地区为日本,语言是英文。

    但是在 Web 领域,大家好像默认一个地区就代表了一种语言,我觉得这有点不合理。

    不知道有没有一种方式,可以一劳永逸的设置我想要的显示语言是 English ,和我所在的地区无关。

    HTTP 标准里是有Accept-Language这个 header 的,Chrome 里也有设置语言的选项,不知道有没有办法在浏览器里设置然后让所有网站都遵守这个规则..

    第 1 条附言  ·  198 天前
    V2EX 有一部分用户的脑回路总是让我大开眼界,不管任何话题,他们都会找到一个非常刁钻的角度,然后攻击你,以显示自己的优越感。

    这就是一个纯粹的技术/用户体验的讨论,没想到也惹来一堆阴阳怪气。

    来看看英文世界的讨论氛围:

    https://superuser.com/questions/1316341/if-it-possible-to-force-websites-to-automatically-use-english-language-if-you-ar

    https://superuser.com/questions/1496998/force-chrome-on-pc-to-display-pages-in-english
    第 3 条附言  ·  197 天前
    下沉了,来这里讨论就是个错误。。
    gransh
        1
    gransh  
       198 天前
    google map 里查酒店的货币显示还和地理位置绑定呢,怎么改自己的区域都没用。简直绝绝子
    rccoder
        2
    rccoder  
       198 天前
    Google 可以使用 https://zh.wikipedia.org/zh-hans/NCR 一下

    你不要用人家 .jp 的域名,.jp 是专门给日本人用的
    shinsekai
        3
    shinsekai  
       198 天前
    不能,因为各个地区的法律是不一样的,就像欧洲 google 会自动跳出 gdpr 而日本就不会。网站的隐私策略与 IP 挂钩可以减少很多成本,假设现在一种语言对应一种隐私策略,按楼主的方案一种语言要对应 N 种隐私策略,一种隐私策略也要对应 N 种语言。
    zhouhuab
        4
    zhouhuab  
       198 天前
    对你可能不合理
    DIMOJANG
        5
    DIMOJANG  
       198 天前
    像中国这样只有用别的国家的 IP 才能访问网站的毕竟是少数
    fancy2020
        6
    fancy2020  
    OP
       198 天前
    @zhouhuab

    可能我上边举的例子对你来说理解有点难度,那么另一个例子:
    一个美国人,从小说英语长大,来到日本定居或工作或旅游,他能不能要求所有网站显示英文,这个要求合不合理?
    fancy2020
        7
    fancy2020  
    OP
       198 天前 via iPhone
    @DIMOJANG 用梯子只是举例,我觉得标题描述的已经很明白了,是“地区”和“语言”的绑定问题
    DIMOJANG
        8
    DIMOJANG  
       198 天前
    @fancy2020 也是,和系统设置绑定大概会更好
    guguexxx
        9
    guguexxx  
       198 天前
    @fancy2020 #6 那他需要的可能是 vpn
    fancy2020
        10
    fancy2020  
    OP
       198 天前 via iPhone
    @guguexxx 服了诸位的思路。。
    docx
        11
    docx  
       198 天前 via iPhone
    确实有困扰到我,但从开发者的角度来说也算说的通。

    关键在于,这种情况还是少数人,绝大多数就是 ip 所在地的本地人,所以这样就更加本地化……确实是缺乏对少数人需求的关注。
    thinkershare
        12
    thinkershare  
       198 天前
    没有办法,很多网站会有其它手段,强制按照浏览器的各种综合信息+IP 一起确定你的语言,不接受用户手动设置的 Accept-Language ,也有很多网站的多语言就是用 Accept-Language 实现的(js 发起的请求,通过用户选择的语言,来发起请求,从而请求对应语言的资源)。各个国家的法律一一样,服务器后台会根据的区域和语言下菜。
    mightybruce
        13
    mightybruce  
       198 天前
    你也提到了 Accept-Language, 除非你改变了浏览器和操作系统设置,浏览器发送的头发生了改变,才会显示成另外的语言,默认就是和浏览器设置以及操作系统语言有关的
    icyalala
        14
    icyalala  
       198 天前
    一个地区有一个官方或者主流语言,所以默认用这种语言显示,这不是很自然很合理吗。
    对于地区和语言不同的人,只要提供选项切换语言就足够了。
    fancy2020
        15
    fancy2020  
    OP
       198 天前
    @mightybruce

    Chrome 里我已经设置了语言为英文+中文,也查看了网络请求 Accept-Language 确实也是按照规范发的:
    Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7

    问题就是大部分网站都不遵守这个规范,而是强制按照 IP 地区来显示语言。
    Maxwe11
        16
    Maxwe11  
       198 天前
    这个其实和“合理”没有关系,商业世界归根结底是成本的关系;

    虽然我们访问了一个企业提供的服务,但实际的访问过程是我们发出一个访问请求,dns 解析地址,返回一个服务实际地址,但是为了提供更好的服务,通常企业匹配了 cdn ,尤其是大型服务站点,cdn 地址显然是本地区域化的设计,也就是通过访问者的区域相关性更高;

    当然如果在匹配一些缓存机制,显然从访问的机制上来看,默认最大规模来访的服务提供,成本最低、效率最高;

    如果总比例过低,确实没有必要增加一层判断机制,反正也提供了基本的转换功能,确实有需求的小部分用户自己切换一下就好了。
    fancy2020
        17
    fancy2020  
    OP
       198 天前
    @icyalala

    按照用户自己在浏览器设置中设置的语言来显示,是否更加合理呢?
    crysislinux
        18
    crysislinux  
       198 天前 via Android
    我觉得 16 楼说的对,主要还是成本问题。
    fancy2020
        19
    fancy2020  
    OP
       198 天前
    @Maxwe11

    没有觉得通过 IP 地区来判断,比按照标准的 Accept-Language 来判断,成本节省在哪里,反而更高?
    icyalala
        20
    icyalala  
       198 天前
    @fancy2020 https://caniuse.com/?search=Accept-Language
    Accept-Language 提得早,但实现的浏览器比例低,比如 iOS 上直到 iOS 17 才支持。
    IP 相比之下显然是更通用和准确的手段。
    thinkershare
        21
    thinkershare  
       197 天前
    很多网站的设计目的就是不允许你跨区域访问,根据 IP 来限制用户,这是网站后端服务器的功能设计要求。
    fancy2020
        22
    fancy2020  
    OP
       197 天前
    @icyalala

    感谢,移动端确实实现的比较晚,不过也基本会 fallback 到操作系统的语言设置。

    https://www.w3.org/International/questions/qa-lang-priorities
    teenight
        23
    teenight  
       197 天前
    肯定不合理啊, 但是需求较少
    yaoyao1128
        24
    yaoyao1128  
       197 天前 via iPhone
    google 搜索可以設置裡面調整啊⋯⋯

    剩下的⋯⋯很多網站重點在於地域劃分而不是語言劃分,在日本生活的美國人也 1. 需要了解的更即時的東西一般應該根據屬地 2. 各種網站需要遵守在日本的規定和定價

    很多網站的策略如果照顧一下外國人,可能是當地語言加英語,比如 netflix 。所以如果你是 English native speaker 一些國際化的網站可能真的直接給妳跳轉英語⋯⋯steam 也會根據情況用相應的語言⋯⋯
    gam2046
        25
    gam2046  
       197 天前
    不合理,但是省事。

    人性一点的网站允许用户自己选择语言,不人性的就直接按 IP 归属显示语言。
    mikewang
        26
    mikewang  
       197 天前
    真难弄啊。
    Google 有适配过,当他有足够数据确信你在中国,即使是日本 IP 也会跳转到中文 Google 的。
    然后又会有人来抱怨了,很多功能都用不了。
    fancy2020
        27
    fancy2020  
    OP
       197 天前
    @mikewang

    我不需要他通过"足够数据确信"我在哪个国家,只需要 RESPECT 我在浏览器和系统中的设置,仅此而已。
    deef
        28
    deef  
       197 天前
    因为很多功能都是根据所在地来适配的呀,我不可能做一套符合某地法律但是显示另一套 i18n 的网站,因为可能显示的 UI 样式都是不一样的。
    比如国航官网,中文官网就是国企喜闻乐见的那个老样子,其他语言地区的官网就是很正常,很像欧美网站的那个板式。
    hefish
        29
    hefish  
       197 天前
    google 里面不是可以登录了自己设置位置和语言嘛。
    不登录,也得允许人家猜测嘛。 猜错了也不能全怪人家。
    mikewang
        30
    mikewang  
       197 天前
    @fancy2020 Google 遵守 Accept-Language ,您可以无痕浏览试试,至少在我这里 Google 的 UI 语言会随之变化。
    但是这只是 Accept-Language ,并不是 Accept-Region 。搜索结果很多是基于地区信息提供的,然后是在地区的结果里优先显示指定语言。
    总之,Accept-Language 决定了默认的 UI 语言,搜索结果多数基于 IP 地址。
    agagega
        31
    agagega  
       197 天前
    这里有一个问题,就是当我们说起 i18n 时有个假设:翻译的内容属于程序,而不是数据。也就是说可以被翻译的那些内容会保存在网站代码里。如果一个网站是以文字内容为主(不论是站长编辑写的内容还是用户写的内容),那网站程序的一些翻译占比很小,还不如都不翻译。

    另外就是如果站长本来就不想一些区域的用户去另一些区域的分站访问,那可能就会主动将语言作为障碍,减少跨区使用(比如价格不同或者数据存放地区等原因)。

    而且网站要做 i18n 其实没有想的那么简单,以前总结过要想体验不错得有四层:如果 URL 里有 lang=xxx ,就根据这个来;如果用户已登录且在设置里保存过语言,则读取用户设置的语言;如果请求头有 Accept-Language ,那按照这个来;最后如果什么都没有,就根据用户 IP 默认来。

    i18n 显示的不管是不是用户想要的语言,起码内容是没错的。时区可能是一个更多人注意不到的坑。
    mikewang
        32
    mikewang  
       197 天前
    另外也不用说英文世界的讨论氛围,因为您的提问是「这合理吗?」,自然有人觉得合理,有人觉得不合理。

    如果您是想要解决方案,您可以直接提问。

    ---

    解决这个问题的方法是:

    将您的 Google 收藏地址保存为:
    https://www.google.com/?hl=en&gl=US

    将您的 Chrome 搜索地址设置为:
    https://www.google.com/search?q=%s&hl=en&gl=US
    fancy2020
        33
    fancy2020  
    OP
       197 天前
    @mikewang

    不讨论 Google 搜索结果内容的语言,就说 Google 首页的 UI 展示,刚试了下无痕浏览,依然显示的是日语。
    Header 为:

    Accept-Language: en-US,en;q=0.9


    比较讽刺的是,Chrome 还在右上角提示我翻译为英文..
    fancy2020
        34
    fancy2020  
    OP
       197 天前
    @mikewang
    你可能没认真阅读,我提到的是“大部分网站”,干嘛老拿 Google 来说事呢?
    fancy2020
        35
    fancy2020  
    OP
       197 天前
    @mikewang

    对,我是想讨论是否合理,我也非常希望听到那些认为合理的看法,但前提是,通过正常的逻辑和信息来源来讨论,而不是阴阳怪气的乱评价。

    比如,上边有人提到 Accept-Language 的浏览器支持率的问题,就非常好啊,这样的讨论才能让人拓宽认知。

    像上边#4 #9 那种回复,你听了啥感受?
    mikewang
        36
    mikewang  
       197 天前
    @fancy2020 同样是用 Google 举个例子回应而已。

    另外补充一点,大概可以解决您的疑问:因为 en 是“默认”语言,被忽略了,从而采用了可信度更高的 IP 位置。如果 Accept-Language 是 en 以外的,网站会遵守,你可以试试。
    不过这确实是一个问题。
    fancy2020
        37
    fancy2020  
    OP
       197 天前
    @mikewang

    Google 我知道它网站有“区域”设置和“语言”设置,但那个区域设置总会莫名其妙的被重置成“Current Region”。

    不想讨论 Google ,是因为它和大多数网站的行为是不一样的,大部分网站是没有语言设置选项的。

    所以讨论这种特例,不太具备普遍性,离我真正想讨论的东西偏离有点远。
    mikewang
        38
    mikewang  
       197 天前
    @fancy2020 嗯...确实挺不合理的。不过 Web 的破事不止这些,比如 Content-Type 是带字符集的,<meta charset="utf-8"> 也是带字符集的,配置不统一的网站很多。

    V 站自身也不遵守 Accept-Language ,您看右下角有一个 Select Language ,但是始终默认中文。
    最有趣的是,就算设置成英文,回的还是 <html lang="zh-CN"> 。
    真正遵守标准的人太少,导致服务端、浏览器都在互相猜。服务端觉得浏览器发送的不一定准,浏览器也在怀疑服务端回复的数据是否正确。就导致了这么一种局面。
    Exp
        39
    Exp  
       197 天前
    我个人觉得不合理,并且不理解网站不提供或者不愿意让用户自定义设定的原因。

    另外一个问题就是网站自动跳转地区域名的问题,我同样觉得不理解和无法接受。
    YassoWithSpeaker
        40
    YassoWithSpeaker  
       197 天前
    网站还支持国际化呢,有的网站就一种语言,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2997 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:20 · PVG 22:20 · LAX 07:20 · JFK 10:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.