This does not happen with any other chromium based browser

My phone locale is set to Italian with English as second language. IP address is Italian. I’m not understanding why sites like f-droid, Google dev documentation, gitlab, are all defaulting to Chinese as I can’t read it…

Sometimes I can find a link to switch back to either English or Italian, but the next visit they revert to Chinese…

    • Wispy2891@lemmy.worldOP
      link
      fedilink
      arrow-up
      21
      arrow-down
      1
      ·
      2 days ago

      Cool site!

      Now I know what’s going on. I added Chinese as a third language because of a bug of an app that defaults to gibberish if it’s not specified.

      Firefox is sending

      it-IT,en-US;q=0.8,zh-Hans-CN;q=0.5,zh-CN;q=0.3

      While chromium sends

      it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6,zh;q=0.5

      I checked some implementations of the check and some of them are bugged and assume that the language tag has only one hyphen. So they read zh-Hans-CN;q=0.5 and instead of understanding it as “priority 0.5 for zh-Hans-CN”, they understand it as “maximum priority for zh-Hans and priority 0.5 for CN”

      Screenshot of wrong parsing for the string sent by Firefox (the chromium one is parsed correctly)

      screenshot of a software error

      Now what to do… It’s impossible to contact Google to fix their implementation of language detection…

      • merdaverse@lemmy.zip
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 day ago

        It’s impossible to contact Google to fix their implementation of language detection…

        What do you mean by this? If the site parses the header incorrectly and displays a wrong language, then it’s a bug of the website, not the browser. You also said that chromium sends headers that are parsed correctly.

        • Wispy2891@lemmy.worldOP
          link
          fedilink
          arrow-up
          4
          ·
          1 day ago

          I mean that Google needs to fix their android dev documentation site to parse the header correctly, and I feel very unlikely that they’re going to fix if their own browser doesn’t send an header like that and doesn’t have the problem

      • BananaTrifleViolin@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 day ago

        Can you remove zh-Hans-cn from Firefox and just keep zh-cn?

        Zh-Hans is redundant here - it is for simplified Chinese, while zh-Hant would be used for traditional chinese. But both are not well implemented and usually people only use the country codes. Zh-cn is already simplified Chinese. Zh-TW (for Taiwan) is often used to cover traditional chinese.

        It’d be interesting to see if you get the same bug if zh-hans-cn is added to chrome, as it seems its the actual language tag that is causing the issue and possibly not related to the specific browser at all.

      • x00z@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        Now what to do… It’s impossible to contact Google to fix their implementation of language detection…

        Your browser just sends the headers and doesn’t do any detection by itself, besides having a list of ‘locale to locale strings’. It’s possible that the 2 hyphens go against the official local spec. But from what I remember it does seem to be the correct locale string. So the problem would be in the implementation of the websites that display it wrong.

  • Successful_Try543@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    2 days ago

    Have you checked the language settings of Firefox itself? (Assuming it just happens when using Firefox and not the native Browser)

    • Wispy2891@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 day ago

      on mobile the only setting available it’s for the UI language and there’s not the extensive language panel setting that is available on desktop. about:config is also missing