巴别塔更改日志

版本2.14.0

即将推出的弃用

  • 这个版本,Babel 2.14,是最后一个支持Python3.7的Babel版本。Babel 2.15将需要使用Python3.8或更高版本。

  • 我们之前宣布Babel 2.13是支持Python3.7的最后一个版本,但是能够在Python3.7中使用CLDR43被认为是足够重要的,可以在另一个版本中继续支持EOL的Python版。

可能向后不兼容的更改

  • Locale.number_symbols 现在每个编号系统都有第一级密钥。因为隐式默认编号系统仍然是 "latn" ,以前是例如 Locale.number_symbols['decimal']Locale.number_symbols['latn']['decimal']

  • 巴别塔不再直接依赖于 distutilssetuptools ;如果您一直在使用babel setuptools命令扩展,则需要显式依赖于 setuptools -尽管考虑到你在竞选 setup.py 你可能已经这么做了。

特征

  • CLDR/Numbers:通过@kajte添加对数字符号的本地编号系统的支持 #1036

  • CLDR:通过@rix0rrr in升级到CLDR 43 #1043

  • 前端:允许将LAST_Translator作为选项传递给@AivGitHub在 #1044

  • 前端:解耦 pybabel CLI前端来自distutils/setuptools by@akx in #1041

  • Numbers:通过@Oluusib和@akx改进格式错误的小数的解析 #1042

基础设施

  • 通过@akx in强制执行尾随逗号(启用Ruff COM规则和自动修复) #1045

  • CI:通过@akx in使用GitHub输出格式 #1046

版本2.13.1

这是修复一些错误的补丁版本。

修复

  • 纠正一个打字错误 _locales_to_names 由@Dl84 in #1038 (发出 #1037 )

  • 修整 setuptools 通过@opryprin实现对Python 3.12的依赖 #1033

版本2.13.0

即将弃用(已恢复)

  • 此前曾宣布,该版本Babel 2.13将是最后一个支持Python3.7的Babel版本。Babel 2.14仍将支持Python3.7。

特征

  • 添加标记以忽略@joeportela在 #999

  • 支持@jeanas在关键字中使用‘t’说明符 #1015

  • 在中添加@encukou对Python3.12(PEP 701)的f字符串解析 #1027

修复

  • 中@akx提供的各种与键入相关的修复 #979 ,in #978#981#983

  • 由@akx执行的重复数据删除_to_模糊_匹配_键逻辑 #980

  • 将Format_Time()测试冻结到特定日期,以修复@mgorny在 #998

  • @Scope in中的拼写和语法修复 #1008

  • 通过@akx in更新皮棉工具 #1017#1028

  • 在中使用@vargenau的SPDX许可证标识符 #994

  • 通过@Scope in在内部使用Aware UTC DateTime #1009

新的贡献者

  • @mgorny做出了他们的第一个贡献 #998

  • @vargenau做出了他们的第一个贡献 #994

  • @joeportela做出了他们的第一个贡献 #999

  • @Enukou做出了他们的第一个贡献 #1027

版本2.12.1

修复

  • 版本2.12.0缺少 py.typed 标记文件。多亏了亚历克斯·韦古德的修复! #975

  • 所有文件的版权年都被推迟到2023年。

版本2.12.0

