惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
L
LangChain Blog
M
MIT News - Artificial intelligence
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
P
Proofpoint News Feed
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
I
InfoQ
月光博客
月光博客
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
D
Docker
B
Blog

博客园 - 星际探索

客户信息数据库设计备忘录 饼状图的改进(解决零值和数值无限小的显示问题) 实现分支机构和集团数据同步的坎坷历程 读《理财有道》有感 自动更新程序的设计框架 关于呼叫中心业务系统构架方面的设想 关于软件产品化的一些设想 公司面试内容建议 基于微软WCF技术的新一代热线系统构架 关于实时监测系统的设计思路 万事开头难 关于数据同步的方法和优缺点比较 经验 神话 和谐的社会 奇怪的社会 一个简单实用的日志记录类 接口服务程序经验和建议 监控程序框架 关于监控程序的一点设想 项目数据库设计的一点体会
把英文版软件卖给德国客户的辛苦历程
星际探索 · 2008-10-09 · via 博客园 - 星际探索
 

前言:

公司目前接到一个德国的项目。于是我们项目组花了大力气吭哧吭哧把一个中文版的程序中所有的中文文字全部改成了英文。连操作手册都全部翻译成英文。然后找了一个英文版的主机进行功能测试。一切OK。看起来这个项目进行的非常顺利。

问题来了:

    虽然我们的德国客户非常精通英语,但是他们那的操作系统都是德文版的。我们的软件跑在德文版的操作系统上,结果可以用惨不忍睹来形容。为什么呢?开发组马上着手研究。

原来:

终于发现世界之大,什么鸟都有。德国人描述时间的方式不是按照年月日来排序的。而是习惯于把年份放在最后,就变成“月日年”。结果在我们中国司空见惯的时间格式“2008-10-10”

在德国的电脑系统里是怎么也不认的。

    德国人用逗号“,”表示小数点,用点“.”表示千位的数字分组。和中国的习惯正好相反。

结果我们的数字“123.45” 在德国人眼里是 “12345”。这个这个,无语了。

解决之道:

    最简单的解决方案是改变德国操作系统的“区域选项”。但是这不符合德国人的使用习惯。

只好修改我们的程序。具体修改方法如下。

日期时间的解决之道:

我们来看一个sql语句:

Insert into (DateTimeTypeColumns)values(‘2008-10-8’)

在中文或英文版的操作系统和数据库中执行正常.但是到德文版的操作系统和数据库执行这个语句会报错.原因是没有2008这个月份。前面说道德国是“月日年”这样认日期类型的。

网上Google了一把。发现了一个sql命令 “SET DATEFORMAT ymd”。在sql server2005的管理器中执行了一下。发现这个sql语句已经可以正确执行了。

小数点问题的解决之道:

我们在来看一个C# 代码

 Double doubleValue = 123.45;

 string tmpSQL = “Insert into (DoubleTypeColumns) values (”+ doubleValue.ToString() +”)”

结果这个拼接出来的SQL语句执行出错。原因是doubleValue.ToString() 的格式是“123,45”

因为这个逗号,导致sql语句的语法错误。

这个问题有两个解决方案。

方案一:把语句doubleValue.ToString() 改为 doubleValue.ToString().Replace(“,”,”.”)

方案二:

CultureInfo myCIintl = new CultureInfo("zh-CN", false);

doubleValue.ToString(myCIintl);

方案三:用SqlParameter 类。避免对SQL语句进行字符串拼接。

结束语:

要想把我们中国人的软件推向国际市场,我们要走的路还很长。单纯的文字翻译只是万里长征中的第一步。

仔细看了网上各位同仁的回复,收获颇丰啊。 今天又研究了一下

DateTimeFormatInfo 类和NumberFormatInfo类。 

基本上可以解决我遇到的所有问题。有兴趣的读者可以关注一下这两个类。