首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于“`textdomain()”和“`bindtextdomain()”

相当于“`textdomain()”和“`bindtextdomain()”
EN

Stack Overflow用户
提问于 2022-08-02 07:41:48
回答 1查看 32关注 0票数 0

我正在将I18N支持添加到一些Python代码中,这些代码使用了应用程序其余部分基于GLib的接口。为了与应用程序的其他部分保持一致,我想使用GLib的gettext实现/包装器。

我使用以下方法导入GLib API:

代码语言:javascript
复制
import gi
from gi.repository import GLib

但是,如果我在库中看到一些*gettext()函数(dcgettextdgettextdngettextdpgettextdpgettext2),我就找不到相当于textdomain()bindtextdomain()的函数。

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-03 10:43:01

GLib没有自己的gettext实现。不过,它确实使用它进行翻译,而C端的-especially为它提供了有用的包装器。

在Python上使用GTK时,这意味着通常要调用bindtextdomain():使用Python提供的locale模块。如果Python是在没有gettext支持的情况下构建的,那么您必须导入gettext模块

代码语言:javascript
复制
import gettext
import locale

try:
    locale.bindtextdomain(app_id, locale_dir)
    locale.textdomain(app_id)
except AttributeError as e:
    # Python built without gettext support does not have
    # bindtextdomain() and textdomain().
    gettext.bindtextdomain(app_id, locale_dir)
    gettext.textdomain(app_id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73203732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档