diff --git a/saiadmin-artd/src/views/plugin/dice/config/index/index.vue b/saiadmin-artd/src/views/plugin/dice/config/index/index.vue
index 2a13ac4..1cdc31e 100644
--- a/saiadmin-artd/src/views/plugin/dice/config/index/index.vue
+++ b/saiadmin-artd/src/views/plugin/dice/config/index/index.vue
@@ -111,8 +111,10 @@
// { type: 'selection' },
{ prop: 'group', label: '分组', minWidth: 140, align: 'center' },
{ prop: 'title', label: '标题', minWidth: 160, align: 'center' },
+ { prop: 'title_en', label: '标题(英文)', minWidth: 160, align: 'center' },
{ prop: 'name', label: '配置名称', align: 'center' },
{ prop: 'value', label: '值', minWidth: 240, align: 'center' },
+ { prop: 'value_en', label: '值(英文)', minWidth: 240, align: 'center' },
{
prop: 'operation',
label: '操作',
diff --git a/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue b/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue
index 31c58b4..8069108 100644
--- a/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue
+++ b/saiadmin-artd/src/views/plugin/dice/config/index/modules/edit-dialog.vue
@@ -16,7 +16,10 @@
/>
-
+
+
+
+
-
+
+
+
+
@@ -76,6 +82,7 @@
const rules = reactive({
group: [{ required: true, message: '分组必需填写', trigger: 'blur' }],
title: [{ required: true, message: '标题必需填写', trigger: 'blur' }],
+ title_en: [{ max: 255, message: '英文标题长度需小于 255 字符', trigger: 'blur' }],
name: [{ required: true, message: '配置名称必需填写', trigger: 'blur' }],
value: [{ required: true, message: '值必需填写', trigger: 'blur' }]
})
@@ -86,9 +93,11 @@
const initialFormData = {
id: null,
value: '',
+ value_en: '',
name: '',
group: '',
- title: ''
+ title: '',
+ title_en: ''
}
/**
diff --git a/server/app/api/controller/GameController.php b/server/app/api/controller/GameController.php
index 6a8c4de..a4ab0f2 100644
--- a/server/app/api/controller/GameController.php
+++ b/server/app/api/controller/GameController.php
@@ -25,21 +25,42 @@ class GameController extends BaseController
/**
* 获取游戏配置(按 group 分组)
* GET /api/game/config
+ * header: lang = zh | en
* 返回 data[group] = [ { name, title, value, create_time, update_time }, ... ]
+ * - lang=zh 或默认:title/value = 中文
+ * - lang=en:若存在英文配置则返回 title_en/value_en,否则回退到中文
*/
public function config(Request $request): Response
{
- $rows = DiceConfig::select('name', 'group', 'title', 'value', 'create_time', 'update_time')->get();
+ $rows = DiceConfig::select('name', 'group', 'title', 'title_en', 'value', 'value_en', 'create_time', 'update_time')->get();
+ $lang = $request->header('lang', 'zh');
+ if (!is_string($lang) || $lang === '') {
+ $lang = 'zh';
+ }
+ $langLower = strtolower($lang);
+ $isEn = $langLower === 'en' || str_starts_with($langLower, 'en-');
$data = [];
foreach ($rows as $row) {
$group = $row->group ?? '';
if (!isset($data[$group])) {
$data[$group] = [];
}
+ $title = $row->title;
+ $value = $row->value;
+ if ($isEn) {
+ $titleEn = $row->title_en ?? '';
+ $valueEn = $row->value_en ?? '';
+ if ($titleEn !== '') {
+ $title = $titleEn;
+ }
+ if ($valueEn !== '') {
+ $value = $valueEn;
+ }
+ }
$data[$group][] = [
'name' => $row->name,
- 'title' => $row->title,
- 'value' => $row->value,
+ 'title' => $title,
+ 'value' => $value,
'create_time' => $row->create_time,
'update_time' => $row->update_time,
];
diff --git a/server/app/dice/model/config/DiceConfig.php b/server/app/dice/model/config/DiceConfig.php
index 7a7bbcd..67c0832 100644
--- a/server/app/dice/model/config/DiceConfig.php
+++ b/server/app/dice/model/config/DiceConfig.php
@@ -17,7 +17,9 @@ use plugin\saiadmin\basic\eloquent\BaseModel;
* @property $name 配置名称
* @property $group 分组
* @property $title 标题
+ * @property $title_en 标题(英文)
* @property $value 值
+ * @property $value_en 值(英文)
* @property $create_time 创建时间
* @property $update_time 修改时间
*/
diff --git a/server/app/dice/validate/config/DiceConfigValidate.php b/server/app/dice/validate/config/DiceConfigValidate.php
index 1540d97..d6321d9 100644
--- a/server/app/dice/validate/config/DiceConfigValidate.php
+++ b/server/app/dice/validate/config/DiceConfigValidate.php
@@ -21,6 +21,7 @@ class DiceConfigValidate extends BaseValidate
'group' => 'require',
'title' => 'require',
'value' => 'require',
+ 'title_en' => 'max:100',
];
/**
@@ -31,6 +32,7 @@ class DiceConfigValidate extends BaseValidate
'group' => '分组必须填写',
'title' => '标题必须填写',
'value' => '值必须填写',
+ 'title_en' => '英文标题长度需小于 100 字符',
];
/**
@@ -42,12 +44,14 @@ class DiceConfigValidate extends BaseValidate
'group',
'title',
'value',
+ 'title_en',
],
'update' => [
'name',
'group',
'title',
'value',
+ 'title_en',
],
];