feat: 中文化 django-admin 字段标签 (T-603)

This commit is contained in:
QiuSW
2026-07-04 16:27:45 +08:00
parent 4aceb3ae25
commit fb1037933d
14 changed files with 714 additions and 139 deletions
+39 -35
View File
@@ -11,31 +11,33 @@ from .security import decrypt_api_key, encrypt_api_key, mask_secret
class AiModel(models.Model):
class ApiType(models.TextChoices):
AUTO = "auto", "Auto"
CHAT = "chat", "Chat completions"
AUTO = "auto", "自动"
CHAT = "chat", "聊天补全"
GEMINI = "gemini", "Gemini"
IMAGES = "images", "Images generations"
IMAGES_EDITS = "images_edits", "Images edits"
IMAGES = "images", "图片生成"
IMAGES_EDITS = "images_edits", "图片编辑"
name = models.CharField(max_length=128, unique=True)
url = models.URLField(max_length=500)
model = models.CharField(max_length=128)
name = models.CharField("名称", max_length=128, unique=True)
url = models.URLField("接口 URL", max_length=500)
model = models.CharField("模型标识", max_length=128)
api_type = models.CharField(
"API 类型",
max_length=32,
choices=ApiType.choices,
default=ApiType.AUTO,
)
api_key_encrypted = models.TextField(blank=True, editable=False)
capabilities = models.JSONField(default=list, blank=True)
api_key_encrypted = models.TextField("加密 API Key", blank=True, editable=False)
capabilities = models.JSONField("能力", default=list, blank=True)
timeout_seconds = models.PositiveIntegerField(
"请求超时秒数",
default=0,
help_text="0 means use provider resolution defaults.",
help_text="0 表示使用 provider 默认值。",
)
connect_timeout_seconds = models.PositiveIntegerField(default=30)
extra_body = models.JSONField(default=dict, blank=True)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
connect_timeout_seconds = models.PositiveIntegerField("连接超时秒数", default=30)
extra_body = models.JSONField("额外请求体", default=dict, blank=True)
is_active = models.BooleanField("启用", default=True)
created_at = models.DateTimeField("创建时间", auto_now_add=True)
updated_at = models.DateTimeField("更新时间", auto_now=True)
class Meta:
db_table = "ai_model"
@@ -88,20 +90,21 @@ class AiModel(models.Model):
class ModelAlias(models.Model):
class OperationType(models.TextChoices):
TITLE = "title", "Generate title"
IMAGE = "image", "Generate image"
TITLE = "title", "生成标题"
IMAGE = "image", "生成图片"
alias = models.SlugField(max_length=64)
operation_type = models.CharField(max_length=32, choices=OperationType.choices)
alias = models.SlugField("能力别名", max_length=64)
operation_type = models.CharField("操作类型", max_length=32, choices=OperationType.choices)
ai_model = models.ForeignKey(
AiModel,
verbose_name="AI 模型",
on_delete=models.PROTECT,
related_name="aliases",
)
is_default = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
is_default = models.BooleanField("默认别名", default=False)
is_active = models.BooleanField("启用", default=True)
created_at = models.DateTimeField("创建时间", auto_now_add=True)
updated_at = models.DateTimeField("更新时间", auto_now=True)
class Meta:
db_table = "model_alias"
@@ -142,28 +145,29 @@ class ModelAlias(models.Model):
class AiConfigAuditLog(models.Model):
class TargetType(models.TextChoices):
AI_MODEL = "ai_model", "AI model"
MODEL_ALIAS = "model_alias", "Model alias"
AI_MODEL = "ai_model", "AI 模型"
MODEL_ALIAS = "model_alias", "能力别名"
class Action(models.TextChoices):
CREATE = "create", "Create"
UPDATE = "update", "Update"
DELETE = "delete", "Delete"
CREATE = "create", "创建"
UPDATE = "update", "更新"
DELETE = "delete", "删除"
actor = models.ForeignKey(
settings.AUTH_USER_MODEL,
verbose_name="操作人",
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name="+",
)
action = models.CharField(max_length=16, choices=Action.choices)
target_type = models.CharField(max_length=32, choices=TargetType.choices)
target_id = models.PositiveBigIntegerField(null=True, blank=True)
target_repr = models.CharField(max_length=255)
changed_fields = models.JSONField(default=list, blank=True)
changes = models.JSONField(default=dict, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
action = models.CharField("动作", max_length=16, choices=Action.choices)
target_type = models.CharField("目标类型", max_length=32, choices=TargetType.choices)
target_id = models.PositiveBigIntegerField("目标 ID", null=True, blank=True)
target_repr = models.CharField("目标描述", max_length=255)
changed_fields = models.JSONField("变更字段", default=list, blank=True)
changes = models.JSONField("变更内容", default=dict, blank=True)
created_at = models.DateTimeField("创建时间", auto_now_add=True)
class Meta:
db_table = "ai_config_audit_log"