as2f 0.1.3

  • Readme
  • Changelog
  • Installing
  • 58

AS2F - Android Strings To Flutter #

Overview #

Kotlin based generator for converting android xml string resources into one i18n dart class that can be used in flutter projects.

Inspired by flutter_i18n project by long1eu except no need to use IntelliJ or arb files.

Usage in Dart/Flutter Project #

dev_dependencies:
 as2f: ^0.1.2

Then run the following command.

flutter packages pub run as2f:codegen

NOTE: You can add --run-once and --dry-run parameters to the above command.

NOTE: You can try running pub run as2f:codegen in the example folder to play with the carrots_sample 🥕🥕

This fetches the jar from jitpack containing the code generator and executes it in a watch mode. It will bootstrap as2f.yaml file for you. This file describes where your Android string files are and where the generated class should go.

- name: android_strings # base name
  source: someplace/main/res # lookup place for all values-lang/strings.xml files
  target: lib/gen/i18n.dart # place where your i18n class should go

The structure of the generated class is much like the one by flutter_i18n meaning you can just follow their setup intructions:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      onGenerateTitle: (BuildContext context) => S.of(context).app_name,
      localizationsDelegates: const <LocalizationsDelegate<WidgetsLocalizations>>[
            S.delegate,
            // You need to add them if you are using the material library.
            // The material components usses this delegates to provide default 
            // localization      
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,               
      ],
      supportedLocales: S.delegate.supportedLocales,
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

If you want to have nice formatting, make sure you have dart-sdk in you PATH, it's included with flutter sdk, so you can e.g.:

export PATH="$PATH:/path/to/flutter/bin/cache/dart-sdk/bin"

Supported Features #

  • Normal Strings
  • Strings with arguments
  • Plurals (only integer part)

Code Organization #

  • cli - Command Line Tool based on patrol, uses as2f as a module
  • as2f - All the code generation logic & unit tests, contributions welcome.
  • bin - dart script wrapper around jar file allowing you to run pub run as2f:codegen right from your project

0.1.3 #

  • reduce lint analyze noise.

0.1.2 #

  • improve dartfmt location resolution

0.1.1 #

  • fix dartfmt breaking code generation

0.1.0 #

  • initial release

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  as2f: ^0.1.3

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter pub get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

Popularity:
Describes how popular the package is relative to other packages. [more]
16
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
58
Learn more about scoring.

We analyzed this package on Oct 7, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.5.1
  • pana: 0.12.21

Platforms

Detected platforms: Flutter, web, other

No platform restriction found in libraries.

Maintenance suggestions

Maintain an example.

None of the files in the package's example/ directory matches known example patterns.

Common filename patterns include main.dart, example.dart, and as2f.dart. Packages with multiple examples should provide example/README.md.

For more information see the pub package layout conventions.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0