Skip to content

gapon2401/vue-i18n-extract-translations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vue-i18n-extract-translations

NPM version

vue-i18n-extract-translations allows you to get key-based and message locale strings from your *.vue and *.js files and save them to json files.

Based on vue-i18n-extract and used it functionality for collecting keys.

Installation:

npm install vue-i18n-extract-translations --save-dev

or

yarn add -D vue-i18n-extract-translations

Usage :

Add to package.json:

{
  "scripts": {
    "vue-i18n-extract-translations": "vue-i18n-extract-translations"
  }
}

Common usage:

yarn vue-i18n-extract-translations -v <path_to_vue_files> -l <path_to_locales> [options]

or

npm run vue-i18n-extract-translations -v <path_to_vue_files> -l <path_to_locales> [options]

All options

Option Default Necessity Description
-v required Pattern path to vue files
-l required Pattern path to locale json files.
Automatically creates specified directory
--key "" optional Prefix for key-based translations. By default is empty
--def-locale en_US optional Default locale name. Option creates json file, if locales were not found
--keep-unused false optional Keep old unused keys in locale files
--fill optional Fill new translations with specified string. By default all new translation values equals their keys
-t, --target array optional List of locales to process. By default all locales will be processed.
-h, --help optional Show help

Examples

###Extract all missing translations to json locale files.

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/"

Paths can be absolute or relative.

###Key-based format translations

By default script uses key-based format and extract dot strings as objects.

Your locale strings probably looks like: $t('header.message'), $t('header.another_message') or $t('single_message').

Generated json file will be:

{
    "header": {
      "message" : "header.message",
      "another_message" : "header.another_message"
    },
    "single_message": "single_message"  
}

###Message format translations

Your locale strings probably looks like: $t('Some long message. Love you')

By default script will create such json file:

{
    "Some long message": {
      "Love you" : "Love you"
    }  
}

Use option --key to prevent it:

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/" --key "i18n"

Now all dots in the strings will be ignored:

{
    "Some long  message. Love you": "Some long  message. Love you"
}

###Combine key-based and message format

You may have both formats: $t('header.message'), $t('header.another_message'), $t('Some long message. Love you').

Use option --key with value i18n and change key-based strings like so: $t('i18n.header.message'), $t('i18n.header.another_message')

Result json:

{
    "Some long  message. Love you": "Some long  message. Love you",
    "i18n": {
        "header": {
            "message" : "header.message",
            "another_message" : "header.another_message"
         }
    }
}

###Default locale folder

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/" --def-locale "fr_FR"

If locale directory is empty, script will create it and save translations to fr_FR.json file:

###Keep new translations empty

If you don't want the values of new translations to be keys, use option --fill.

You can make them empty:

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/" --fill "" 

or not:

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/" --fill "Translate me!" 

###Save translations only to specified locales

yarn vue-i18n-extract-translations -v "./src/**/*.?(js|vue)" -l "./src/locales/" --target "en_US" "ru_RU" 

This command will save translations only to en_US.json and ru_RU.json files. Nonexistent files will be created automatically.

About

Extract all translations of vue-i18n-extract to json files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published