diff --git a/web/default/public/locales/en/translation.json b/web/default/public/locales/en/translation.json index ea32c04c..034d1f4b 100644 --- a/web/default/public/locales/en/translation.json +++ b/web/default/public/locales/en/translation.json @@ -243,6 +243,34 @@ }, "redemption": { "title": "Redemption Management", + "search": "Search redemption codes by ID and name ...", + "table": { + "id": "ID", + "name": "Name", + "status": "Status", + "quota": "Quota", + "created_time": "Created Time", + "redeemed_time": "Redeemed Time", + "actions": "Actions", + "no_name": "None", + "not_redeemed": "Not Redeemed" + }, + "buttons": { + "copy": "Copy", + "delete": "Delete", + "confirm_delete": "Confirm Delete", + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + "add": "Add New Code", + "refresh": "Refresh" + }, + "status": { + "unused": "Unused", + "disabled": "Disabled", + "used": "Used", + "unknown": "Unknown" + }, "edit": { "title_edit": "Update Redemption Code", "title_create": "Create New Redemption Code", @@ -256,6 +284,10 @@ "submit": "Submit", "cancel": "Cancel" } + }, + "messages": { + "update_success": "Redemption code updated successfully!", + "create_success": "Redemption code created successfully!" } }, "log": { diff --git a/web/default/public/locales/zh/translation.json b/web/default/public/locales/zh/translation.json index 9a978289..e28cf678 100644 --- a/web/default/public/locales/zh/translation.json +++ b/web/default/public/locales/zh/translation.json @@ -243,6 +243,34 @@ }, "redemption": { "title": "兑换管理", + "search": "搜索兑换码的 ID 和名称 ...", + "table": { + "id": "ID", + "name": "名称", + "status": "状态", + "quota": "额度", + "created_time": "创建时间", + "redeemed_time": "兑换时间", + "actions": "操作", + "no_name": "无", + "not_redeemed": "尚未兑换" + }, + "buttons": { + "copy": "复制", + "delete": "删除", + "confirm_delete": "确认删除", + "enable": "启用", + "disable": "禁用", + "edit": "编辑", + "add": "添加新的兑换码", + "refresh": "刷新" + }, + "status": { + "unused": "未使用", + "disabled": "已禁用", + "used": "已使用", + "unknown": "未知状态" + }, "edit": { "title_edit": "更新兑换码信息", "title_create": "创建新的兑换码", @@ -256,6 +284,10 @@ "submit": "提交", "cancel": "取消" } + }, + "messages": { + "update_success": "兑换码更新成功!", + "create_success": "兑换码创建成功!" } }, "log": { diff --git a/web/default/src/components/RedemptionsTable.js b/web/default/src/components/RedemptionsTable.js index 70dab123..6f88ec67 100644 --- a/web/default/src/components/RedemptionsTable.js +++ b/web/default/src/components/RedemptionsTable.js @@ -176,6 +176,12 @@ const RedemptionsTable = () => { setLoading(false); }; + const refresh = async () => { + setLoading(true); + await loadRedemptions(0); + setActivePage(1); + }; + return ( <>
@@ -183,7 +189,7 @@ const RedemptionsTable = () => { icon='search' fluid iconPosition='left' - placeholder='搜索兑换码的 ID 和名称 ...' + placeholder={t('redemption.search')} value={searchKeyword} loading={searching} onChange={handleKeywordChange} @@ -199,7 +205,7 @@ const RedemptionsTable = () => { sortRedemption('id'); }} > - ID + {t('redemption.table.id')} { sortRedemption('name'); }} > - 名称 + {t('redemption.table.name')} { sortRedemption('status'); }} > - 状态 + {t('redemption.table.status')} { sortRedemption('quota'); }} > - 额度 + {t('redemption.table.quota')} { sortRedemption('created_time'); }} > - 创建时间 + {t('redemption.table.created_time')} { sortRedemption('redeemed_time'); }} > - 兑换时间 + {t('redemption.table.redeemed_time')} - 操作 + {t('redemption.table.actions')} @@ -276,21 +282,19 @@ const RedemptionsTable = () => { positive onClick={async () => { if (await copy(redemption.key)) { - showSuccess('已复制到剪贴板!'); + showSuccess(t('redemption.messages.copy_success')); } else { - showWarning( - '无法复制到剪贴板,请手动复制,已将兑换码填入搜索框。' - ); + showWarning(t('redemption.messages.copy_failed')); setSearchKeyword(redemption.key); } }} > - 复制 + {t('redemption.buttons.copy')} - 删除 + {t('redemption.buttons.delete')} } on='click' @@ -303,7 +307,7 @@ const RedemptionsTable = () => { manageRedemption(redemption.id, 'delete', idx); }} > - 确认删除 + {t('redemption.buttons.confirm_delete')} @@ -335,14 +341,12 @@ const RedemptionsTable = () => { - - + { const { success, message, data } = res.data; if (success) { if (isEdit) { - showSuccess('兑换码更新成功!'); + showSuccess(t('redemption.messages.update_success')); } else { - showSuccess('兑换码创建成功!'); + showSuccess(t('redemption.messages.create_success')); setInputs(originInputs); } } else { diff --git a/web/default/src/pages/Redemption/index.js b/web/default/src/pages/Redemption/index.js index 364a8c81..f07b0cd8 100644 --- a/web/default/src/pages/Redemption/index.js +++ b/web/default/src/pages/Redemption/index.js @@ -1,16 +1,21 @@ import React from 'react'; import { Card } from 'semantic-ui-react'; +import { useTranslation } from 'react-i18next'; import RedemptionsTable from '../../components/RedemptionsTable'; -const Redemption = () => ( -
- - - 兑换管理 - - - -
-); +const Redemption = () => { + const { t } = useTranslation(); + + return ( +
+ + + {t('redemption.title')} + + + +
+ ); +}; export default Redemption;