feat: Tag permission interface
parent
2d38540070
commit
c0ae78411e
|
|
@ -175,7 +175,8 @@ class Operate(Enum):
|
||||||
TO_CHAT = "READ+TO_CHAT" # 去对话
|
TO_CHAT = "READ+TO_CHAT" # 去对话
|
||||||
SETTING = "READ+SETTING" # 管理
|
SETTING = "READ+SETTING" # 管理
|
||||||
DOWNLOAD = "READ+DOWNLOAD" # 下载
|
DOWNLOAD = "READ+DOWNLOAD" # 下载
|
||||||
AUTH = "READ+AUTH"
|
AUTH = "READ+AUTH" # 资源授权
|
||||||
|
TAG = "READ+TAG" # 标签设置
|
||||||
|
|
||||||
|
|
||||||
class RoleGroup(Enum):
|
class RoleGroup(Enum):
|
||||||
|
|
@ -325,6 +326,7 @@ Permission_Label = {
|
||||||
Group.APPLICATION.value: _("Application"),
|
Group.APPLICATION.value: _("Application"),
|
||||||
Group.KNOWLEDGE.value: _("Knowledge"),
|
Group.KNOWLEDGE.value: _("Knowledge"),
|
||||||
Group.KNOWLEDGE_DOCUMENT.value: _("Document"),
|
Group.KNOWLEDGE_DOCUMENT.value: _("Document"),
|
||||||
|
Group.KNOWLEDGE_TAG.value: _("Tag"),
|
||||||
Group.KNOWLEDGE_PROBLEM.value: _("Problem"),
|
Group.KNOWLEDGE_PROBLEM.value: _("Problem"),
|
||||||
Group.KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
Group.KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
||||||
Operate.IMPORT.value: _("Import"),
|
Operate.IMPORT.value: _("Import"),
|
||||||
|
|
@ -350,6 +352,7 @@ Permission_Label = {
|
||||||
Operate.WEIXIN_PUBLIC_ACCOUNT.value: _('Weixin Public Account'),
|
Operate.WEIXIN_PUBLIC_ACCOUNT.value: _('Weixin Public Account'),
|
||||||
Operate.ADD_KNOWLEDGE.value: _('Add to Knowledge Base'),
|
Operate.ADD_KNOWLEDGE.value: _('Add to Knowledge Base'),
|
||||||
Operate.AUTH.value: _('resource authorization'),
|
Operate.AUTH.value: _('resource authorization'),
|
||||||
|
Operate.TAG.value: _('Tag Setting'),
|
||||||
Group.APPLICATION_OVERVIEW.value: _('Overview'),
|
Group.APPLICATION_OVERVIEW.value: _('Overview'),
|
||||||
Group.APPLICATION_ACCESS.value: _('Application Access'),
|
Group.APPLICATION_ACCESS.value: _('Application Access'),
|
||||||
Group.APPLICATION_CHAT_USER.value: _('Dialogue users'),
|
Group.APPLICATION_CHAT_USER.value: _('Dialogue users'),
|
||||||
|
|
@ -368,6 +371,7 @@ Permission_Label = {
|
||||||
Group.SYSTEM_MODEL.value: _("Model"),
|
Group.SYSTEM_MODEL.value: _("Model"),
|
||||||
Group.SYSTEM_KNOWLEDGE.value: _("Knowledge"),
|
Group.SYSTEM_KNOWLEDGE.value: _("Knowledge"),
|
||||||
Group.SYSTEM_KNOWLEDGE_DOCUMENT.value: _("Document"),
|
Group.SYSTEM_KNOWLEDGE_DOCUMENT.value: _("Document"),
|
||||||
|
Group.SYSTEM_KNOWLEDGE_TAG.value: _("Tag"),
|
||||||
Group.SYSTEM_KNOWLEDGE_PROBLEM.value: _("Problem"),
|
Group.SYSTEM_KNOWLEDGE_PROBLEM.value: _("Problem"),
|
||||||
Group.SYSTEM_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
Group.SYSTEM_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
||||||
Group.SYSTEM_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
|
Group.SYSTEM_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
|
||||||
|
|
@ -375,6 +379,7 @@ Permission_Label = {
|
||||||
Group.SYSTEM_RES_MODEL.value: _("Model"),
|
Group.SYSTEM_RES_MODEL.value: _("Model"),
|
||||||
Group.SYSTEM_RES_KNOWLEDGE.value: _("Knowledge"),
|
Group.SYSTEM_RES_KNOWLEDGE.value: _("Knowledge"),
|
||||||
Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT.value: _("Document"),
|
Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT.value: _("Document"),
|
||||||
|
Group.SYSTEM_RES_KNOWLEDGE_TAG.value: _("Tag"),
|
||||||
Group.SYSTEM_RES_KNOWLEDGE_PROBLEM.value: _("Problem"),
|
Group.SYSTEM_RES_KNOWLEDGE_PROBLEM.value: _("Problem"),
|
||||||
Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
|
||||||
Group.SYSTEM_RES_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
|
Group.SYSTEM_RES_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
|
||||||
|
|
@ -394,7 +399,6 @@ Permission_Label = {
|
||||||
# SystemGroup.RESOURCE.value: _("Resource"),
|
# SystemGroup.RESOURCE.value: _("Resource"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Permission:
|
class Permission:
|
||||||
"""
|
"""
|
||||||
权限信息
|
权限信息
|
||||||
|
|
@ -665,6 +669,12 @@ class PermissionConstants(Enum):
|
||||||
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
|
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
|
||||||
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
|
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
|
||||||
)
|
)
|
||||||
|
KNOWLEDGE_DOCUMENT_TAG = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.TAG,
|
||||||
|
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||||
|
resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
|
||||||
|
parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
|
||||||
|
)
|
||||||
KNOWLEDGE_HIT_TEST = Permission(
|
KNOWLEDGE_HIT_TEST = Permission(
|
||||||
group=Group.KNOWLEDGE_HIT_TEST, operate=Operate.READ,
|
group=Group.KNOWLEDGE_HIT_TEST, operate=Operate.READ,
|
||||||
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
role_list=[RoleConstants.ADMIN, RoleConstants.USER],
|
||||||
|
|
@ -1224,6 +1234,10 @@ class PermissionConstants(Enum):
|
||||||
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
|
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
|
||||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
)
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_TAG = Permission(
|
||||||
|
group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
|
)
|
||||||
SHARED_KNOWLEDGE_TAG_READ = Permission(
|
SHARED_KNOWLEDGE_TAG_READ = Permission(
|
||||||
group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
|
|
@ -1444,6 +1458,10 @@ class PermissionConstants(Enum):
|
||||||
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
|
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
|
||||||
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
)
|
)
|
||||||
|
RESOURCE_KNOWLEDGE_DOCUMENT_TAG = Permission(
|
||||||
|
group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
|
)
|
||||||
RESOURCE_KNOWLEDGE_HIT_TEST = Permission(
|
RESOURCE_KNOWLEDGE_HIT_TEST = Permission(
|
||||||
group=Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
group=Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||||
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
|
||||||
|
|
|
||||||
|
|
@ -519,8 +519,8 @@ class DocumentView(APIView):
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission_workspace_manage_role(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
|
|
@ -724,8 +724,8 @@ class DocumentView(APIView):
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_permission_workspace_manage_role(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
|
|
@ -745,8 +745,8 @@ class DocumentView(APIView):
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_permission_workspace_manage_role(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
|
|
@ -770,8 +770,8 @@ class DocumentView(APIView):
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_permission_workspace_manage_role(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_TAG.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()],
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ from rest_framework.views import APIView
|
||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants, ViewPermission, CompareConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from knowledge.api.tag import TagCreateAPI, TagDeleteAPI, TagEditAPI
|
from knowledge.api.tag import TagCreateAPI, TagDeleteAPI, TagEditAPI
|
||||||
|
|
@ -25,9 +25,11 @@ class KnowledgeTagView(APIView):
|
||||||
tags=[_('Knowledge Base/Tag')] # type: ignore
|
tags=[_('Knowledge Base/Tag')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_CREATE.get_workspace_permission(),
|
PermissionConstants.KNOWLEDGE_TAG_CREATE.get_workspace_knowledge_permission(),
|
||||||
|
PermissionConstants.KNOWLEDGE_TAG_CREATE.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
RoleConstants.USER.get_workspace_role()
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
)
|
)
|
||||||
@log(
|
@log(
|
||||||
menu='tag', operate="Create a knowledge tag",
|
menu='tag', operate="Create a knowledge tag",
|
||||||
|
|
@ -47,9 +49,11 @@ class KnowledgeTagView(APIView):
|
||||||
tags=[_('Knowledge Base/Tag')] # type: ignore
|
tags=[_('Knowledge Base/Tag')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_permission(),
|
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_knowledge_permission(),
|
||||||
|
PermissionConstants.KNOWLEDGE_TAG_READ.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
RoleConstants.USER.get_workspace_role()
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
)
|
)
|
||||||
@log(
|
@log(
|
||||||
menu='tag', operate="Create a knowledge tag",
|
menu='tag', operate="Create a knowledge tag",
|
||||||
|
|
@ -74,9 +78,11 @@ class KnowledgeTagView(APIView):
|
||||||
tags=[_('Knowledge Base/Tag')] # type: ignore
|
tags=[_('Knowledge Base/Tag')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_EDIT.get_workspace_permission(),
|
PermissionConstants.KNOWLEDGE_TAG_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
PermissionConstants.KNOWLEDGE_TAG_EDIT.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
RoleConstants.USER.get_workspace_role()
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
)
|
)
|
||||||
@log(
|
@log(
|
||||||
menu='tag', operate="Update a knowledge tag",
|
menu='tag', operate="Update a knowledge tag",
|
||||||
|
|
@ -99,9 +105,11 @@ class KnowledgeTagView(APIView):
|
||||||
tags=[_('Knowledge Base/Tag')] # type: ignore
|
tags=[_('Knowledge Base/Tag')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_permission(),
|
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_knowledge_permission(),
|
||||||
|
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
RoleConstants.USER.get_workspace_role()
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
)
|
)
|
||||||
@log(
|
@log(
|
||||||
menu='tag', operate="Delete a knowledge tag",
|
menu='tag', operate="Delete a knowledge tag",
|
||||||
|
|
@ -124,9 +132,11 @@ class KnowledgeTagView(APIView):
|
||||||
tags=[_('Knowledge Base/Tag')] # type: ignore
|
tags=[_('Knowledge Base/Tag')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_permission(),
|
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_knowledge_permission(),
|
||||||
|
PermissionConstants.KNOWLEDGE_TAG_DELETE.get_workspace_permission_workspace_manage_role(),
|
||||||
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
|
||||||
RoleConstants.USER.get_workspace_role()
|
ViewPermission([RoleConstants.USER.get_workspace_role()],
|
||||||
|
[PermissionConstants.KNOWLEDGE.get_workspace_knowledge_permission()], CompareConstants.AND),
|
||||||
)
|
)
|
||||||
@log(
|
@log(
|
||||||
menu='tag', operate="Batch Delete knowledge tag",
|
menu='tag', operate="Batch Delete knowledge tag",
|
||||||
|
|
|
||||||
|
|
@ -8730,4 +8730,10 @@ msgid "Sample Rate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Captcha is required"
|
msgid "Captcha is required"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Tag"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Tag Setting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -8856,4 +8856,10 @@ msgid "Sample Rate"
|
||||||
msgstr "采样率"
|
msgstr "采样率"
|
||||||
|
|
||||||
msgid "Captcha is required"
|
msgid "Captcha is required"
|
||||||
msgstr "验证码是必填项"
|
msgstr "验证码是必填项"
|
||||||
|
|
||||||
|
msgid "Tag"
|
||||||
|
msgstr "标签管理"
|
||||||
|
|
||||||
|
msgid "Tag Setting"
|
||||||
|
msgstr "标签设置"
|
||||||
|
|
|
||||||
|
|
@ -8856,4 +8856,10 @@ msgid "Sample Rate"
|
||||||
msgstr "採樣率"
|
msgstr "採樣率"
|
||||||
|
|
||||||
msgid "Captcha is required"
|
msgid "Captcha is required"
|
||||||
msgstr "驗證碼是必填項"
|
msgstr "驗證碼是必填項"
|
||||||
|
|
||||||
|
msgid "Tag"
|
||||||
|
msgstr "標籤管理"
|
||||||
|
|
||||||
|
msgid "Tag Setting"
|
||||||
|
msgstr "標籤設定"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue