i18nWeave-vscode

Downloads Latest version

Build CodeQL codecov Quality Gate Status

Contributors Open Issues Closed Issues

License

i18nWeave - Developer’s i18n Companion

**Note**: Please be aware that this extension is currently under development. Use it with the understanding that features and functionality may change.

See the website i18nWeave.com for more info. Of course available in multiple languages thanks to i18nWeave.

⭐ Features

Main Features

Beta Features

Configuring Your i18nWeave Extension

To configure the i18nWeave extension, follow these instructions:

  1. Open Command Palette:
    • Open the command palette by pressing Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac).
  2. Run Configure Command:
    • In the command palette, type i18nWeave: Configure extension and select it.
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac)
  1. Single Project Configuration:
    • If you are not using a monorepo, select Single Project when prompted. Note that monorepos are not supported yet.
  2. Choose Framework:
    • You will be prompted to choose among several frameworks. Since none are implemented yet, select Custom.
  3. Select Translation Files Location:
    • Choose the location of your translation files. A folder browser will appear for you to select the appropriate folder.
    📁 Select your translation files location
    
  4. Select Code Files Location:
    • Next, choose the location of your code files. A folder browser will appear, and you will be allowed to select multiple folders.
    📁 Select your code files location (multiple select allowed)
    
  5. Enter Default Language:
    • You will need to enter your default language. This can be in formats like nl, en, nl-NL, or en-GB.
    Enter your default language (e.g., en-GB)
    
  6. Enter Supported Languages:
    • Enter all the supported languages you want to include, separated by commas.
    Enter supported languages (e.g., en, nl, fr, de)
    
  7. Enter Translation Namespaces:
    • Finally, enter the namespaces of your translations, such as common and navigation.
    Enter translation namespaces (e.g., common, navigation)
    

By following these steps, you will have successfully configured the i18nWeave extension.

🚧 Roadmap

Somewhere in the nearer future

Somewhere in the farther future

👍 Acknowledgements

This extension leans on at least the following libraries / packages.

🤓 Authors

🧾 Motivation

After having worked with translation files in a large React web application for a client for some time, I discovered that manually managing the JSON translation files that come with translating an application isn’t easily manageable within a larger team. When multiple people have to modify the same files by hand, merge conflicts tend to occur frequently. This not only costs valuable developer time but also affects developer satisfaction, as developers generally despise the tedious task of manually merging multiple JSON files line by line. It’s as exciting as watching paint dry!

I needed a way to have the translation files be consistent for every developer, regardless of who added them. There shouldn’t be a need for manually editing JSON files to manage your translations.

I couldn’t really find a good solution to my problem, so, I decided to take matters into my own hands and create i18nWeave, a versatile Visual Studio Code extension designed to streamline the management of translation files within your development projects. With its intuitive features, i18nWeave simplifies the process of handling translation keys, providing flexibility and efficiency in your workflow.

I have designed the extension to be modular, allowing for the easy addition of functionalities. These functionalities, referred to as modules, can be easily enabled or disabled through the configuration settings. Have a look at the features for more info: Features.

Now, you can say goodbye to those mind-numbing merge conflicts and hello to a more enjoyable and productive development experience. Let i18nWeave do the heavy lifting for you, so you can focus on what you do best - writing amazing code!