跳转到主要内容

用于翻译Python应用程序和库的库和CLI。

项目描述

l10n

用于翻译Python应用程序和库的库和CLI。

我们的主要设计原则是“简单的事情应该简单,复杂的事情应该可行”。我们简化了适合95%项目的流程,并允许配置每个小细节,以便适应剩余的5%。将l10n视为与低级且不太友好的localegettextbabel相比,这是一个高级且友好的库。

功能

  • 简单。我们删除了所有不必要的步骤和概念。剩下的只是Python真正相关的部分。
  • 类型安全。所有其他工具都匹配翻译。
  • 明确。没有全局状态,没有变量注入。您确切知道要翻译什么以及翻译成什么语言。
  • 零依赖运行时。CLI有一些小依赖项,但它们只安装在您的开发环境中。在生产环境中,只有一个小型库,即l10n本身。
  • 纯Python。您可以使用它与PyPy、Numba和任何其他解释器一起使用。
  • 零配置。该工具了解现代Python打包,并自动发现项目结构、名称、版本以及所有其他相关元数据。
  • 文档齐全。我们确保您可以在没有任何关于该主题的先验知识的情况下使用此工具。
  • 与其他工具兼容。我们使用与gettext工具链和其他所有翻译工具兼容的*.po*.mo文件。
  • 自给自足,无需其他工具.
  • 兼容asyncio且无竞争条件.
  • 快速。生产中的所有翻译都编译成一个小巧高效的二进制格式。
  • 小巧。我们不会将任何生成数据包含在库分部中。只有一点点Python代码。
  • 懒惰。只有当您需要时才加载数据。
  • 可用于库中。编译后的翻译将自动放置在您的Python代码旁边,并在运行时发现。
  • 多功能。大多数野外的库都专注于Web应用。这个库适用于任何Python项目。

30秒内完成l10n

安装l10n

python3 -m pip install 'l10n[cli]'

并在您的代码中执行所有需要做的更改以支持字符串翻译

from l10n import Locales
locales = Locales()

def say_hello(lang='en'):
    loc = locales[lang]
    msg = loc.get('Hello, world!')
    print(msg)

现在,让我们将其翻译成乌克兰语

  1. 从代码中提取所有需要翻译的字符串

    python3 -m l10n extract --lang uk
    
  2. 使用Google Translate翻译所有提取的字符串

    python3 -m l10n translate
    
  3. 将所有翻译编译成二进制格式

    python3 -m l10n compile
    

这就完了!现在,您的代码支持翻译

from example import say_hello
say_hello(lang='uk')
# Привіт Світ!

如果您想手动调整翻译文本,只需编辑languages/en.po文件,然后再次运行compile。您甚至不需要重新启动应用程序!

在文档中了解更多: l10n.orsinium.dev.

项目详情


下载文件

下载适用于您平台的自定义文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

l10n-0.1.5.tar.gz (29.3 kB 查看散列)

上传时间

构建分发

l10n-0.1.5-py3-none-any.whl (17.9 kB 查看散列)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面