feat: Flutter client localisation (12 languages)
Add flutter_localizations + intl, 12 ARB files (en/ru/es/de/fr/it/pt/zh/ja/ko/ar/hi), replace all hardcoded Russian UI strings with AppLocalizations, detect system locale on first launch, localise bottom nav bar labels, document rule in CLAUDE.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import 'dart:ui' show PlatformDispatcher;
|
||||
|
||||
import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'app.dart';
|
||||
import 'core/locale/language_provider.dart';
|
||||
import 'core/storage/local_preferences.dart';
|
||||
import 'core/storage/local_preferences_provider.dart';
|
||||
import 'firebase_options.dart';
|
||||
@@ -16,12 +19,22 @@ void main() async {
|
||||
|
||||
final sharedPreferences = await SharedPreferences.getInstance();
|
||||
|
||||
// Detect system language on first launch.
|
||||
const supportedLanguageCodes = {
|
||||
'en', 'ru', 'es', 'de', 'fr', 'it', 'pt', 'zh', 'ja', 'ko', 'ar', 'hi',
|
||||
};
|
||||
final systemLanguageCode = PlatformDispatcher.instance.locale.languageCode;
|
||||
final initialLanguage = supportedLanguageCodes.contains(systemLanguageCode)
|
||||
? systemLanguageCode
|
||||
: 'en';
|
||||
|
||||
runApp(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
localPreferencesProvider.overrideWithValue(
|
||||
LocalPreferences(sharedPreferences),
|
||||
),
|
||||
languageProvider.overrideWith((ref) => initialLanguage),
|
||||
],
|
||||
child: const App(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user