88 lines
1.8 KiB
Python
88 lines
1.8 KiB
Python
|
# _*_ coding : UTF-8 _*_
|
|||
|
# @Time : 2025/02/04 15:43
|
|||
|
# @UpdateTime : 2025/02/04 15:43
|
|||
|
# @Author : sonder
|
|||
|
# @File : i18n.py
|
|||
|
# @Software : PyCharm
|
|||
|
# @Comment : 本程序
|
|||
|
|
|||
|
from tortoise import fields
|
|||
|
|
|||
|
from models.common import BaseModel
|
|||
|
|
|||
|
|
|||
|
class Locale(BaseModel):
|
|||
|
"""
|
|||
|
语言模型.
|
|||
|
"""
|
|||
|
code = fields.CharField(
|
|||
|
max_length=10,
|
|||
|
description="语言代码",
|
|||
|
source_field="code",
|
|||
|
unique=True
|
|||
|
)
|
|||
|
"""
|
|||
|
语言代码。
|
|||
|
- 例如:en(英语)、zh(中文)、fr(法语)。
|
|||
|
- 最大长度为10个字符。
|
|||
|
- 映射到数据库字段 code
|
|||
|
"""
|
|||
|
|
|||
|
name = fields.CharField(
|
|||
|
max_length=50,
|
|||
|
description="语言名称",
|
|||
|
source_field="name",
|
|||
|
unique=True
|
|||
|
)
|
|||
|
"""
|
|||
|
语言名称。
|
|||
|
- 最大长度为50个字符。
|
|||
|
- 映射到数据库字段 name
|
|||
|
"""
|
|||
|
|
|||
|
class Meta:
|
|||
|
table = "locale"
|
|||
|
table_description = "语言表"
|
|||
|
|
|||
|
|
|||
|
class I18n(BaseModel):
|
|||
|
"""
|
|||
|
国际化模型.
|
|||
|
"""
|
|||
|
key = fields.CharField(
|
|||
|
max_length=255,
|
|||
|
description="国际化key",
|
|||
|
source_field="key"
|
|||
|
)
|
|||
|
"""
|
|||
|
国际化key。
|
|||
|
- 最大长度为255个字符。
|
|||
|
- 映射到数据库字段 key
|
|||
|
"""
|
|||
|
|
|||
|
locale = fields.ForeignKeyField(
|
|||
|
"models.Locale",
|
|||
|
related_name="i18n",
|
|||
|
description="语言",
|
|||
|
source_field="locale_id"
|
|||
|
)
|
|||
|
"""
|
|||
|
语言。
|
|||
|
- 关联到 Locale 模型。
|
|||
|
- 映射到数据库字段 locale_id
|
|||
|
"""
|
|||
|
|
|||
|
translation = fields.TextField(
|
|||
|
description="翻译内容",
|
|||
|
source_field="translation"
|
|||
|
)
|
|||
|
"""
|
|||
|
翻译内容。
|
|||
|
- 存储具体的翻译文本。
|
|||
|
- 映射到数据库字段 translation
|
|||
|
"""
|
|||
|
|
|||
|
class Meta:
|
|||
|
table = "i18n"
|
|||
|
table_description = "国际化表"
|