跳转到主要内容

未提供项目描述

项目描述

rustfluent

Python接口到Rust Fluent库。

此项目是围绕fluent-rs的小型适配器,因此可以从Python使用。

[!WARNING] 此软件包正在积极开发中,并且可能随时发布破坏性更改。如果在生产环境中使用此软件包,请确保固定到特定版本。

先决条件

此软件包支持

  • Python 3.11
  • Python 3.12

安装

pip install rustfluent

用法

import rustfluent

# First load a bundle
bundle = rustfluent.Bundle(
    "en",
    [
        # Multiple FTL files can be specified. Entries in later
        # files overwrite earlier ones.
        "en.ftl",
    ],
)

# Fetch a translation
assert bundle.get_translation("hello-world") == "Hello World"

# Fetch a translation that includes variables
assert bundle.get_translation("hello-user", variables={"user": "Bob"}) == "Hello, \u2068Bob\u2069"

上述示例中围绕"Bob"的Unicode字符用于Unicode双向处理

API参考

Bundle

特定语言的翻译集合。

import rustfluent

bundle = rustfluent.Bundle(
    language="en-US",
    ftl_files=[
        "/path/to/messages.ftl",
        "/path/to/more/messages.ftl",
    ],
)

参数

名称 类型 描述
language str Unicode语言标识符
ftl_files list[str] 包含翻译的FTL文件的完整路径。后续文件中的条目将覆盖早期文件中的条目。
strict bool,可选 在严格模式下,如果文件中存在任何错误,将引发ParserError。在非严格模式下,无效的Fluent消息将被排除在Bundle之外。

引发

  • 如果找不到任何FTL文件,将引发FileNotFoundError
  • 如果FTL文件中包含错误(仅限严格模式),将引发rustfluent.ParserError

Bundle.get_translation

>>> bundle.get_translation(identifier="hello-world")
"Hello, world!"
>>> bundle.get_translation(identifier="hello-user", variables={"user": "Bob"})
"Hello, \u2068Bob\u2069!"
>>> bundle.get_translation(identifier="hello-user", variables={"user": "Bob"}, use_isolating=False)
"Hello, Bob!"

参数

名称 类型 描述
identifier str Fluent消息的标识符。
variables `dict[str, str int ]`,可选
use_isolating bool,可选 是否在可替换物周围插入Unicode方向隔离标记,以指示它们的方向可能与周围消息不同。默认为True

返回值

str:翻译的消息。

如果传入的变量存在问题(例如类型不正确或整数大于有符号长整数),则将使用变量名代替。

引发

  • 如果找不到消息或没有可用的翻译,将引发ValueError
  • 如果传入的变量名(即variables字典中的键)不是字符串,将引发TypeError

贡献

查看贡献指南

项目详情


下载文件

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

源分发

rustfluent-0.1.0a5.tar.gz (17.3 kB 查看哈希值)

上传时间 源代码

构建分发

rustfluent-0.1.0a5-cp312-none-win_amd64.whl (224.6 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

rustfluent-0.1.0a5-cp312-none-win32.whl (214.4 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

rustfluent-0.1.0a5-cp312-cp312-musllinux_1_2_x86_64.whl (539.5 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ x86-64

rustfluent-0.1.0a5-cp312-cp312-musllinux_1_2_i686.whl (561.0 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ i686

rustfluent-0.1.0a5-cp312-cp312-musllinux_1_2_armv7l.whl (635.5 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ ARMv7l

rustfluent-0.1.0a5-cp312-cp312-musllinux_1_2_aarch64.whl (556.1 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ ARM64

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (376.2 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (440.2 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ s390x

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (421.5 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ppc64le

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (386.8 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ARMv7l

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (383.6 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ARM64

rustfluent-0.1.0a5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (393.0 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.5+ i686

rustfluent-0.1.0a5-cp312-cp312-macosx_11_0_arm64.whl (330.0 kB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

rustfluent-0.1.0a5-cp312-cp312-macosx_10_12_x86_64.whl (331.9 kB 查看哈希值)

上传时间: CPython 3.12 macOS 10.12+ x86-64

rustfluent-0.1.0a5-cp311-none-win_amd64.whl (225.4 kB 查看哈希值)

上传时间: CPython 3.11 Windows x86-64

rustfluent-0.1.0a5-cp311-none-win32.whl (214.7 kB 查看哈希值)

上传时间: CPython 3.11 Windows x86

rustfluent-0.1.0a5-cp311-cp311-musllinux_1_2_x86_64.whl (540.8 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.2+ x86-64

rustfluent-0.1.0a5-cp311-cp311-musllinux_1_2_i686.whl (561.6 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.2+ i686

rustfluent-0.1.0a5-cp311-cp311-musllinux_1_2_armv7l.whl (636.5 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.2+ ARMv7l

rustfluent-0.1.0a5-cp311-cp311-musllinux_1_2_aarch64.whl (556.7 kB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.2+ ARM64

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (377.0 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (443.2 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ s390x

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (423.7 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ppc64le

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (387.5 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARMv7l

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (384.3 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

rustfluent-0.1.0a5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (393.6 kB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.5+ i686

rustfluent-0.1.0a5-cp311-cp311-macosx_11_0_arm64.whl (330.4 kB 查看哈希)

上传于 CPython 3.11 macOS 11.0+ ARM64

rustfluent-0.1.0a5-cp311-cp311-macosx_10_12_x86_64.whl (332.8 kB 查看哈希)

上传于 CPython 3.11 macOS 10.12+ x86-64

支持