弃用和破坏性的更改

  • 不再支持Python3.6 (#919 )-阿尔尼·科斯克拉

  • 这个 get_next_timezone_transition 函数不再存在 (#958 )-阿尔尼·科斯克拉

  • Locale.parse() 不会再回来了 None ;它将始终返回区域设置或引发异常。正在传递 None ,虽然从技术上讲是允许的,但将引发。 (#966 )

新功能

  • CLDR:巴别塔现在使用CLDR 42 (#951 )-阿尔尼·科斯克拉

  • 日期: pytz 现在是可选的;巴别塔会喜欢它,但将使用 zoneinfo 如果可以的话。 (#940 )-@DS-CBO

  • 将军:由于乔纳·劳伦斯在多个PR中的工作,巴别塔现在提供了文字注释。

  • 区域设置:现在在解析区域设置时保留@修饰符 (#947 马丁·F·克拉夫特

  • 消息:JavaScript模板字符串表达式提取现在更加智能。 (#939 )--约翰尼斯·威尔姆

  • 数字:NaN和Infinity现在得到更好的支持 (#955 )-乔纳·劳伦斯

  • 数字:现在支持短紧凑货币格式 (#926 )-乔纳·劳伦斯

  • 数字:现在有一个 Format.compact_decimal 效用函数。 (#921 )-乔纳·劳伦斯

错误修正

  • Dates:解析的DateTime模式的缓存现在是有界的 (#967 )-阿尔尼·科斯克拉

  • 消息:模糊候选匹配准确率提高 (#970 )-Jean Abou Samra

  • 数字:不带数字的紧凑单数格式和模式可以正常工作 (#930#932 )-乔纳·劳伦斯,Jun Omae

改善和清理

  • Dates: babel.dates.UTC is now an alias for datetime.timezone.utc (#957) - Aarni Koskela

  • 日期: babel.localtime 被稍微清理了一下。 (#952 )-阿尔尼·科斯克拉

  • 文档:Maciej Olko、Jonah Lawrence、Lilingie和Aarni Koskela改进了文档。

  • 基础设施:巴别塔现在正在被预先承诺和拉夫所束缚。--阿尔尼·科斯克拉

版本2.11.0

即将推出的弃用

  • 这个版本,Babel 2.11,是最后一个支持Python3.6的Babel版本。Babel 2.12将需要使用Python3.7或更高版本。

改进

  • 支持在JavaScript字符串文字中进行十六进制转义 #877 --Przemyslaw Wegrzyn

  • 添加对紧凑形式小数格式的支持 #909 --乔纳·劳伦斯

  • 调整parse_date以处理ASCII格式的ISO日期 #842 --Eric L.

  • 使用 ast 而不是 eval 用于提取Python字符串 #915 --阿尔尼·科斯克拉
    • 这也允许从静态f字符串中提取。带有表达式的F字符串将被静默忽略(但不会像以前那样引发错误)。

基础设施

  • 测试:使用常规断言和 pytest.raises() #875 --阿尔尼·科斯克拉

  • 轮子现在内置在GitHub操作中 #888 --阿尔尼·科斯克拉

  • 对CLDR下载器脚本的小改进 #894 --阿尔尼·科斯克拉

  • 去掉过时的 __nonzero__ 方法 #896 --尼基塔·索博列夫

  • 去掉多余的 __unicode__ 声明 #905 --卢卡斯·朱里希

  • 标记与Python3.11兼容的包 #913 --阿尔尼·科斯克拉

  • 停止发出最严重的警告 #916 --阿尔尼·科斯克拉

错误修正

  • 使用email.Message进行pofile标头解析,而不是不推荐使用 cgi.parse_header 功能。 #876 --阿尔尼·科斯克拉

  • 在MacOS上删除通过系统设置确定时区 #914 --阿尔尼·科斯克拉

文档

  • 更新文档中的Python版本 #898 --拉斐尔·内斯特勒

  • 使BSD-3许可证与OSI模板保持一致 #912 --卢卡斯·卡韦·史密斯

版本2.10.3

这是Babel 2.10.2的错误修复版本,它被错误地与过时的区域设置数据打包在一起。

感谢MichałGórny指出了这一点,并感谢Jun Omae进行了核实。

这个和未来的Babel PyPI包将由一个更自动化的过程构建,这应该会减少类似问题发生的可能性。

版本2.10.2

这是Babel 2.10.1的错误修复版本。

  • FORMAT_CURRENT()格式中的Fallback Count=“Other”格式 (#872 )--小前俊

  • 使用修复get_Period_id() dayPeriodRule 跨越0:00 (#871 )--小前俊

  • 添加对以下各项的支持 bB 时间格式的句号符号 (#869 )--小前俊

  • Chore(文档/拼写错误):修复函数注释中的小拼写错误 (#864 )-弗兰克·哈里森

版本2.10.1

这是Babel 2.10.0的错误修复版本。

  • 消息:修复 distutils 导入。倒退到 #843 。 (#852 )-Nehal J Wani

  • 控制盘文件不再标记为通用,因为巴别塔仅支持Python3。

版本2.10.0

即将推出的弃用

  • 这个 get_next_timezone_transition() 函数在此版本中被标记为已弃用,可能会在Babel 2.11版本中删除。没有计划替换此功能;根据 #716 ,则该函数很可能不会在任何实际代码中使用。 (#852 )-Aarni Koskela,Paul Ganssle

改进

  • CLDR:升级到CLDR 41.0。 (#853 )-阿尔尼·科斯克拉

    • 这个 ce CLDR 40中引入的复数形式操作数被解析,但在其他方面不受支持。 (#826 )

    • 单位的非主格形式目前被忽略了。

  • Messages: Implement --init-missing option for pybabel update (#785) - ruro

  • 消息:用于 extract ,您现在可以更换内置的 .* / _* 用您自己的目录模式忽略了目录模式。 (#832 )-阿尔尼·科斯克拉,Kinshk Dua

  • 消息:添加 --check 验证目录是否为最新的步骤 (#831 )-Krzysztof Jagiełło

  • 消息:添加 --header-comment 覆盖默认标题注释的步骤 (#720 )-穆罕默德·哈菲兹·莫尔西,阿尔尼·科斯克拉

  • 日期: parse_time 现在支持12小时制,更擅长解析部分时间。 (#834 )-Aarni Koskela,David Bauer,Arthur Jovart

  • 日期: parse_dateparse_time 现在举起 ParseError ,是的子类 ValueError ,在某些情况下。 (#834 )-阿尔尼·科斯克拉

  • 日期: parse_dateparse_time 现在接受 format 参数。 (#834 )-朱丽叶·蒙塞尔,阿尔尼·科斯克拉

基础设施

  • 内部 babel/_compat.py 模块不再存在 (#808 )-雨果·范·凯门纳德

  • 正式支持Python 3.10 (#809 )-雨果·范·凯门纳德

  • 现在有了一个友好的GitHub问题模板。 (#800 )-阿尔瓦罗·蒙代贾尔·卢比奥

  • 不要在内部或测试中使用不推荐使用的FORMAT_NUMBER函数-Aarni Koskela

  • 为PYPI添加GitHub URL (#846 )--Andrii Oriekhov

  • Python3.12兼容性:优先选择setupTools导入,而不是distutils导入 (#843 )-阿尔尼·科斯克拉

  • Python3.11兼容性:向l*gettext变体添加弃用内容 (#835 )-阿尔尼·科斯克拉

  • CI:Babel现在测试了PYPy 3.7。 (#851 )-阿尔尼·科斯克拉

错误修正

  • 日期格式:允许使用 other 作为备用形式 (#827 )-阿尔尼·科斯克拉

  • 区域设置: Locale.parse() 将变体标签规范化为大写 (#829 )-阿尔尼·科斯克拉

  • 马耳他语复数格式的打字错误已修复。 (#796 )-卢卡斯·温克勒

  • 消息:目录日期解析现在独立于时区。 (#701 )--雷切尔-科林

  • 消息:在不使用行号的情况下修复重复位置 (#837 )-西古尔德·洛约达尔

  • 消息:修复复数形式标题中缺少的尾随分号 (#848 )-法汉5900

  • CLI:修复输出 --list-locales 不是字节寄存器 (#845 )-摩根·瓦尔

文档

  • 文档现在再次正确构建,并且是最新的 (#830 )-阿尔尼·科斯克拉

版本2.9.1

错误修正

  • 内部区域设置数据加载函数现在验证要加载的区域设置文件的名称,并且只允许Babel的数据目录中的文件。感谢Table,Inc.的Chris Lyne发现了这个问题!

版本2.9.0

即将到来的版本支持更改

  • 此版本(Babel 2.9)是支持Python2.7、Python3.4和Python3.5的最后一个版本。

改进

  • CLDR:使用CLDR 37-Aarni Koskela (#734 )

  • 日期:在GET_TIMEZONE_LOCATION、GET_TIMEZONE_NAME-Alessio Bogon中处理ZoneInfo对象 (#741 )

  • 数字:在数字格式中添加分组分隔符功能-阿卜杜拉·贾维德·内萨尔 (#726 )

错误修正

  • 日期:正确的默认格式().timeDelta格式为‘long’以静音弃用警告-Aarni Koskela

  • 导入:简化“import_cldr.py”中的迭代代码-Felix Schwarz

  • 导入:停止使用已弃用的ElementTree方法“getChildren()”和“getiterator()”-Felix Schwarz

  • 消息:修复没有TTY的Python2上的Unicode打印错误。--尼克拉斯·汉布陈(Niklas HambüChen)

  • 消息:介绍不变量_INVALID_POFILE()取UNICODE行。--尼克拉斯·汉布陈(Niklas HambüChen)

  • 测试:修复使用Python 3.9时的测试-Felix Schwarz

  • 测试:从Travis配置中删除不推荐使用的‘sudo:false’-Jon Dufresh ne

  • 测试:支持Py.test 6.x-Aarni Koskela

  • 实用程序:LazyProxy:在指定的函数中处理AttributeError-Nikiforov Konstantin (#724 )

  • 实用程序:将parser.Suite的用法替换为ast.parse-Miro Hrončok

文档

  • 更新parse_number注释-Brad Martin (#708 )

  • 添加 __iter__ 到目录文档-@CyanNani123

2.2.1版

这只是一个补丁版本,使在Py.test6+上运行测试成为可能。

错误修正

版本2.8.0

改进

  • CLDR:升级到CLDR 36.0-Aarni Koskela (#679 )

  • 消息:甚至不要打开带有“忽略”解压缩方法的文件--@sebleBlc (#678 )

错误修正

  • 数字:修复了禁用量化时非常小的小数的格式-Lev Lybin,@miluChen (#662 )

  • 邮件:尝试对所有邮件进行分类-马里奥·弗拉斯卡 (#651#606 )

文档

  • 为Changelog增加岁月-Romuald Brunet

  • 请注意,安装需要pytz-Steve(小工具)Barnes

版本2.7.0

可能不兼容的更改

在某些情况下,这些可能是向后不兼容的,因为一些或多或少的内部API已经改变。如果您遇到任何奇怪的事情,请随时将问题归档,我们将尽力帮助您!

  • 常规:内部使用 babel.util.odict 已被替换为 collections.OrderedDict 来自Python标准库。

改进

  • CLDR:升级到CLDR 35.1-阿尔贝托·马尔德根,Aarni Koskela (#626#643 )

  • 常规:允许将路径模式锚定到字符串的开头-Brian Cappello (#600 )

  • General:PYTZ-@chrisbrake上的颠簸版本要求 (#592 )

  • 信息: pybabel compile :如果遇到错误,则退出,代码为1-Aarni Koskela (#647 )

  • 消息:将省略标头添加到UPDATE_CATALOG-Cédric Krier (#633 )

  • 消息:目录更新:默认情况下保留来自目的地的用户评论-Aarni Koskela (#648 )

  • 消息:写入mo文件时跳过空消息-Cédric Krier (#564 )

  • 消息:小修复以避免格式错误的.po文件崩溃-Bryn Truscott (#597 )

  • 数字: parse_decimal() strict 论据和 suggestions --查莉·C (#590 )

  • 数字:不要在parse_decimal Strong-Serban Constantin中重复建议 (#599 )

  • Numbers:使用长显示名称实现货币格式-Luke Factory (#585 )

  • 数字:parse_decimal():假设空格在非严格模式下等同于不间断空格-Aarni Koskela (#649 )

  • 性能:缓存区域设置标识符()-Aarni Koskela (#644 )

错误修正

  • CLDR:跳过Alt=...周数据(minDays、FirstDay、WeekendStart、WeekendEnd)-Aarni Koskela (#634 )

  • 日期:修复2018年12月31日的错误周数-BT-sschmid (#621 )

  • 区域设置:避免试图在WindowsXP-Mondeja上获取数据的KeyError (#604 )

  • 区域设置:GET_DISPLAY_NAME():不要尝试将变量信息连接到None-Aarni Koskela (#645 )

  • Messages:POFILE:将比较运算符添加到_NorMalizedString-Aarni Koskela (#646 )

  • 消息:Pofile:消息时不要崩溃。位置无法排序-Aarni Koskela (#646 )

工装和文档

  • DOCS:删除对已弃用的Easy_Install-Jon Duresne的所有引用 (#610 )

  • DOCS:将文档中的PRINT语句切换为打印函数-NotAFile

  • Docs:将所有pypi.python.org URL更新为pypi.org-Jon Duresne (#587 )

  • Docs:在整个项目中尽可能使用HTTPS URL-Jon Duresne (#588 )

  • 支持:添加对Python3.7的测试和文档支持-Jon Duresne (#611 )

  • 支持:在Python3.8-dev-Aarni Koskela上测试 (#642 )

  • 支持:不建议使用集合中的abc,而不是集合中的abc。--朱利安·帕拉德 (#609 )

  • 测试:修复confest.py与PYTEST 4.3的兼容性-Miro HrončOK (#635 )

  • 测试:更新最热和最热-盖-miro hrončok (#635 )

版本2.6.0

可能不兼容的更改

在某些情况下,这些可能是向后不兼容的,因为一些或多或少的内部API已经改变。如果您遇到任何奇怪的事情,请随时将问题归档,我们将尽力帮助您!

  • 数字:重构小数处理代码并允许绕过小数量化。(@kdeldycke)(PR #538 )

  • 消息:允许处理Babel(@akx)(PR)未知区域设置中的文件 #557 )

  • 一般:放弃对EOL Python2.6和3.3(@hugok)(PR)的支持 #546 )

其他变化

  • CLDR:使用CLDR 33(@akx)(PR #581 )

  • 列表:添加对除默认样式(@akx)之外的各种列表样式的支持 (#552 )

  • 消息:添加新的PoFileError异常(@Bedrock02)(PR #532 )

  • 次数:简化特定于Linux发行版的显式时区设置搜索(@Scope)(PR #528 )

错误修正

  • CLDR:避免导入alt=窄幅货币符号(@akx)(PR #558 )

  • CLDR:忽略非拉丁文编号系统(@akx)(PR #579 )

  • DOCS:修复日期格式(@PTROTIER)(PR)的不正确示例 #574 )

  • 工具:修复一些弃用警告(@akx)(PR #580 )

工装和文档

  • 向某些日期自动函数(@XMO-ODOO)(PR)添加显式签名 #554 )

  • 在生成的轮包(@jduresne)(PR)中包含许可文件 #539 )

  • Python3.6无效转义序列弃用修复程序(@SCOP)(PR #528 )

  • 测试并记录所有受支持的Python版本(@jduresne)(PR #540 )

  • 更新版权标题年份和作者文件(@akx)(PR #559 )

2.5.3版

这是一个维护版本,它恢复了2.5.2版本中不需要的API中断更改(请参见 #550 )。

它基于v2.5.1(F29eccd),上面有提交7cedb84、29da2d2和edfb518。

2.5.2版

错误修正

  • 从2.5.0和2.5.1恢复不必要的PyInstaller修复 (#533 )(@yagebu)

2.5.1版

较小的改进和错误修复

  • 使用固定的日期时间以避免测试失败 (#520 )(@narendravardi)

  • 解析多行 __future__ 进口情况更好 (#519 )(@akx)

  • 修复VALIDATE_CURRENCE文档字符串 (#522 )

  • 允许NORMAIZE_LOCALE和EXISTS处理各种意外输入 (#523 )(@suhojm)

  • 使PyInstaller支持更加可靠 (#525#526 )(@thijstriemstra,@akx)

版本2.5.0

新特点

  • 数字:添加货币实用程序和助手 (#491 )(@kdeldycke)

  • 支持PyInstaller (#500#505 )(@wodo)

较小的改进和错误修复

  • 日期:添加 __str__ 至DateTimePattern (#515 )(@sfermiier)

  • 日期:修复在解析PY3上的TZ文件时无效的字符串到字节的比较 (#498 )(@rowillia)

  • 日期:设置日期的补零部分的格式更快 (#517 )(@akx)

  • 文档:修复CONTRIBUTING.md中的“Good Commits”链接 (#511 )(@naryanacharya6)

  • 文档:修复指向Python GetText模块的链接 (#512 )(@LinkID)

  • 消息:配置文件中允许使用破折号和下划线分隔的区域设置标识符 (#489#490 )(@akx)

  • Messages:在嵌套的getText调用中提取Python消息 (#488 )(@转让人)

  • 消息:修复迭代时目录列表的就地编辑 (#476#492 )(@MarcDuresne)

  • 邮件:稳定排序顺序 (#482 )(@xavfernandez)

  • 时区:使用后生地域名称的非继承标记 (#405 )(@akx)

2.4.0版

新特点

其中一些更改可能会破坏您当前的代码和/或测试。

  • CLDR:现在使用CLDR 29而不是CLDR 28 (#405 )(@akx)

  • 消息:为定位线格式添加选项‘ADD_LOCATION’ (#438#459 )(@rrader,@alxpy)

  • 数字:允许完全控制小数行为 (#410 )(@乙醇醇)

较小的改进和错误修复

  • 文档:改进日期字段说明 (#450 )(@ldwoolley)

  • 文档:拼写错误修复和文档改进 (#406#412#403#440#449#463 )(@zyegfred,@adamchainz,@jwilk,@akx,@roramirez,@abhishekcs10)

  • 消息:默认为UTF-8源编码,而不是ISO-8859-1 (#399 )(@asottile)

  • 消息:确保消息按照传入的顺序提取 (#424 )(@ngrilly)

  • 消息:改进了JSX文件的消息提取 (#392#396#425 )(@karloskar,@georgSchoelly)

  • 留言:PO文件读取支持多行报废单位 (#429 )(@mBirtwell)

  • 消息:Python消息提取程序支持中的UNICODE_TEXTAL __future__ (#427 )(@转让人)

  • 消息:往返语言标题 (#420 )(@kruton)

  • 消息:过时单位之前的单位不再错误地标记为过时 (#452 )(@mBirtwell)

  • 数字: parse_pattern 现在保留完整的原始图案 (#414 )(@jtwang)

  • Numbers: Fix float conversion in extract_operands (#435) (@akx)

  • 复数:捷克语和斯洛伐克语地区的固定复数形式 (#373 )(@ykshtreff)

  • 复数:基于Mozilla和CLDR引用的更多复数形式修复 (#431 )(@mshenfield)

内部改进

  • 在测试中正确构建了本地时间 (#411 )(@乙醇醇)

  • 各种各样的小改进 (#437 )(@Scope)

  • 正则表达式标志从正则表达式字符串中提取 (#462 )(@ingingwolfBoy)

  • PO文件读取器现在是一个类,并经历了一些重构 (#429#452 )(@mBirtwell)

版本2.3.4

(Bugfix发布,2016年4月22日发布)

错误修正

  • CLDR:lxml库不再用于CLDR导入,因此应该也不会导致奇怪的故障。感谢@aronbierbaum的错误报告和@jtwang的修复。 (#393 )

  • CLI:最后一个CLI使用率回归现在应该消失了,distutils和独立CLI都应该像过去一样工作。感谢@paxswill和@ajaeger提供错误报告。 (#389 )

版本2.3.3

(Bugfix发布,2016年4月12日发布)

错误修正

  • CLI:在2.2和2.3之间潜入的使用回归应该不再存在。 (#386 )感谢@ajaeger、@sebdiem和@jcristovao提供的错误报告和补丁。

版本2.3.2

(Bugfix发布,2016年4月9日发布)

错误修正

  • 日期:句点(上午/下午)格式在某些区域设置(即zh_TW)中被破坏。感谢@ju66j5的错误报告。 (#378#379 )

2.3.1版

(因部署问题而发布的错误修复版本,于2016年4月8日发布)

版本2.3

(特写发布,2016年4月8日发布)

内部改进

  • CLI前端和Distutils命令使用共享实施 (#311 )

  • 支持PYPY3 (#343 )

特征

  • CLDR:新增地域语言数据接口 (#315 )

  • 核心:字符顺序和测量系统数据的导入和暴露 (#368 )

  • Dates:添加时间间隔格式化接口 (#316 )

  • 日期:支持更多图案格式和长度 (#347 )

  • 日期:导入并公开期间ID (#349 )

  • 日期:添加了对日期-时间框架格式的支持 (#265 )

  • 日期:改进了时区格式 (#338 )

  • 消息:JavaScript提取现在支持点分名称、ES6模板字符串和JSX标记 (#332 )

  • 消息:默认情况下识别npgettext (#341 )

  • 消息:CLI学会了接受多个域 (#335 )

  • 消息:除目录外,提取命令现在还接受文件名 (#324 )

  • 单位:实现了一个新的单位格式化API (#369 )

错误修正

  • 核心:混合大小写的区域设置ID工作更可靠 (#361 )

  • 日期:S...S格式现在可以正常工作了 (#360 )

  • 消息:如果已指定排序,则所有消息现在都可以正确排序 (#300 )

  • 消息:修复目录标题更新(E0e7ef1)导致的意外行为 (#320 )

  • 消息:GetText操作数现在已正确生成 (#295 )

  • 消息:已教授消息提取以更好地检测编码 (#274 )

版本2.2

(特写发布,2016年1月2日发布)

错误修正

  • 常规:添加 __hash__ 转到现场。 (#303 )(2aa8074)

  • 常规:如果文件为UTF-8,则允许使用BOM (#189 )(Da87edd)

  • General:Localedata目录现在是Locale-Data (#109 )(2d1882e)

  • 常规:ODICT:修复POP方法(0a9e97e)

  • 常规:从.dat文件中删除了DateTim.Date类的用法 (#174 )(94f6830)

  • 消息:修复中文复数选择(531f666)

  • 消息:修复拼写错误并在复数形式中添加分号(_5784501)

  • 消息:将NullTranslations.files拼合为列表(Ad11101)

  • 时间:FixedOffsetTimezone:修复负偏移的显示(D816803)

特征

  • CLDR:更新至CLDR 28 (#292 )(9f7f4d0)

  • 常规:添加 __copy__ 和 __deepcopy__ 敬懒惰的Proxy。(A1cc3f1)

  • 常规:添加对Python3.4和3.5的官方支持

  • 一般:通过将关键字搜索设置为O(1)(6822b7f)来提高ODICT性能

  • 区域设置:将ORDERAL_FORM属性添加到区域设置 (#270 )(B3f3430)

  • 区域设置:添加对列表格式(37ce4fa、be6e23d)的支持

  • 区域设置:首先检查继承异常(3ef0d6d)

  • 消息:允许不带行号的文件位置 (#279 )(79bc781)

  • Messages: Allow passing a callable to extract() (#289) (3f58516)

  • 消息:支持采购订单文件的Language头字段 (#76 )(3ce842b)

  • 消息:从模板更新目录标题(E0e7ef1)

  • 数字:正确加载和公开货币格式类型 (#201 )(Df676ab)

  • 数字:默认情况下使用cdecimal(如果可用)(B6169be)

  • 数字:对Format_Currency使用CLDR建议的小数位数 (#139 )(201ed50)

  • 时间:添加format_timeDelta(format=‘Narrow’)支持(Edc5eb5)

版本2.1

(BugFix/次要功能发布,2015年9月25日发布)

  • 解析并支持区域设置继承异常 (#97 )

  • 使用修复Locale.parse global.dat 不兼容的类型 (#174 )

  • Fix display of negative offsets in FixedOffsetTimezone (#214)

  • 改进了本地化文件构建过程中使用的ODIT性能,应该可以缩短大型项目的编译时间

  • 添加对“窄”格式的支持 format_timedelta

  • 添加万向轮支撑

  • 支持.PO文件中的‘Language’头字段(修复 #76 )

  • 测试套件增强(覆盖范围、修复损坏的测试等)

  • 文档已更新

版本2

(2015年7月27日上映,代号《第二次降临》)

版本1.4

(错误修复版本,发布日期待定)

  • 修复了导致子标签解析不能正确转换不推荐使用的区域代码的错误。例如,当试图使用 und_UK 作为语言代码,现在可以正确解析为 en_GB .

  • 修复了在Windows系统上无法从头导入CLDR数据的错误。

版本1.3

(Bugfix发布,2013年7月29日发布)

  • 修复了一些常见区域设置的可能子标签解析中的错误。这主要使得 zh_CN 工作再次中断,这是由于它是如何定义在可能的子标签结合我们中断的解决方案。这会修复 #37 .

  • 修复了在Python 3上写入标准输出时导致pybabel中断的错误。

  • 已删除写入邮件目录的标准输出时导致问题的杂乱打印。

版本1.2

(Bugfix发布,2013年7月27日发布)

  • 把所有的测试都放在了柏油球里。以前,Include跳过了过去的递归文件夹。

  • 更改了调用测试的方式,并添加了单独的独立测试命令。这简化了Linux发行商对软件包的测试。

版本1.1

(Bugfix发布,2013年7月27日发布)

  • 添加了pytz的虚拟版本要求,以便将其安装在pip1.4上。

  • 包括油球里的测试。

版本1

(2013年7月26日上映,代号复兴)

  • 支持python2.6、2.7、3.3+和PyPy-drop所有其他版本

  • 使用毒素对不同的 Python 进行检测

  • 添加了对CLDR定义的区域设置复数规则的支持。

  • 补充 format_timedelta 函数使用“2天”或“1个月”等字符串支持相对时间的本地化格式 (ticket #126

  • 修复了Catalog._Set_MIME_Headers的负偏移量处理 (ticket #165

  • 修复了包含方括号的邮件会因解包错误而中断的情况。

  • 更新至CLDR 23

  • 使CLDR导入脚本与Python2.7一起工作。

  • 修正各种打字错误。

  • 对列表区域设置的输出进行排序。

  • 使正在更新的目录的POT创建日期等于用于更新的模板的POT创建日期 (ticket #148

  • 如果没有将任何选项或参数(命令)传递给pybabel,请使用更明确的错误消息 (ticket #81

  • 如果采购订单修订日期不是默认值,则保留该日期 (ticket #148

  • 修改Width的默认设置并模仿xgettext总是对注释进行换行的行为,从而实现不换行 (ticket #145

  • 为命令行添加--project和--version选项 (ticket #173

  • 向Local类添加__ne__()方法。

  • 显式排序而不是使用sorted(),并且不假定排序(Jython兼容性)。

  • 删除了字符串格式设置消息检查器在字符串不包含任何字符串格式设置时引发的ValueError (ticket #150 )。

  • 修复塞尔维亚语复数形式 (ticket #213

  • format_date()的速度略有提高 (ticket #216

  • 修复,以便Frontend.CommandLineInterface.run不会累积日志记录处理程序 (ticket #227 ,随初始补丁一起由dfraser报告)

  • 修复环境包含无效区域设置时的异常 (ticket #200

  • 使用cPickle代替Pickle以获得更好的性能 (ticket #225

  • 如果有两个最接近的数字,只使用银行家舍入算法作为平局决胜局;如果只有一个最近的数字,则照常进行舍入。 (ticket #267 ,Patch by Martin)

  • 允许在LazyProxy中禁用缓存行为 (ticket #208 ,来自Pedro Algarvio的初始补丁)

  • 在消息提取期间支持上下文感知方法 (ticket #229 ,Patch from David Rios)

  • “init”和“update”命令支持“--no-rapp”选项 (ticket #289

  • 如果输入值是具有7个以上有效数字的浮点型,则修复format_decimal()中分数的格式 (ticket #183

  • 使用DateTime参数修复format_date() (ticket #282 ,Patch来自Xavier Morel)

  • 使用较小的十进制值修复format_decimal() (ticket #214 ,Patch出自George Lund)

  • 修复对包含‘\n’的消息的处理 (ticket #198

  • 优雅地处理不规则多行msgstr(第一行不使用“”) (ticket #171

  • parse_decimal()现在返回小数而不是浮点数,API更改 (ticket #178

  • 在未安装setuptools的情况下运行setup.py时没有警告 (ticket #262

  • 被改进的 Locale.__eq__ 方法,因此仅当区域设置的所有属性(语言、区域、脚本、变体)相等时,区域设置才相等

  • 如果安装了pkg_resource但未找到egg-info,则求助于硬编码的消息提取器/检查器 (ticket #230

  • format_time()和format_datetime()现在也接受浮点数 (ticket #242

  • 添加与gettext.NullTranslations类似的Babel.support.NullTranslations类,但使用了Babel的所有新gettext方法 (ticket #277

  • “init”和“update”命令支持“--width”选项 (ticket #284

  • 修复setuptools集成的“input_dirs”选项 (ticket #232 ,Étienne Bersac最初的补丁程序)

  • 确保.mo文件头包含与源.po文件相同的信息 (ticket #199

  • 添加了对区域设置对象上的GET_LANGUAGE_NAME()的支持。

  • 添加了对区域设置对象上的GET_TERRITORY_NAME()的支持。

  • 添加了对区域设置对象上的GET_SCRIPT_NAME()的支持。

  • 增加了对货币名称的复数形式支持,并为包括全名的货币添加了‘?’模式。

  • 现在就依靠PYTZ,把它包得更好。这为我们提供了更好的时区转换支持和整体更好的API。

  • 添加了对PO文件读取显式字符集的支持。

  • 添加了实验性Python 3支持。

  • 添加了对返回时区名称的更好支持。

  • 更新目录时,不要丢弃它的过时消息。

  • 添加了在执行区域设置解析时无法找到匹配项的基本lisielySubtag解析。

版本0.9.6

(2011年3月17日发布)

  • Backport r493-494:文档排版修复。

  • 使CLDR导入脚本与Python2.7一起工作。

  • 修正各种打字错误。

  • 修复了Python 2.3兼容性 (ticket #146ticket #233

  • 对列表区域设置的输出进行排序。

  • 使正在更新的目录的POT创建日期等于用于更新的模板的POT创建日期 (ticket #148

  • 如果没有将任何选项或参数(命令)传递给pybabel,请使用更明确的错误消息 (ticket #81

  • 如果采购订单修订日期不是默认值,则保留该日期 (ticket #148

  • 修改Width的默认设置并模仿xgettext总是对注释进行换行的行为,从而实现不换行 (ticket #145

  • 修复了Catalog._Set_MIME_Headers的负偏移量处理 (ticket #165

  • 为命令行添加--project和--version选项 (ticket #173

  • 向Local类添加__ne__()方法。

  • 显式排序而不是使用sorted(),并且不假定排序(Python2.3和Jython兼容性)。

  • 删除了字符串格式设置消息检查器在字符串不包含任何字符串格式设置时引发的ValueError (ticket #150 )。

  • 修复塞尔维亚语复数形式 (ticket #213

  • format_date()的速度略有提高 (ticket #216

  • 修复CLDR指定Alt或Draft项目的区域设置的数字格式 (ticket #217

  • 修复format_time中的错误检查 (ticket #257 ,Jomae报告了补丁和测试)

  • 修复,以便Frontend.CommandLineInterface.run不会累积日志记录处理程序 (ticket #227 ,随初始补丁一起由dfraser报告)

  • 修复环境包含无效区域设置时的异常 (ticket #200

0.9.5版

(2010年4月6日发布)

  • 修复了包含方括号的邮件会因解包错误而中断的情况。

  • R467的后端:关于复数的模糊匹配应该 NOT 应对照len(message.id)进行检查,因为该值始终为2,而应对照Catalog.num_plulals进行检查 (ticket #212

版本0.9.4

(2008年8月25日发布)

  • 不再导入使用CLDR数据中的选择模式定义的货币符号定义,因此将改用符号代码。

  • 修复了日期格式中的季度支持。

  • 修复了0.9.3中对CLDR别名的支持导致的严重内存泄漏 (ticket #128

  • 解析时,区域设置修饰符(如“@EURO”)现在会从区域设置标识符中剥离 (ticket #136

  • 系统区域设置“C”和“POSIX”现在被视为“en_US_POSIX”的别名,CLDR为其提供适当的数据。感谢曼利奥·佩里洛的建议。

  • 修复了正则表达式文字的JavaScript提取 (ticket #138 )和连接的字符串。

  • 这个 Translation 班在 babel.support 现在可以管理具有不同消息域的目录,并公开 d*gettext 功能 (ticket #137

版本0.9.3

(2008年7月9日公布)

  • 修复了导致Unbound LocalError的无效消息提取方法。

  • 提取方法规范现在可以使用点而不是冒号来分隔模块和函数名 (ticket #105

  • 修复了具有两个以上复数形式的区域设置的消息目录编译 (ticket #95

  • 修复了具有两个以上复数形式且翻译为空的区域设置的消息目录编译 (ticket #97

  • 现在,剥离注释中的注释标记是可选的,并且是针对注释中的每一行进行的。

  • 添加了JavaScript消息提取器。

  • 更新到CLDR 1.6。

  • 修复了格式化日期时间和时间值时的时区计算。

  • 增加了一个 get_plural 函数转换为复数模块,该模块以元组形式返回区域设置的正确复数形式。

  • 在CLDR数据文件中添加了对别名定义的支持,这意味着在某些区域设置中丢失项目的机会应该会大大降低 (ticket #68

版本0.9.2

(2008年2月4日公布)

  • 修复了无法识别的目录字符集值 (ticket #66

  • 对默认复数形式的大量改进。

  • 修复了更新邮件目录时的模糊匹配问题 (ticket #82

  • 修复了目录更新中的错误,在某些情况下,基于同一模板从不同目录拉入翻译。

  • PO文件中的位置行不再使用文件名中的连字符换行 (ticket #79

  • 修复了空目录上的目录编译中以零除的错误 (ticket #60

0.9.1版

(2007年9月7日公布)

  • 修复了合并以前简单但现在具有复数形式的消息时的目录更新问题,例如,通过从 gettextngettext ,或者反之亦然。

  • 固定的时间格式为上午12点和下午12点

  • 的固定输出编码。 pybabel --list-locales 命令。

  • 在Windows上,Mo文件现在以二进制模式写入 (ticket #61

版本0.9

(2007年8月20日发布)

  • 这个 new_catalog distutils命令已重命名为 init_catalog 为了与命令行前端保持一致。

  • 将消息目录编译添加到MO文件 (ticket #21

  • 添加了从POT文件更新邮件目录 (ticket #22

  • 支持数字格式中的有效数字。

  • 以跨平台的方式在数字格式中应用适当的“银行家舍入”。

  • 现在,数字格式化函数还可以处理由Python表示的数字 Decimal 物体 (ticket #53

  • 添加了用于验证翻译目录的可扩展基础设施。

  • 修正了提取器无法过滤出不符合关键字规范验证的消息的问题 (ticket #39

  • 修复了遇到空字符串msgid时解压程序引发异常的问题。它现在向stderr发出警告。

  • 大量Python消息提取器修复:它现在可以正确处理gettext函数调用中的嵌套函数调用,对多行函数调用使用正确的行号,以及其他小修复(票证 ticket #38ticket #39

  • 改进了对检测消息字符串中的Python字符串格式字段的支持 (ticket #57

  • CLDR升级到1.5版本。

  • 改进了时区格式。

  • 实施科学数字格式化。

  • 添加了按别名查找区域设置的机制,用于浏览器坚持在 Accept-Language 标题,有时甚至是不正确的语言代码。

0.8.1 版本

(2007年7月2日公布)

  • default_locale() 属性的值时将失败 LANGUAGE 环境变量包含多个用冒号分隔的语言代码,这是GNU gettext工具明确允许的。作为 default_locale() 函数在某些模块中的模块级别调用,则此错误将完全中断在以下系统上导入这些模块 LANGUAGE 是这样设置的。

  • 基于PO模板文件创建新目录文件时,现在会考虑PO模板文件中指定的字符集。这允许在POT文件中使用ASCII范围之外的字符 (ticket #17

  • 生成的POT文件中邮件的默认排序(基于遍历源树时找到这些邮件的顺序)不再受平台差异的影响;目录和文件名现在始终按字母顺序排序。

  • Python消息提取器现在支持特殊编码注释,以便能够处理包含非ASCII字符的文件 (ticket #23

  • 补充 N_ (Gettext Noop)设置为解压程序的默认关键字。

  • 使区域设置字符串解析更加健壮,并将脚本部分考虑在内 (ticket #27

  • 添加了列出所有可获得区域设置数据的区域设置的函数。

  • 将命令行选项添加到 pybabel 用于打印所有可用区域设置的命令 (ticket #24

  • 命令行脚本的名称已从 babelpybabel 要避免与OpenBabel项目冲突,请执行以下操作 (ticket #34

版本0.8

(2007年6月20日发布)

  • 首次公开发布