使用CultureInfo进行本地化 - 标点符号

时间:2014-03-24 08:02:05

标签: c# windows-phone-8 localization

我使用CultureInfo来本地化我的应用程序:

CultureInfo newCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;

我遇到了与标点符号有关的问题: 在我的本地数据库中(我从中获取了我的应用程序的所有有用数据),纬度和经度属性以点(即45.245135)存储,当CultureInfo设置为en-US时,这很好。但是,当我切换到我的母语时(点被认为是一千个标记)我的地图功能都无法工作。

如果我要更改处理这些值的代码的每一部分,那我就太难了。它或多或少地到处都是。

有关解决问题的任何想法吗?

1 个答案:

答案 0 :(得分:0)

每当您转换为InvariantCulture时,请尝试使用String

  String stLattitude = "45.245135";
  ... 
  // String to Double
  // Culture.InvariantCulture make the conversion Culture independent
  Double lattitude = Double.Parse(stLattitude, Culture.InvariantCulture);
  ...
  // Double To String
  // Culture.InvariantCulture make the conversion Culture independent
  String strLattitude = lattitude.ToString(Culture.InvariantCulture);

仅在向用户显示最终结果

时使用CurrentCulture
  // Showing to user: that's why CurrentCulture (default) is used
  Show(lattitude.ToString());