Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2013-03-18 17:57:57 +0400
committerMarek Safar <marek.safar@gmail.com>2013-03-18 17:57:57 +0400
commitf52f10ef4f0289b42cd453cb8aeb16ab1de54562 (patch)
tree5455049813ab06fdc1f9a48fee49be2bceb550aa /tools
parenteeac621f70cbea04cf36e21294163ba2c0d0933a (diff)
Add localized infinity symbols. Fixes #9052
Diffstat (limited to 'tools')
-rw-r--r--tools/locale-builder/Driver.cs49
-rw-r--r--tools/locale-builder/NumberFormatEntry.cs5
2 files changed, 52 insertions, 2 deletions
diff --git a/tools/locale-builder/Driver.cs b/tools/locale-builder/Driver.cs
index d21955f9cf8..4278b595f11 100644
--- a/tools/locale-builder/Driver.cs
+++ b/tools/locale-builder/Driver.cs
@@ -1070,7 +1070,10 @@ namespace Mono.Tools.LocaleBuilder
// We cannot use the value from CLDR because many broken
// .NET serializers (e.g. JSON) use text value of NegativeInfinity
// and different value would break interoperability with .NET
- if (el != null && el.InnerText != "∞") {
+ var inf = GetInfinitySymbol (ci);
+ if (inf != null)
+ ni.InfinitySymbol = inf;
+ else if (el != null && el.InnerText != "∞") {
ni.InfinitySymbol = el.InnerText;
}
@@ -1095,6 +1098,50 @@ namespace Mono.Tools.LocaleBuilder
}
}
+ string GetInfinitySymbol (CultureInfoEntry ci)
+ {
+ // TODO: Add more
+ switch (ci.TwoLetterISOLanguageName) {
+ case "ca":
+ return "Infinit";
+ case "cs":
+ case "sk":
+ return "+nekonečno";
+ case "de":
+ return "+unendlich";
+ case "el":
+ return "Άπειρο";
+ case "es":
+ case "gl":
+ return "Infinito";
+ case "it":
+ case "pt":
+ return "+Infinito";
+ case "nl":
+ return "oneindig";
+ case "fr":
+ case "tzm":
+ return "+Infini";
+ case "pl":
+ return "+nieskończoność";
+ case "ru":
+ case "tg":
+ return "бесконечность";
+ case "sl":
+ return "neskončnost";
+ case "rm":
+ return "+infinit";
+ case "lv":
+ return "bezgalība";
+ case "lt":
+ return "begalybė";
+ case "eu":
+ return "Infinitu";
+ }
+
+ return null;
+ }
+
static string ConvertDatePatternFormat (string format)
{
//
diff --git a/tools/locale-builder/NumberFormatEntry.cs b/tools/locale-builder/NumberFormatEntry.cs
index 68a3ca0a17c..5d4f1d0d817 100644
--- a/tools/locale-builder/NumberFormatEntry.cs
+++ b/tools/locale-builder/NumberFormatEntry.cs
@@ -68,6 +68,9 @@ namespace Mono.Tools.LocaleBuilder
{
get
{
+ if (InfinitySymbol.StartsWith (PositiveSign))
+ return NegativeSign + InfinitySymbol.Substring (1, InfinitySymbol.Length - 1);
+
return NegativeSign + InfinitySymbol;
}
}
@@ -76,7 +79,7 @@ namespace Mono.Tools.LocaleBuilder
{
get
{
- return InfinitySymbol == "Infinity" ? InfinitySymbol : PositiveSign + InfinitySymbol;
+ return InfinitySymbol;
}
}