Como adicionar localização numa aplicação Flutter?
sobes.tech IA
Resposta da IA
-
Adicionar dependências:
No ficheiro
pubspec.yaml, deve adicionar dependências para localização:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Exemplo de versão, pode variarDepois, execute
flutter pub get. -
Criar ficheiros de localização:
Crie diretórios para os recursos de localização, por exemplo
./lib/l10n/. Dentro, crie ficheiros.arbpara cada idioma suportado. Por exemplo, para inglês e russo:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Configuração da geração de código:
No ficheiro
pubspec.yaml, indique o caminho para os ficheiros.arbe configure a geração:flutter: generate: true # Ativar geração assets: - assets/... # Os seus outros recursos l10n: arb-dir: lib/l10n # Diretório com ficheiros .arb template-arb-file: app_en.arb # Ficheiro .arb modelo output-localization-file: app_localizations.dart # Nome do ficheiro geradoApós guardar
pubspec.yaml, o Flutter irá gerar automaticamente o ficheiro./lib/generated/l10n.dart(ou o especificado emoutput-localization-file). -
Uso de cadeias localizadas:
Na aplicação, onde precisar usar cadeias localizadas, importe o ficheiro gerado:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Depois, aceda à cadeia localizada através de
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Configuração do
MaterialAppouCupertinoApp:No widget de nível superior (geralmente
MaterialAppouCupertinoApp), deve indicar o suporte de línguas e os delegados de localização:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... outras configurações localizationsDelegates: const [ AppLocalizations.delegate, // Delegado do ficheiro gerado GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Inglês Locale('ru', ''), // Russo // ... outros idiomas suportados ], // ... );
Agora, a aplicação irá selecionar automaticamente a localização com base nas configurações do dispositivo do utilizador, se estiver presente em supportedLocales. Para alterar manualmente a localização, pode usar Locale e atualizar o estado da aplicação.