diff --git a/README.md b/README.md index d4676bb..2846afb 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,81 @@ -# easy-i18n +
-![Build](https://github.com/marhali/easy-i18n/workflows/Build/badge.svg) -[![Version](https://img.shields.io/jetbrains/plugin/v/16316.svg)](https://plugins.jetbrains.com/plugin/16316) -[![Downloads](https://img.shields.io/jetbrains/plugin/d/16316.svg)](https://plugins.jetbrains.com/plugin/16316) -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/marhalide) + +[![Build](https://img.shields.io/github/workflow/status/marhali/easy-i18n/Build?style=for-the-badge)](https://github.com/marhali/easy-i18n/actions) +[![Version](https://img.shields.io/jetbrains/plugin/v/16316.svg?style=for-the-badge)](https://plugins.jetbrains.com/plugin/16316) +[![Downloads](https://img.shields.io/jetbrains/plugin/d/16316.svg?style=for-the-badge)](https://plugins.jetbrains.com/plugin/16316) +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?style=for-the-badge)](https://paypal.me/marhalide) + + +
+
+ + Logo + + +

Easy I18n

+ +

+ Examples + · + Report Bug + · + Request Feature +

+
-This is a plugin for easier management of translation files of projects that need to be translated into different languages. Translating large projects has never been so easy with your favorite IDE! +This is a plugin for easier management of translation files for projects that need to be translated into different languages. Translating large projects has never been so easy with your favorite IDE! -## Use Cases -- Webapps: [Vue](https://vuejs.org/) with [vue-i18n](https://kazupon.github.io/vue-i18n/), [React](https://reactjs.org/) or any other json based technology -- Java projects based on Resource-Bundle's -- Projects that uses yaml, json or properties as locale file base for internationalization +This plugin can be used for any project based on one of the formats and structures listed below. ## Features -- UI Tool Window which supports tree- or table-view -- Easily Add / Edit / Delete translations -- Filter function with full-text-search support +- UI Tool-Window which supports _tree-view_ and _table-view_ +- Easily **`Add`** / **`Edit`** / **`Delete`** translations +- Filter all translations with _full-text-search_ support - Editor Assistance: Key completion, annotation and referencing -- Key sorting and nesting can be configured +- Translation key sorting and nesting can be configured - Configurable locales directory & preferred locale for ui presentation - Missing language translations will be indicated red -- Quick actions: right-click or DEL to edit or delete a translation - Automatically reloads translation data if any locale file was changed + +## Builtin Support +### File Types +**JSON** - **YAML** - **Properties** + +### Folder Structure +- Single Directory: All translation files are within one directory +- Modularized (**Locale** \ **Namespace**) +- Modularized (**Namespace** \ **Locale**) + +## Installation + +- Using IDE built-in plugin system: + + Settings/Preferences > Plugins > Marketplace > Search for "easy-i18n" > + Install Plugin + +- Manually: + + Download the [latest release](https://github.com/marhali/easy-i18n/releases/latest) and install it manually using + Settings/Preferences > Plugins > ⚙️ > Install plugin from disk... + + + + +## Configuration +- Install plugin. See **_Installation_** section +- Create a directory that will contain all translation files +- Create your individual translation files (e.g. _en.json_, _de.json_). See examples if you need assistance. +- Click on the `Settings` action inside the EasyI18n Tool-Window (View > Tool Windows > Easy I18n) +- Specify locales directory +- Select folder structure and file parser to apply to your translation files +- Translations can now be created / edited or deleted + + + ## Screenshots ![Tree View](https://raw.githubusercontent.com/marhali/easy-i18n/main/example/images/tree-view.PNG) ![TableView](https://raw.githubusercontent.com/marhali/easy-i18n/main/example/images/table-view.PNG) @@ -33,39 +84,62 @@ This is a plugin for easier management of translation files of projects that nee ![KeyEdit](https://raw.githubusercontent.com/marhali/easy-i18n/main/example/images/key-edit.PNG) ![Settings](https://raw.githubusercontent.com/marhali/easy-i18n/main/example/images/settings.PNG) -## Supported IO Strategies (locale files) -- Json: json files inside locales directory -- Namespaced Json: Multiple json files per locale directory -- Yaml: yml or yaml files inside locales directory -- Properties: properties files inside locales directory +_For more examples, please refer to the [Examples Directory](https://github.com/marhali/easy-i18n/tree/main/example)._ -If there are any files in the locales folder that should not be processed, they can be ignored with the Translation file pattern option. -## Installation -- Using IDE built-in plugin system: - - Settings/Preferences > Plugins > Marketplace > Search for "easy-i18n" > - Install Plugin - -- Manually: + +## Roadmap - Download the [latest release](https://github.com/marhali/easy-i18n/releases/latest) and install it manually using - Settings/Preferences > Plugins > ⚙️ > Install plugin from disk... +- [ ] JSON5 Support +- [ ] XML Support +- [ ] Mark duplicate translation values -## Configuration -- Install plugin. See **Installation** section -- Create a directory which will hold the locale files -- Create a file for each required locale (e.g de.json, en.json) Note: Each json file must at least define an empty section (e.g. **{}**) -- Click on the **Settings** Action inside the EasyI18n Tool Window -- Select the created directory (optional: define the preferred locale to view) and press **Ok** -- Translations can now be created / edited or deleted +See the [open issues](https://github.com/marhali/easy-i18n/issues) for a full list of proposed features (and known issues). -Examples for the configuration can be found in the [/example](https://github.com/marhali/easy-i18n/tree/main/example) folder. + +## Contributing + +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. + +If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". +Don't forget to give the project a star! Thanks again! + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + + + + + + +## License + +Distributed under the MIT License. See `LICENSE` for more information. + + + + + + +## Contact + +Marcel Haßlinger - [@marhali_de](https://twitter.com/marhali_de) - [Portfolio Website](https://marhali.de) + +Project Link: [https://github.com/marhali/easy-i18n](https://github.com/marhali/easy-i18n) + + + + ## Donation -If the project helps you to reduce development time, you can give me a [cup of coffee](https://paypal.me/marhalide) :) +If the project helps you to reduce development time, you can give me a [cup of coffee](https://paypal.me/marhalide) :) --- Plugin based on the [IntelliJ Platform Plugin Template][template]. -[template]: https://github.com/JetBrains/intellij-platform-plugin-template + + +[template]: https://github.com/JetBrains/intellij-platform-plugin-template \ No newline at end of file diff --git a/example/images/settings.PNG b/example/images/settings.PNG index 29cf385..0630bd3 100644 Binary files a/example/images/settings.PNG and b/example/images/settings.PNG differ