首页 > 其他分享 >英语.Net多语言开发中的问题

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

时间:2024-08-04 22:49:47浏览次数:12  
标签:CultureInfo 账户 问题 result Net 英语 语言

问题与现象

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

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


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 True,result 15

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

原因解决方案

原因

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

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

解决方案

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

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

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

参考:

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

标签:CultureInfo,账户,问题,result,Net,英语,语言
From: https://www.cnblogs.com/zhangchen-trunk/p/18342375

相关文章

  • 模拟实现 strstr(字符串查找) --浅谈C语言
    C字符串查找-strstr()描述C库函数char*strstr(constchar*haystack,constchar*needle)在字符串haystack中查找第一次出现字符串needle的位置,不包含终止符'\0'。声明下面是strstr()函数的声明。char*strstr(constchar*haystack,constchar*needle)参......
  • TELNET命令的使用技巧及其在网络故障排查中的作用
    TELNET命令的使用技巧及其在网络故障排查中的作用大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!TELNET是一种简单的网络协议和工具,用于远程访问计算机系统。在网络故障排查中,TELNET可以帮助我们验证网络连接、测试端口、诊断服务问题等。本文将探......
  • 【自动化测试必学语言】python:面向对象
    目录面向对象基本介绍类和对象类的组成类的抽象(类的设计)面向代码的步骤面向对象基本代码的书写self的说明对象的属性操作添加属性获取属性魔法方法__init__方法**__str__方法*__del__方法 【了解】案例封装案例案例二私有和公有案例继承语法案例......
  • 【秋招笔试】2024-08-03-科大讯飞秋招笔试题(算法岗)-三语言题解(CPP/Python/Java)
    ......
  • 编程常用英语单词中英文对照表
    distributed美[dɪˈstrɪbjuːtɪd] 使分布;  分配;  分发;  分销;  分散;  使散开; program 美[ˈproʊɡræm] 程序;  编码指令; BASIS  基础;  标准;  基本;  ASIS 按原来的softwarepackage 美[ˈsɔːftwerpækɪdʒ......
  • 【学习笔记】Matlab和python双语言的学习(蒙特卡洛法)
    文章目录前言一、蒙特卡洛二、经典示例:计算圆周率π1.代码实现----Matlab2.代码实现----python三、示例2:三门问题1.代码实现----Matlab2.代码实现----python总结前言通过模型算法,熟练对Matlab和python的应用。学习视频链接:https://www.bilibili.com/video/BV1E......
  • Go必知必会:深入剖析Go语言中的结构体
    Go必知必会:深入剖析Go语言中的结构体原创王中阳王中阳 2024年07月24日06:03北京1人听过文末有面经共享群本文来自极客学院专栏,欢迎订阅:Go入门进阶实战专栏:其实学Go很简单。 Go语言以其清晰的语法和强大的内置类型系统,为构建高效且易于维护的软件程序提供了坚实的基础......
  • C语言学习----常用函数
    1.输入输出:scanf输入printf输出格式:scanf("格式控制符",变量的地址);printf(“格式控制符”,变量);注意变量的地址和变量不同,变量的地址用取址符&加变量名组成例如&a;inta;scanf("%d",&a);printf("%d",a);这段代码会要求从控制台输入一个整数,然后输出它。格式控制......
  • C语言零基础学习笔记12——数组(一)
    本节大纲一、数组的概念二、一维数组的创建和初始化三、一维数组的使用四、一维数组在内存中的储存五、sizeof计算数组元素个数一、数组的概念        数组的概念是一组相同类型元素的集合;从这个概念中我们就可以发现2个有价值的信息:1、数组中存放的是1个......
  • 模拟实现 srtcat(字符串追加) --浅谈C语言
    strcat描述char*strcat(char*dest,constchar*src)把src所指向的字符串追加到dest所指向的字符串的结尾。声明下面是strcat()函数的声明。char*strcat(char*dest,constchar*src)参数dest--指向目标数组,该数组包含了一个C字符串,且足够容纳追加后的字符......