Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual a melhor maneira de fomatar/ tratar números decimais para vários idiomas?

Eu preciso trabalhar com internalização dos números e usar virgula no decimal em portugues e tratar anets de salva. Alguma sugestão?

TextFormField(
              controller: _temperatureController,
              keyboardType: TextInputType.number,
              decoration: const InputDecoration(
                label: Text('Temperatura (°C)'),
              ),
            ),
2 respostas
solução!

Olá, Celso. Tudo bem?

Aco que entendi a sua dúvida. Para isso, você pode usar o pacote intl do Flutter, que fornece ferramentas para internacionalização e localização.

Primeiro, adicione o pacote intl no seu arquivo pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0

Depois, você pode usar a classe NumberFormat do pacote intl para formatar os números. Aqui está um exemplo de como você pode fazer isso:

import 'package:intl/intl.dart';

final format = NumberFormat.decimalPattern(Localizations.localeOf(context).languageCode);
final String formattedNumber = format.format(yourNumber);

Nesse exemplo, NumberFormat.decimalPattern(Localizations.localeOf(context).languageCode) irá formatar o número de acordo com o idioma do dispositivo do usuário. Então, se o idioma do dispositivo for português, o número será formatado usando a vírgula como separador decimal.

Por fim, você pode usar o formattedNumber no seu TextFormField:

TextFormField(
  controller: _temperatureController,
  keyboardType: TextInputType.number,
  decoration: InputDecoration(
    label: Text('Temperatura (°C) $formattedNumber'),
  ),
),

Espero ter entendido e conseguido ajudar. Qualquer coisa manda aqui. Bons estudos!

Obrigado, Renan.