首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年08月04日 21:53

问题与现象

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

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


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
From:https://www.cnblogs.com/zhangchen-trunk/p/18342375
本文地址: http://www.shuzixingkong.net/article/780
0评论
提交 加载更多评论
其他文章 程序员副业探索之电商
在腾讯广告工作期间,我主要负责小程序电商与广告业务,见证了互联网电商行业的剧变,特别是众多电商公司纷纷拥抱私域流量,直播带货成为新风尚,广告投入也在持续增加。通过这些经历,我积累了不少关于互联网电商的经验,并萌生了尝试电商副业的想法。 在小红书上,女装博主们凭借独特的穿搭分享吸引了大量粉丝,“种草”
程序员副业探索之电商 程序员副业探索之电商 程序员副业探索之电商
全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率
一直有个问题,就是理论上全双工网卡在运行时上下行的上限速率应该是一致的,但是实际网卡的标识的最高速率是否是指上下行速率之和还是和上下行速率一样。 为了解决这个问题,于是拿了两台台式机,分别装有千兆网卡(全双工),并使用六类线网线,两台主机同时向对方拷贝文件,效果如下: 结论: 全双工的网卡,其上下行
全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率 全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率
使用django-treebeard实现树类型存储与编辑
前言 其实之前做很多项目都有遇到跟树相关的功能,以前都是自己实现的,然后前端很多UI组件库都有Tree组件,套上去就可以用。 不过既然用 Django 了,还是得充分发挥一下生态的优势,但是我找了半天,也就这个 treebeard 能用,其他要不停更了要不就功能很拉,没有可视化编辑树的功能。 难道D
使用django-treebeard实现树类型存储与编辑
代码随想录Day4
24.两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3:
代码随想录Day4 代码随想录Day4 代码随想录Day4
Vue Vine:带给你全新的 Vue 书写体验!
你好,我是 Kagol,个人公众号:前端开源星球。 上个月和 TinyVue 的小伙伴们一起参加了 VueConf 24 大会,有幸认识沈青川大佬,并了解了他的 Vue Vine 项目,Vue Vine 让你可以在一个文件中通过函数方式定义多个 Vue 组件,同时可以使用所有 Vue 的模板特性。
Vue Vine:带给你全新的 Vue 书写体验! Vue Vine:带给你全新的 Vue 书写体验! Vue Vine:带给你全新的 Vue 书写体验!
从零体检一个魔塔社区模型(modelscope)最简单demo
从社区拿一个模型,比如以下这个链接 https://www.modelscope.cn/models/iic/cv_mobilenet-v2_bad-image-detecting 它的代码样例如下 from modelscope.pipelines import pipeline from mod
从零体检一个魔塔社区模型(modelscope)最简单demo 从零体检一个魔塔社区模型(modelscope)最简单demo
【EF Core】自动生成的字段值
自动生成字段值,咱们首先想到的是主键列(带 IDENTITY 的主键)。EF Core 默认的主键配置也是启用 Identity 自增长的,而且可以自动标识主键。前提是代表主键的实体属性名要符合以下规则: 1、名字叫 ID、id、或 Id,就是不分大小写; 2、名字由实体类名 + Id 构成。比如,
【EF Core】自动生成的字段值 【EF Core】自动生成的字段值
实现一个终端文本编辑器来学习golang语言:第三章文本查看器part1
本章我们来完成文本编辑器的文件打开和查看功能,最后成品如上图。我们将分4步,逐渐完成本章所需功能。内容比较多,会分为两个部分,第一部分主要关注于“View视图”和“buffer及文本读取”。 如上图最终效果所示,我们希望在终端的最下方增加一个状态栏,能够展示当前被打开的文件和当前的光标位置。 同时我
实现一个终端文本编辑器来学习golang语言:第三章文本查看器part1 实现一个终端文本编辑器来学习golang语言:第三章文本查看器part1