You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anaconda环境下PyGObject更改locale设置不生效问题求助

问题根因

conda-forge 源提供的 gtk3 包默认未内置多语言翻译文件,和 MSYS2 预打包全语言资源的构建规则不同,因此即使系统 locale 配置正确,GTK 原生组件也无法加载对应的本地化文本。

解决步骤
  • 第一步:安装 GTK3 语言包
    直接从 conda-forge 通道安装包含全语言翻译的资源包:
conda install -c conda-forge gtk3-lang
  • 第二步:修正代码内环境变量配置
    安装语言包后如果仍不生效,需要在导入 PyGObject 相关模块前,显式指定 GTK 加载翻译的路径以及语言环境变量:
import os
import locale

# 配置西班牙语环境变量
os.environ['LANG'] = 'es_ES.UTF-8'
os.environ['LC_ALL'] = 'es_ES.UTF-8'

# 自动获取当前 conda 环境路径,指定 GTK 翻译文件加载前缀
conda_prefix = os.environ.get('CONDA_PREFIX', '')
if conda_prefix:
    os.environ['GTK_DATA_PREFIX'] = conda_prefix

# 初始化 locale 配置
locale.setlocale(locale.LC_ALL, '')

# 之后再导入 GI 相关模块
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
  • 第三步:验证配置
    运行测试代码确认原生组件显示语言:
test_dialog = Gtk.FileChooserDialog(
    title="Seleccionar archivo",
    parent=None,
    action=Gtk.FileChooserAction.OPEN
)
test_dialog.add_buttons(
    Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
    Gtk.STOCK_OPEN, Gtk.ResponseType.OK
)
test_dialog.run()
test_dialog.destroy()

如果仍显示英文,可检查 $CONDA_PREFIX/share/locale/es/LC_MESSAGES 目录下是否存在 gtk30.mo 文件,确认西班牙语翻译文件已正确安装。

内容的提问来源于stack exchange,提问作者anvaro98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:54:09