跳转到主要内容

Elm的国际化解决方案

项目描述

elm-fluent

https://img.shields.io/pypi/v/elm_fluent.svg https://travis-ci.org/elm-fluent/elm-fluent.svg?branch=master https://codecov.io/gh/elm-fluent/elm-fluent/branch/master/graph/badge.svg Documentation Status

elm-fluent是Fluent在Elm中的实现。

Fluent是由Mozilla团队设计的新一代翻译/本地化解决方案,基于多年的大量不同语言的本地化经验。Mozilla从其“l20n”解决方案(如Firefox和Thunderbird等应用程序使用)中提取了部分内容,设计了一个专门为Web设计的可重用规范。

elm-fluent是这个规范在Elm中的完整实现(有关确切版本支持的详细信息,请参阅变更日志)。

它作为一个命令行工具运行,将.ftl文件编译为.elm文件。结果是,每条消息都变成一个函数,为给定的区域设置和可选的强类型参数集(字符串、日期或数字)生成翻译后的字符串(或HTML片段)。

日期和数字也可以通过提供格式化参数传递 - 例如,将货币附加到数字上,以便它可以正确地根据使用区域设置的规则格式化为货币。

有关更多信息,请参阅文档

有关Fluent的讨论,包括elm-fluent,请参阅Mozilla Discourse Fluent分类

状态

  • 边缘有些粗糙,但在生产中使用。请参阅开放问题列表。

  • 一个相当完整的测试套件,以及足够的文档。

  • 在用户体验方面,对错误信息的良好处理值得注意。

  • 兼容性:仅支持Elm 0.18。

    Elm 0.19存在问题——我们需要一个Intl的包装器,但Elm还没有提供,并且原生模块的限制阻止我们编写自己的。

    不清楚官方是否会提供包装器以及它是否适合elm-fluent。我们使用elm-intl,它已经证明非常适合我们的使用,但核心团队显然迅速否定了采用此类库的提议。

    鉴于这一点,以及由0.19中原生模块限制引起的其他问题,elm-fluent的作者可能被迫放弃Elm。在这种情况下,最可能的结果是迁移到bucklescript,并使用bucklescript-tea,elm-fluent将被分叉以针对该平台。此仓库不会删除,但进一步的开发可能会停止。

  • 自由软件:MIT许可协议

致谢

此软件包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

历史记录

0.6.0 (2020-04-09)

  • 对类型推断/检查机制的全面重写,现在具有更准确的错误信息。

0.5.0 (2019-08-15)

  • 更新到Syntax 1.0 (fluent.syntax 0.15)

  • 各种错误修复和小的改进

0.4.0 (2019-03-18)

  • ftl2elm –include选项

  • 取消对Python 2.7的支持

0.3.0 (2019-03-06)

  • 支持Syntax 0.8,包括参数化术语。

  • 提高了某些表达式的编译时解析能力。

0.2.1 (2018-12-19)

  • 将python-fluent依赖项更改为较旧版本(< 0.9),因为它与新版本不兼容。感谢@stasm的报告。

0.2.0 (2018-09-10)

  • 更好地处理各种错误条件

  • 实现了适当的回退机制

  • 添加了--watch选项。

  • 从生成的代码中消除未使用的导入

  • 各种错误修复

    • 避免输出没有导出的.elm文件

    • HTML属性和非字符串消息参数的bug

    • 多行消息的崩溃器

    • 默认语言中缺少消息时的崩溃器

0.1.0 (2018-07-27)

  • PyPI上的首次发布。

项目详情


下载文件

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

源分布

elm_fluent-0.6.0.tar.gz (117.9 kB 查看散列)

上传时间

构建分布

elm_fluent-0.6.0-py3-none-any.whl (47.4 kB 查看散列)

上传时间 Python 3

由以下支持