Skip to content

tempo-riz/flutter-extract-to-arb-vscode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Flutter Extract to ARB

Visual Studio Marketplace Version Visual Studio Marketplace Downloads Open VSX Downloads

πŸ”— Links

Download the extension from the Visual Studio Marketplace or the Open VSX Registry

If you want to add a feature or file a bug, please open an issue on the GitHub repository

πŸ’‘ Code Action

Extract String to ARB : Right-click a string (or quick fix it with ⌘. / Ctrl+.) and select "Extract String to ARB".

πŸš€ Getting Started (Auto Setup)

Access from the Command Palette (β‡§βŒ˜P / Ctrl+Shift+P):

Setup Localization for Project : Sets up all necessary files for localization in your Flutter project, including l10n.yaml, pubspec.yaml and arb files.

⚑️ Commands (Premium Features)

πŸ›’ Premium only: Requires a valid license key. Buy one for $9.90 β†’

Access from the Command Palette (β‡§βŒ˜P / Ctrl+Shift+P):

  • Extract Texts (Current File) : Extracts all Text() widget strings in the current Dart file to your ARB files.

  • Extract Texts (Project) : Extracts all Text() widget strings from the lib/ folder to your ARB files.

πŸ”§ Manual Setup (I recommend using the setup command instead)

You should already have a l10n.yaml file in your project. If not, create one.
This extension uses Flutter's official options for internationalization. See Flutter's i18n docs

The extension also supports additional options:

Extension-specific l10n.yaml options (with defaults)

# Enable translation (via DeepL)
translate: true              

# Auto-run flutter gen-l10n after extraction              
generate: true       

# Key prefix for translations             
key-prefix: AppLocalizations.of(context)!.  

# Generate key name
# "ask" = Prompt with a suggested key name, true = infer from text, false = prompt manually  
auto-name-key: true       

# Language to use for key name generation                 
key-name-language: en       

# Import line to insert if needed                
import-line: ""

# Explicitly set source language for google trad fallback
source-language: ""                             

For translation to work, you need to add your Deepl API key in vscode settings.json file (β‡§βŒ˜P / Ctrl+Shift+P β†’ Preferences: Open User Settings (JSON)):

"flutter.deeplApiKey": "your-key",

You can get a generous free API key here

Finally, make sure generate: true is set in your pubspec.yaml:

flutter:
  generate: true # <---

And that's it! You're ready to go πŸš€

😎 Pro tips

You can define an extension getter to access your translations more concisely:

extension ContextExt on BuildContext {
  AppLocalizations get t => AppLocalizations.of(this);
}

// then instead of this
Text(AppLocalizations.of(context).yourKey)

// use it like this:
Text(context.t.yourKey)

Don't forget to update the key-prefix & import-line options in l10n.yaml ;)

β˜• Support

If you'd like to support this project, consider contributing here. Thank you! :)

About

VS Code Extension to Extract and auto-translate Flutter text into ARB localization files. Skip the painful part !

Topics

Resources

Stars

Watchers

Forks