Ubuntu Strings配置文件在哪里
小樊
32
2025-12-31 13:08:30
Ubuntu 字符串文件与本地化配置位置
一 概念澄清
- 在 Ubuntu 语境中,“Strings 文件”通常指应用程序的本地化翻译文件,即 GNU gettext 使用的 .po(可编辑文本) 与 .mo(编译后的二进制) 文件,并非单一的“全局配置文件”。这些文件按语言与域(domain)组织在系统本地化目录中,供程序在运行时按当前 locale 自动加载。
二 系统级与应用的常见路径
- 系统级翻译目录:/usr/share/locale/<语言代码>_<地区编码>/LC_MESSAGES/,例如 /usr/share/locale/zh_CN.UTF-8/LC_MESSAGES/、/usr/share/locale/en_US.UTF-8/LC_MESSAGES/。文件名通常为 <域名>.mo,如 messages.mo、myapp.mo。
- 应用自带或自定义安装:可能在 /usr/local/share/<应用名>/locale/ 或应用安装前缀下的 share/locale/ 目录中,结构与系统级一致(按语言/地区子目录与 LC_MESSAGES 分类)。
- 源码/开发树:翻译源文件 .po 常随项目源码放置(如 po/ 目录),发布时编译为 .mo 并安装到上述运行时目录。
三 如何快速定位某个应用的翻译文件
- 已知域名(如 myapp)时,直接按语言环境查找:例如
- 查找已安装的 .mo:sudo find /usr/share/locale -name “myapp.mo”
- 查找所有 .po:find / -name “*.po” 2>/dev/null
- 若不确定域名,可先确定程序是否使用 gettext(文档/代码中有 gettext/bindtextdomain 等调用),再依据安装前缀与常见目录结构推断,并用 find/grep 验证。
四 修改与生效流程
- 编辑翻译:修改或新增 .po 中的 msgid/msgstr 条目,保存为 UTF-8。
- 编译为二进制:在 .po 所在目录执行:msgfmt messages.po -o messages.mo(确保生成的 .mo 路径与语言/地区、LC_MESSAGES 目录结构一致)。
- 权限与路径:系统目录需要 sudo 写入;更稳妥的做法是先在用户目录测试,再复制到系统目录。
- 使翻译生效:重启应用;确保当前 locale 与 .mo 的语言/地区匹配(如 zh_CN.UTF-8 对应 zh_CN.UTF-8/LC_MESSAGES/)。
- 若涉及系统语言环境本身(而非单个应用):编辑 /etc/locale.gen 并运行 sudo locale-gen,再用 localectl set-locale LANG=zh_CN.UTF-8 或编辑 /etc/default/locale 设置默认语言,避免误用 LC_ALL 覆盖其他变量。