我阅读了更多与本地化最佳实践相关的文章。从他们身上我们可以看出,始终UTC时间最适合处理日期时间。就像那样,我们有一些指导,比如认识字符串,用户界面等。本地化变量的最佳方法
但我还发现一篇文章说我们需要处理字符串/整数转换。我没有把它弄好。以下是解释
“确保在调用ToString()时总是通过CultureInfo,除非它不被支持。这样你就可以评论你的意图了,例如:如果你在内部使用某个数字,将其转换为字符串使用:
int i = 42;
var s = i.ToString(CultureInfo.InvariantCulture);
对于将要显示给用户的使用号码:
var s = i.ToString(CultureInfo.CurrentCulture); // formatting culture used
这同样适用于解析()的TryParse(),甚至ParseExact() - 一些令人讨厌的错误可能会在没有正确使用的情况下引入的CultureInfo。这是因为微软的一些可怜的灵魂充满了良好的意图决定把CultureInfo.CurrentCulture当作默认的一个是个好主意(如果你不传递任何东西,它会被使用) - 毕竟当有人使用ToString时)他/她想要显示给用户,对吧?结果并非总是如此 - 例如尝试将您的应用程序版本号存储在数据库中,然后将其转换为Version类的实例。祝你好运。 “
但是,为什么这是必要的。因此,在所有datatatypes我们需要转换/做到这样吗?什么是advatages这个,因为我得到了相同的结果与出增加的文化信息。
很好。同样,本地化需要特别考虑的是什么? – Akhil
[This](http://stackoverflow.com/a/20259470/1997232)可能是最基本的本地化。但我自己更喜欢反思,以实时翻译UI。为了简化消息传递(显示本地化消息或控件的动态文本),反射也是最好的,只需创建一个类,以* default *(通常是英语)语言持有静态字符串消息条目(在子类中传播以便于引用) 。当语言改变时,用* translation *填充该类(从我讨厌的卫星程序集加载,或包含编辑友好本地化的特殊语言文件)。 – Sinatr
是我使用了单独的类库项目并使用反射调用卫星程序集。基于文件的resurce管理器。在这里,我们讨论了文化特定的过程,如数据时间处理,变量等。同样,任何其他过程要考虑? – Akhil