Setup plugin configuration yaml file (you only need to do it once.)
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
Copy the template to your Drive account - File -> Make a copy
Save DOCUMENT_ID
of your spreadsheet https://docs.google.com/spreadsheets/d/DOCUMENT_ID/edit#gid=0
For more details about spreasheet structure see Spreadsheet format section
Add gsheet_to_arb dev dependency to the pubspec.yaml
dev_dependencies:
gsheet_to_arb: ^0.1.8
Updated dependencies
pub update
Create plugin configuration
pub run gsheet_to_arb:import --create-config
pubspec.yaml
file and create gsheet_to_arb.yaml
authentication file for the gsheet credentialsUpdate 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
Update gsheet authentication configuration created in gsheet_to_arb.yaml
oauth_client_id:
client_id: "TODO"
client_secret: "TODO"
service_account_key:
client_id: "TODO"
client_email: "TODO"
private_key: "TODO"
category_prefix
value (#
default) all the following rows will use the category as a context (see: ARB context, and add_context_prefix
parameter)key
contains either key name or category prefixdescription
contains item descriptionen
, pl
etc.) contains traslation filesPlaceholder
{placeholder_name}
to the translationPlurals
{count}
to mark value provied as a translation parameter