LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

英语C#.Net多语言开发中的问题

freeflydom
2024年10月17日 18:1 本文热度 404

问题与现象

多语言开发是一件成本很高的事情。
很多公司会退而求其次选择只开发英文版本的软件分发到不同国家,但这里仍存在不同问题。

我们就遇到了这样的问题,参考下面的代码。


CultureInfo culture;double number =1.5;  
  
culture = CultureInfo.CreateSpecificCulture("en-ID"); //英语(印度尼西亚)  
Thread.CurrentThread.CurrentCulture = culture;  
  
  
var b = double.TryParse("1.5"out double d);Console.WriteLine($"tostring result {number.ToString()}");  
Console.WriteLine($"try parse succes {b},result {d}");

输出为:

tostring result 1,5  
try parse succes Trueresult 15

在开发中,我们会把很多参数配置化(包括浮点数)写到配置文件中,但读取配置文件时,我们就会发现读取出来的浮点数解析不对了。

原因解决方案

原因

虽然都用英语,但印尼地区表示小数使用逗号来分隔整数与小数部分(很多国家,比如德国等都用这种,大家自行用上面的例子试一下,参考地区与语言代码

另一个例子是摄氏度的符号"°C" 和 "℃", 请具体参考
摄氏度的中文英文处理方式, 我们在比较字符串的时候会经常遇到这个问题。

解决方案

有很多方式可以处理这些问题,一方面我们可以像例子中指定本地化信息。 TryParse等函数可以明确的传参处理所有的TryParse的参数。这里主要说下不改代码如何解决这个问题)。

  • 修改本地账户的语言与地区信息,win11的新设置界面可以改,也可以直接Win+R 输入Control打开老版本的控制面板。在时间与区域中修改小数等的显示格式。

  • 很多人会发现当前启动的用户客户端程序已经正确了,但是服务还不正常,这是因为服务默认会使用SYSTEM账户启动,但是SYSTEM账户会使用当前Windows安装包安装时的默认的本地语言或多语言版本选择的语言导致问题。由于SYSTEM账户无法登陆,我们可以在账户管理中启用Administrator账户,再修改该账户的语言与地区为英语(美国),然后在服务管理器把你有问题的服务指定使用该账户就可以解决了。

参考:

  1. C# 多语言国际化问题中的 CultureInfo
  2. # C# 设置线程的默认CultureInfo



该文章在 2024/10/17 18:01:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved