LingAdmin/Backend/Services/ApiGateway/LingAdmin.ApiGateway/Controllers/I18nController.cs

192 lines
5.8 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace LingAdmin.ApiGateway.Controllers;
/// <summary>
/// 国际化控制器 - 提供多语言支持
/// </summary>
[ApiController]
[Route("api/i18n")]
public class I18nController : ControllerBase
{
[HttpGet("manifest")]
public ActionResult<object> GetManifest()
{
var manifest = new
{
languages = new[]
{
new { code = "en-US", name = "English", version = "1.0" },
new { code = "zh-CN", name = "简体中文", version = "1.0" }
}
};
return Ok(new { code = 200, data = manifest });
}
[HttpGet("lang/{languageCode}")]
public ActionResult<object> GetLanguage(string languageCode)
{
var translations = languageCode.ToLower() switch
{
"en-us" => GetEnglishTranslations(),
"zh-cn" => GetChineseTranslations(),
_ => null
};
if (translations == null)
{
return NotFound(new { code = 404, message = "Language not found" });
}
return Ok(new { code = 200, data = translations });
}
private object GetEnglishTranslations()
{
return new
{
common = new
{
login = "Sign in",
loginDesc = "Enter your email below to login to your account",
email = "Email",
password = "Password",
submitLogin = "Sign In",
loggingIn = "Signing in...",
loginFailed = "Login failed. Please check your credentials.",
logout = "Logout",
dashboard = "Dashboard",
users = "Users",
settings = "Settings",
requisitions = "Requisitions"
},
menu = new
{
dashboard = "Dashboard",
users = "Users",
settings = "Settings",
requisitions = "Requisitions"
},
dashboard = new
{
title = "Dashboard",
totalRevenue = "Total Revenue",
subscriptions = "Subscriptions",
sales = "Sales",
activeNow = "Active Now"
},
users = new
{
title = "Users",
refresh = "Refresh Data",
name = "Name",
status = "Status",
createdAt = "Created At"
},
settings = new
{
title = "Settings",
desc = "System settings will be here."
},
requisitions = new
{
title = "Purchase Requisitions",
listTitle = "Requisition List",
create = "Create Requisition",
edit = "Edit Requisition",
id = "ID",
reqNo = "Request No",
requester = "Requester",
department = "Department",
date = "Date",
status = "Status",
description = "Description",
items = "Items",
itemName = "Item Name",
quantity = "Quantity",
price = "Price",
total = "Total",
actions = "Actions",
addItem = "Add Item",
save = "Save",
cancel = "Cancel",
delete = "Delete"
}
};
}
private object GetChineseTranslations()
{
return new
{
common = new
{
login = "登录",
loginDesc = "请输入您的邮箱登录账户",
email = "邮箱",
password = "密码",
submitLogin = "登录",
loggingIn = "登录中...",
loginFailed = "登录失败,请检查您的凭据。",
logout = "退出登录",
dashboard = "仪表盘",
users = "用户管理",
settings = "系统设置",
requisitions = "请购单"
},
menu = new
{
dashboard = "仪表盘",
users = "用户管理",
settings = "系统设置",
requisitions = "请购单"
},
dashboard = new
{
title = "仪表盘",
totalRevenue = "总收入",
subscriptions = "订阅数",
sales = "销售额",
activeNow = "当前在线"
},
users = new
{
title = "用户管理",
refresh = "刷新数据",
name = "姓名",
status = "状态",
createdAt = "创建时间"
},
settings = new
{
title = "系统设置",
desc = "这里将显示系统设置内容。"
},
requisitions = new
{
title = "请购单",
listTitle = "请购单列表",
create = "新建请购单",
edit = "编辑请购单",
id = "ID",
reqNo = "单号",
requester = "申请人",
department = "部门",
date = "日期",
status = "状态",
description = "描述",
items = "明细项",
itemName = "物品名称",
quantity = "数量",
price = "单价",
total = "总价",
actions = "操作",
addItem = "添加明细",
save = "保存",
cancel = "取消",
delete = "删除"
}
};
}
}