蚣澡 发表于 2025-6-6 09:04:22

.NET应用系统的国际化-整体设计思路

近期产品要支持国际化多语言,主要涉及前端界面国际化以及后端提示信息、异常信息的国际化多语言支持。
目前我们的开发技术栈:前端VUE、后端.NET。面向前端界面和后端服务,分别涉及对应的国际化多语言支持方案。
一、前端界面国际化多语言支持

前端VUE界面的源码如下:

 
 上述代码中,我们将需要多语言支持的文本,统一使用:
$t("web.layout_logoTitle")前端对应的多语言包web对象结构如下:

上面是标准的VUE前端国际化多语言实现技术。
如果这么做的话,需要前端开发同学把每个VUE界面都识别、翻译形成一个多语言包JS文件,工作量巨大。
所以我们有个初步的想法,通过代码文本识别,抽取多语言文本词条,代码中统一替换为词条ID,同时按界面生成多语言JS文件。
如果能搞定的话,这将大大提升前端国际化改造的效率。
二、后端服务国际化多语言支持

后端代码目前是这样的:
private static void CheckMd5(string fileName, string md5Data)
{
      string md5Str = MD5Service.GetMD5(fileName);
      if (!string.Equals(md5Str, md5Data, StringComparison.OrdinalIgnoreCase))
      {
         throw new CustomException(PackageExceptionConst.FileMd5CheckFailed, "服务包文件MD5校验失败:" + fileName);
      }
}代码中需要将“服务包文件MD5校验失败”这个文本做多语言改造。
例如:英文
throw new CustomException(PackageExceptionConst.FileMd5CheckFailed, "Verification of service pack file MD5 failed:" + fileName);
如果支持多个语言,这个地方就不好处理了。不能为了每个语言搞一行代码,同时也无法支持后续新增语言。
因此,计划在后端提供一个多语言词条服务,运行时根据用户登录的语言,动态获取对应的多语言文本。
整体设计思路是这样的:

[*]提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条
[*]提供一个翻译服务,批量翻译多语言词条
[*]提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态获取对应的多语言文本
[*]提供前端多语言JS生成服务,按界面动态生成对应的多语言JS文件,方便前端VUE文件使用。
[*]提供代码替换工具,将VUE前端代码中的中文替换为$t("词条ID"),后端代码中的中文替换为TermService.Current.GetText("词条ID")
接下来,将按上述5个部分,给大家的分别展开分享具体的实现。
 
周国庆
2023/3/5
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

宁觅波 发表于 2025-10-25 00:50:50

感谢分享,下载保存了,貌似很强大

盛天欣 发表于 2025-11-4 13:49:18

前排留名,哈哈哈

桂册 发表于 2025-12-1 01:34:52

懂技术并乐意极积无私分享的人越来越少。珍惜

酒跚骼 发表于 2025-12-13 11:55:32

感谢,下载保存了

褥师此 发表于 2025-12-22 09:02:13

感谢分享

康器 发表于 2025-12-25 16:56:56

这个好,看起来很实用

筒濂 发表于 2026-1-14 23:25:27

yyds。多谢分享

频鹏凶 发表于 2026-1-24 06:28:37

懂技术并乐意极积无私分享的人越来越少。珍惜

格恳绌 发表于 2026-1-24 08:53:22

感谢分享,下载保存了,貌似很强大

那虻 发表于 2026-1-26 11:32:04

很好很强大我过来先占个楼 待编辑

柏雅云 发表于 2026-1-27 05:05:09

东西不错很实用谢谢分享

硫辨姥 发表于 2026-1-29 03:13:06

感谢分享

姊囝 发表于 2026-1-31 02:42:55

喜欢鼓捣这些软件,现在用得少,谢谢分享!

顶豌 发表于 2026-2-3 05:04:17

东西不错很实用谢谢分享

幌斛者 发表于 2026-2-3 22:09:35

谢谢楼主提供!

仁夹篇 发表于 2026-2-3 22:10:32

谢谢分享,试用一下

懵崭 发表于 2026-2-4 10:22:17

鼓励转贴优秀软件安全工具和文档!

阴昭昭 发表于 2026-2-7 11:11:09

收藏一下   不知道什么时候能用到

涣爹卮 发表于 2026-2-9 04:04:01

收藏一下   不知道什么时候能用到
页: [1] 2
查看完整版本: .NET应用系统的国际化-整体设计思路