Вход на сайт
Вопрос о разделителях
514 просмотров
Перейти к просмотру всей ветки
в ответ Моюсь в тазу 23.09.22 08:37
Открываешь букварь и читаешь про локализацию.
Например ToString(IFormatProvider):
decimal value = -16325.62m; // Display value using the invariant culture. Console.WriteLine(value.ToString(CultureInfo.InvariantCulture)); // Display value using the en-GB culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB"))); // Display value using the de-DE culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE"))); // This example displays the following output to the console: // -16325.62 // -16325.62 // -16325,62
Что делать
Уволить нахрен криворуких программистом и нанять тех, которые умеют разрабатывать многоязычные приложения.
у кого какие идеи.
Если уволить криворуких нельзя, то дать им ссылку на MSDN пусть учатся.
есть ли какие-то международные стандарты, которые устанавливают правила применения типов разделителей?
Нет, нету. В каждой стране свои правила. И точка или запятая в числах - это ваша не единственная проблема. Вот когда дойдете до дат - это будет веселье:
using System; using System.Globalization; public class Example2 { public static void Main2() { CultureInfo[] cultures = new CultureInfo[] {CultureInfo.InvariantCulture, new CultureInfo("en-us"), new CultureInfo("fr-fr"), new CultureInfo("de-DE"), new CultureInfo("es-ES"), new CultureInfo("ja-JP")}; DateTime thisDate = new DateTime(2009, 5, 1, 9, 0, 0); foreach (CultureInfo culture in cultures) { string cultureName; if (string.IsNullOrEmpty(culture.Name)) cultureName = culture.NativeName; else cultureName = culture.Name; Console.WriteLine("In {0}, {1}", cultureName, thisDate.ToString(culture)); } } } // The example produces the following output: // In Invariant Language (Invariant Country), 05/01/2009 09:00:00 // In en-US, 5/1/2009 9:00:00 AM // In fr-FR, 01/05/2009 09:00:00 // In de-DE, 01.05.2009 09:00:00 // In es-ES, 01/05/2009 9:00:00 // In ja-JP, 2009/05/01 9:00:00
Или данные хотелки должны быть указаны в ТЗ?
По идее используемые стандарты, конечно, можно перечислить в ТЗ... Но если заказчик из конкретной страны, то он по умолчанию будет ожидать, что тексты, числа, даты и прочие локализируемые штуки будут показаны на его языке.
У меня сейчас один вариант - давить на то, что данные требования не были заявлены Заказчиком в ТЗ, а четких стандартизированных правил на этот счет не существует.
Гугли ГОСТы.