diff options
author | Marek Safar <marek.safar@gmail.com> | 2013-03-18 17:57:57 +0400 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2013-03-18 17:57:57 +0400 |
commit | f52f10ef4f0289b42cd453cb8aeb16ab1de54562 (patch) | |
tree | 5455049813ab06fdc1f9a48fee49be2bceb550aa /tools | |
parent | eeac621f70cbea04cf36e21294163ba2c0d0933a (diff) |
Add localized infinity symbols. Fixes #9052
Diffstat (limited to 'tools')
-rw-r--r-- | tools/locale-builder/Driver.cs | 49 | ||||
-rw-r--r-- | tools/locale-builder/NumberFormatEntry.cs | 5 |
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; } } |