flutter_localization_updater 1.0.6 copy "flutter_localization_updater: ^1.0.6" to clipboard
flutter_localization_updater: ^1.0.6 copied to clipboard

unlisted

A Flutter package that automatically updates localizations from Google Sheets and integrates with easy_localization.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter_localization_updater/flutter_localization_updater.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Initialize localization service with timeout configuration
  final localizationService = LocalizationService(
    config: LocalizationConfig(
      googleSheetApiKey: 'YOUR_GOOGLE_SHEETS_API_KEY',
      sheetId: 'YOUR_GOOGLE_SHEET_ID',
      supportedLocales: ['en', 'nl'],
      updateIntervalMs: 24 * 60 * 60 * 1000, // 24 hours
      timeout: Duration(seconds: 5), // 5 seconds timeout
    ),
  );

  // Option 1: Wait for update with timeout (recommended for app startup)
  final success = await localizationService.checkAndUpdateLocalizations();
  if (!success) {
    print(
        'Translation update timed out or failed, continuing with cached data');
  }

  // Option 2: Start background update (uncomment if you want app to start immediately)
  // localizationService.startBackgroundUpdate();

  // Initialize easy_localization
  await EasyLocalization.ensureInitialized();

  runApp(
    EasyLocalization(
      supportedLocales: const [Locale('en'), Locale('nl')],
      path: 'assets/localizations',
      fallbackLocale: const Locale('en'),
      assetLoader: CustomAssetLoader(), // Use the custom asset loader
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('general.header_title'.tr()), // Updated key
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('general.searching_location'.tr()), // Updated key
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // Change locale
                context.setLocale(Locale('nl'));
              },
              child: Text('Switch to Dutch'),
            ),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: () {
                // Change locale back to English
                context.setLocale(Locale('en'));
              },
              child: Text('Switch to English'),
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
0
points
36
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package that automatically updates localizations from Google Sheets and integrates with easy_localization.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dio, dotenv, easy_localization, flutter, path, path_provider, shared_preferences

More

Packages that depend on flutter_localization_updater