Пару дней назад на официальном сайте Diablo 3 появилась новая статья. В ней были описаны проблемы локализации больших чисел и их сокращений. Разработчики в Blizzard делали сокращения больших чисел для урона, например 500м вместо 500 000 000 и 20т вместо 20 000. Обычному человеку задача может показаться весьма простой, но в многоязыковом приложении это уже не так просто, потому что числа представляются по-разному в разных языках. Для сравнения можно взять американский английский и русский языки. Во-первых, в американском английском используется запятая для разделения групп и точка для разделения десятичной и дробной части. Во-вторых, в американском английском другое обозначение тысяч, миллионов и биллионов.
Небольшая сравнительная таблица:
Американский английский (с сокращением) | Русский (с сокращением) | Американский английский (полное число) | Русский (полное число) | |
тысячи | 123.4k | 123,4т | 123,400 | 123 400 |
миллионы | 123.4М | 123,4м | 123,400,000 | 123 400 000 |
Эта таблица ещё не отображает проблемы, возникающие в других языках. В некоторых языках могут цифры группироваться не по три, а по четыре или ещё как-нибудь.
Для решения проблем локализации чисел они использовали библиотеку International Components for Unicode. Подобные проблемы в многоязыковых приложениях появляются не только с числами, но и с денежными суммами, датами и порой даже картинками.