{"record":{"id":"29b19a4dbe87a00c","repo":"XX-net/XX-Net","slug":"get-lang-except-r","errorCode":null,"errorMessage":"get lang except:%r","messagePattern":"get lang except:%r","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/launcher/config.py","lineNumber":135,"sourceCode":"            pass\n    elif sys_platform.platform == \"android\":\n        try:\n            res = request(\"GET\", \"http://localhost:8084/env/\")\n            dat = json.loads(res.text)\n            lang_code = dat[\"lang_code\"]\n            xlog.debug(\"lang_code:%s\", lang_code)\n            if 'zh' in lang_code:\n                return 'zh_CN'\n            elif 'en' in lang_code:\n                return 'en_US'\n            elif 'fa' in lang_code:\n                return 'fa_IR'\n            elif 'ru' in lang_code:\n                return 'ru_RU'\n            else:\n                return None\n        except Exception as e:\n            xlog.warn(\"get lang except:%r\", e)\n            return \"zh_CN\"\n    elif sys_platform.platform == \"ios\":\n        lang_code = os.environ[\"IOS_LANG\"]\n        if 'zh' in lang_code:\n            return 'zh_CN'\n        elif 'en' in lang_code:\n            return 'en_US'\n        elif 'fa' in lang_code:\n            return 'fa_IR'\n        elif 'ru' in lang_code:\n            return 'ru_RU'\n        else:\n            return None\n    else:\n        try:\n            lang_code, code_page = locale.getdefaultlocale()\n            # ('en_GB', 'cp1252'), en_US,\n            return lang_code","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/launcher/config.py#L117-L153","documentation":"While detecting the OS UI language in _get_os_language(), an unexpected exception occurred while reading locale info (e.g. from locale.getdefaultlocale() or Windows API calls); the code logs it and falls back to zh_CN (Chinese).","triggerScenarios":"Calling get_language() on a platform whose locale detection path raises — malformed locale environment (LC_ALL/LANG unset or garbage), missing locale module data, or Windows MUI API returning unexpected values.","commonSituations":"Containers/servers with no locale set (LANG=C or POSIX), minimal Docker images without locale data, or older Windows versions with unusual language codes.","solutions":["Set a valid locale explicitly: export LANG=en_US.UTF-8 and LC_ALL=en_US.UTF-8","Ensure locale data is installed in minimal environments (locale-gen / locales package)","Pass the desired language via the app's config so detection is bypassed","If zh_CN fallback surprises you, set the language setting in the launcher config"],"exampleFix":"// before\nlang_code = locale.getdefaultlocale()[0] or ''\n// after\ntry:\n    lang_code = locale.getdefaultlocale()[0] or os.environ.get('LANG', 'en_US')\nexcept Exception:\n    lang_code = os.environ.get('LANG', 'en_US')","handlingStrategy":"fallback","validationCode":"import os\nlang = os.environ.get('LANG', '') or os.environ.get('LC_ALL', '')\nif not lang or lang in ('C', 'POSIX'):\n    # set a sane default before language detection runs","typeGuard":null,"tryCatchPattern":"try:\n    lang = get_language()\nexcept Exception:\n    lang = 'en_US'  # explicit app-level fallback","preventionTips":["Set LANG/LC_ALL explicitly in service/container environments","Allow overriding language via config instead of relying on OS detection","Install locale data in minimal images"],"tags":["i18n","locale","detection","fallback"],"backgroundTag":"locale-detection-failed","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}