温馨提示×

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.momyapp.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 覆盖其他变量。

0