跳转到主要内容

pydantic错误翻译。

项目描述

pydantic-translations

pydantic错误翻译。

语言

目前,我们已经将pydantic v1.10.2错误翻译成以下语言

  • de: 德语。87/87。
  • es: 西班牙语。87/87。
  • fr: 法语。87/87。
  • it: 意大利语。87/87。
  • nl: 荷兰语。87/87。
  • ru: 俄语。82/87。

需要更多语言?欢迎贡献!

安装

python3 -m pip install pydantic-translations

用法

假设您有一个pydantic模型User

from pydantic import BaseModel

class User(BaseModel):
    age: int

翻译由Translator类管理,该类使用您想要消息翻译到的区域设置(语言)进行实例化

from pydantic_translations import Translator

tr = Translator('ru')

您可以使用翻译器作为上下文管理器来翻译上下文中引发的pydantic异常

with tr:
    User.parse_obj({'age': 'idk'})
# ValidationError: 1 validation error for User
# age
#   значение должно быть целым числом (type=type_error.integer)

或使用translate_exception方法直接翻译异常实例

from pydantic import ValidationError

try:
    User.parse_obj({'age': 'idk'})
except ValidationError as exc:
    exc = tr.translate_exception(exc)
    raise exc

或使用translate_error方法翻译特定错误

try:
    User.parse_obj({'age': 'idk'})
except ValidationError as exc:
    err = exc.errors()[0]
    err = tr.translate_error(err)
    print(err)
# {'loc': ('age',), 'msg': 'значение должно быть целым числом', 'type': 'type_error.integer'}

自定义翻译

如果您已将错误翻译成新语言,最好的做法是将它贡献回来。如果由于某些(法律?)原因您不能这样做,您可以将带有翻译的l10n区域设置传递给Translated

from l10n import Locales

locales = Locales()
locale = locales['ua']
tr = Translator(locale)

贡献者

  1. @samuelcolvinpydantic贡献者提供的原始错误消息。
  2. 俄语翻译由@orsinium提供。
  3. 德语、西班牙语、法语、意大利语和荷兰语的翻译由Andovar翻译机构提供。

小修小改由项目贡献者提供。

项目详情


下载文件

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

源代码分发

pydantic_translations-0.2.2.tar.gz (32.8 kB 查看哈希值)

上传时间 源代码

构建分发

pydantic_translations-0.2.2-py3-none-any.whl (29.6 kB 查看哈希值)

上传时间 Python 3

支持者