gocal / gsheet_to_arb

Import translations (ARB/Dart) from Google Sheets
https://pub.dev/packages/gsheet_to_arb
Other
31 stars 32 forks source link
arb arb-files dart flutter google-sheets google-spreadsheet gsheet yaml

Import translations from Google Sheets

pub package

Usage

Import Translation files from the Google Sheet

  1. Setup plugin configuration yaml file (you only need to do it once.)

  2. Import ARB and Dart source files from the Google Sheet

    pub run gsheet_to_arb:import

    or for flutter

    flutter pub run gsheet_to_arb:import

Setup

1. Create translation spreadsheet based on the template

2. Create Google Sheets API credentials either by using Client or Server authentication.

3. Configure your Dart project

  1. Add gsheet_to_arb dev dependency to the pubspec.yaml

    dev_dependencies:
      gsheet_to_arb: ^0.1.8
  2. Updated dependencies pub update

  3. Create plugin configuration

    pub run gsheet_to_arb:import --create-config
    • It will add plugin configuration to the pubspec.yaml file and create gsheet_to_arb.yaml authentication file for the gsheet credentials
  4. Update plugin configuration created in pubspec.yaml e.g.

    gsheet_to_arb: 
        arb_file_prefix: 'intl' # suffix of the created arb files e.g. intl_en.arb
        localization_file_name: 'l10n' # Genrated intl dart file name e.g. L10n.dart
        output_directory: 'lib/l10n' # where all the dart and arb data are stored
        add_context_prefix: false # should add category prefix to the keys e.g. common_app_title
        gsheet: 
            auth_file: './gsheet_to_arb.yaml' # file with the gsheet authentication configuration
            category_prefix: "# " 
            document_id: 'TODO'
            sheet_id: '0'
            columns: # This is an optional setting, if unused will fallback to default values
                key: 0 # The column where the key for the translation is, defaults to 0
                description: 1 # The column where the description is, defaults to 1
                first_language_key: 2 # The first column for the language copy, assumes that all other columns after this one also contains a language translation, defaults to 2
            rows: # This is an optional setting, if unused will fallback to default values
                header_row: 0 # The header row containing the title for each column, such as language codes, defaults to 0
                first_translation_row: 1 # The first row containing transaltions that should be parsed, assumes that all rows after this one also should be parsed, defaults 1
  5. Update gsheet authentication configuration created in gsheet_to_arb.yaml

    • either add client
      oauth_client_id: 
      client_id: "TODO"
      client_secret: "TODO"
    • or server credentials
      service_account_key: 
      client_id: "TODO"
      client_email: "TODO"
      private_key: "TODO"

Spreadsheet format

Rows

Columns

Values

TODO