2013-03-30 5 views
4

В C# у нас есть CultureInfo, который влияет на то, как ToString() работает для дат и цифр например. вы можете установить CurrentCulture, выполнив:Есть ли способ локализовать числа и даты в дротике?

Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL");; 

Есть ли эквивалент для вышеуказанного в дротике?

EDIT:

  1. Короткий ответ: используйте INTL пакет (спасибо всем за ответы)
  2. Как Алан Найт, указанной ниже настройки локализации «по теме» не имеет смысла в Dart, так как мы не контролируют потоки.
  3. На данный момент я пишу это NumberFormating работа продолжается, насколько я понимаю, это
+0

Вместо редактирования вопроса вы можете пометить мой ответ как «Принято», нажав зеленую галочку/значок галочки в левой части моего ответа (под стрелками вверх/вниз). –

+0

@KaiSellgren действительно - проблема в том, что более одного ответа полностью отвечает на мой вопрос (например, вы не упоминаете NumberFormat). В любом случае спасибо за подсказку :) – tomaszkubacki

+0

Вы всегда можете отредактировать ответы. Как правило, вы выбираете любой ответ, который хотите, который, по вашему мнению, был лучшим ответом, будь то мой или чужой. Если нет ответа, который фактически решил вашу проблему, вы можете оставить вопрос «без ответа». :) –

ответ

2

Библиотека intl предложит вам это, хотя оно не влияет на поведение toString().

Вот пример:

Добавить в зависимости к pubspec.yaml:

dependencies: 
    intl: any # You might specify some version instead of _any_ 

Затем образец кода:

import 'package:intl/intl.dart'; 
import 'package:intl/date_symbol_data_local.dart'; 

main() { 
    initializeDateFormatting("en_US", null).then((_) { 
    var formatter = new DateFormat.yMd().add_Hm(); 
    print(formatter.format(new DateTime.now())); 
    }); 
} 

Результат выглядит следующим образом:

07/10/1996 12:08 PM

2

Да, согласно предыдущей записи, библиотека Intl - это то, что вы хотите. Вы можете установить языковой стандарт по умолчанию или использовать метод withLocale для его установки внутри функции. Установка его потоком не работает, поскольку нет потоков. Другое существенное отличие состоит в том, что, поскольку все это загружено в браузер, вы автоматически не получаете все доступные данные локали, но вам нужно пройти этап инициализации async для загрузки данных. Скорее всего, это произойдет, чтобы скоро использовать новые функции ленивой загрузки.

Кроме того, язык не влияет на работу системы toString(), но вам нужно использовать объект DateFormat для печати даты. И поскольку это все еще продолжается, NumberFormat не работает должным образом для локалей, но скоро.

Смежные вопросы