【docker 容器内设置谷歌浏览器首选或默认语言】

解决docker容器启动的chrome 浏览器首选或默认语言修改

要在 Docker 容器中的 Chrome 浏览器中设置中文语言,你可以通过在容器启动时设置浏览器的启动参数来实现。以下是一个示例的 Docker 命令:

docker run -d -p 4444:4444 \
 -e "LANGUAGE=zh_CN:zh" \
 selenium/standalone-chrome:latest

在这个示例中,我们使用了 selenium/standalone-chrome 镜像作为基础镜像,并通过设置环境变量 -e 来设置中文语言。LANGUAGE 环境变量的值都被设置为 zh_CN.UTF-8,从而将容器中的首选语言设置为中文。(如需修改为英文,对应替换为en_US)

浏览器启动后查看首选语言

在这里插入图片描述

LANG LANGUAGE LC_ALL环境变量区别

  1. LANG(或 LC_*):LANG 是最基本的本地化环境变量之一。它用于设置默认的本地化参数,包括字符编码、日期时间格式、货币符号等。如果没有显式设置其他本地化环境变量,程序通常会使用 LANG 的值作为默认设置。例如,LANG=en_US.UTF-8 将设置本地化为美国英语,使用 UTF-8 编码。
  2. LANGUAGE:LANGUAGE 是一个特定于某些系统的环境变量,在某些Unix系统中用于设置用户首选语言。它通常是一个以冒号分隔的语言列表,按优先级排列。例如,LANGUAGE=en_US:fr_FR 表示首选英语,如果不可用,则使用法语。
  3. LC_ALL:LC_ALL 是一个更高级别的环境变量,用于覆盖所有其他本地化环境变量的值。当设置 LC_ALL 时,它会覆盖 LANG 和其他 LC_* 变量的设置,以确保程序在特定的地区或语言下以一致的方式运行。如果设置了 LC_ALL,则忽略其他本地化环境变量的值。这使得 LC_ALL 具有最高的优先级。

总结:

  • LANG 是最基本的本地化环境变量,用于设置默认的本地化参数。
  • LANGUAGE 是某些系统特定的环境变量,用于设置用户首选语言。
  • LC_ALL 是更高级别的环境变量,用于覆盖所有其他本地化环境变量的值,确保程序以一致的方式运行。

在设置本地化环境变量时,建议优先使用 LANG,除非你有特定的需求需要使用 LANGUAGE 或 LC_ALL。

截止到该步骤,问题已解决。如还未解决,可继续阅读。后续内容为相关背景知识补充

进入容器查看查看字符集

docker exec -it  <container_id>  /bin/bash
locale
locale  -a

locale

  1. locale 命令用于显示当前系统的语言环境设置。
  2. 当你在终端中运行 locale 命令时,它将输出一系列与语言、字符编码、日期和时间格式等相关的环境变量的值。
  3. 例如,LC_CTYPE 表示字符分类和转换规则,LC_TIME 表示日期和时间格式,LANG 表示默认语言环境等。
    locale

locale -a

  1. locale -a 命令用于列出系统上可用的所有语言环境。
  2. 运行 locale -a 命令将输出已安装在系统上的语言环境的列表。
  3. 每个语言环境由一个标识符表示,通常是由语言和地区/国家的缩写组成的组合,例如 en_US 表示英语(美国),zh_CN 表示中文(中国)等。
  4. 这些语言环境可以用于设置系统的默认语言、字符编码以及日期和时间格式。
    在这里插入图片描述

为何locale -a 未查看到支持中文编码的语言环境,浏览器还能正确加载出中文页面?

  1. 语言环境未安装:你的操作系统可能没有安装支持中文编码的语言环境。locale -a 命令只会列出已经在系统中安装的语言环境。
  2. 非 POSIX 语言环境:locale -a 命令只显示 POSIX 兼容的语言环境。如果你的系统上存在非 POSIX 的中文语言环境,它们可能不会显示在 locale -a 的输出中。
  3. 浏览器独立的语言设置:浏览器通常具有自己的语言设置和字符编码支持机制,不完全依赖于操作系统的语言环境设置。浏览器可以根据网页的语言设置和字符编码,自动加载适当的字体和字符集,以确保正确显示中文页面。

由于浏览器具有独立的语言支持机制,即使操作系统的语言环境不支持中文编码,浏览器仍然可以正确加载和显示中文页面。浏览器会根据网页的语言设置以及浏览器自身的字符编码支持,选择适合的字体和字符集来渲染中文内容。

因此,即使 locale 命令未显示支持中文编码的语言环境,浏览器仍然可以正常显示中文页面。这是因为浏览器具有自己的语言环境和字符编码处理能力。

常见的编码格式

  1. C.UTF-8
    C 是一种语言环境设置,也称为 C 语言环境或默认的 C 语言环境。
    UTF-8 是一种字符编码,用于支持广泛的字符集。
    C.UTF-8 设置将使用 C 语言环境和 UTF-8 字符编码。
  2. en_US.UTF-8
    en_US 表示英语(美国)的语言环境。
    UTF-8 是一种字符编码,用于支持广泛的字符集。
    en_US.UTF-8 设置将使用英语(美国)语言环境和 UTF-8 字符编码。
  3. zh_CN.UTF-8
    zh_CN 表示中文(中国)的语言环境。
    UTF-8 是一种字符编码,用于支持广泛的字符集。
    zh_CN.UTF-8 设置将使用中文(中国)语言环境和 UTF-8 字符编码。
  4. POSIX
    POSIX 字符编码是一种基本的字符编码方案,通常用于 POSIX 兼容的操作系统和环境中。
    它使用 ASCII 字符集的子集,该子集包含了常见的美国英语字符和控制字符,总共有 128 个字符。
    POSIX 字符编码不支持国际化字符集和多字节字符,因此它的功能相对有限

POSIX 相关说明

  • POSIX 兼容的语言环境不包括特定的地域设置,如 “zh_CN.UTF-8”。
  • POSIX 是一组操作系统接口标准,旨在提供跨平台的应用程序兼容性,但它并不关注具体的语言或地域设置。

常见的 POSIX 兼容的语言环境

  1. C 或 POSIX:这是默认的 POSIX 兼容语言环境,通常用于提供最小限度的字符集支持和字符编码功能。
  2. en_US 或 en_US.UTF-8:美国英语(英语-美国)的 POSIX 兼容语言环境,使用 UTF-8 字符编码。
  3. C.UTF-8:基于 C 语言环境的 UTF-8 字符编码的 POSIX 兼容语言环境。
  4. POSIX.UTF-8:基于 POSIX 标准的 UTF-8 字符编码的 POSIX 兼容语言环境。

在 GitLab CI/CD 中,可以使用 variables 关键字来配置对应环境变量,修改.gitlab-ci.yml 文件

  services:
  alias: selenium-chrome
  variables:
    LANGUAGE: "zh_CN:zh"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值