sheet_loader_localization 0.3.0 copy "sheet_loader_localization: ^0.3.0" to clipboard
sheet_loader_localization: ^0.3.0 copied to clipboard

Download an CSV file and generates the localization keys from an online Google Sheet.

sheet_loader_localization #

Sheet Localization Generator #

Download CSV file and generates the localization keys from an online Google Sheet to working with easy_localization and easy_localization_loader

This tool inspired by flutter_sheet_localization_generator and the original author RinLV

🔩 Installation #

Add to your pubspec.yaml:

dependencies:
  easy_localization: <last_version>
  easy_localization_loader: <last_version>

dev_dependencies:
  build_runner: <last_version>
  sheet_loader_localization: <last_version>

🔌 Usage #

1. Create a CSV Google Sheet

Create a sheet with your translations (following the bellow format, an example sheet is available here) :

csv example file

Make sure that your sheet is shared :

share

Extract from the link the DOCID value : https://docs.google.com/spreadsheets/d/<DOCID>/edit?usp=sharing) :

2. Declare a localization delegate

Declare the following _LocaleKeys class with the SheetLocalization annotation pointing to your sheet in a lib/utils/multi-languages/locale_keys.dart file :

import 'dart:ui';

import 'package:sheet_loader_localization/sheet_loader_localization.dart';

part 'locale_keys.g.dart';

@SheetLocalization(
  docId: 'DOCID',
  version: 1,
  // the `1` is the generated version.
  //You must increment it each time you want to regenerate a new version of the labels.
  outDir: 'resources/langs',
  //default directory save downloaded CSV file
  outName: 'langs.csv',
  //default CSV file name
  preservedKeywords: [],)
class _LocaleKeys {}

3. Generate your localizations

Run the following command to generate a lib/utils/multi-languages/locale_keys.dart file :

flutter pub run build_runner build

or 

flutter pub run build_runner build --delete-conflicting-outputs

Sample of locale_keys.g.dart

4. Configure your app

Last, config step by step following this tutorial from README.md of easy_localization

⚡ Regeneration #

Because of the caching system of the build_runner, it can't detect if there is a change on the distant sheet and it can't know if a new generation is needed.

The version parameter of the @SheetLocalization annotation solves this issue.

Each time you want to trigger a new generation, simply increment that version number and call the build runner again.

Why❓️ #

I find the easy_localization has already Code generation , but it doesn't support working with Google Sheet and generate keys from CSV file and some library don't support flutter 2.0 null-safety. So, I update this simple generator tool.

12
likes
150
points
803
downloads

Publisher

unverified uploader

Weekly Downloads

Download an CSV file and generates the localization keys from an online Google Sheet.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-2-Clause (license)

Dependencies

analyzer, build, build_config, csv, file, flutter, http, intl, path, pub_semver, source_gen

More

Packages that depend on sheet_loader_localization