Merge remote-tracking branch 'Meine/feature/LocalizeSelectedString' into feature/LocalizeSelectedString

# Conflicts:
#	src/main/java/de/marhali/easyi18n/action/LocalizeItAction.java
This commit is contained in:
JPilson 2023-12-16 18:05:25 +01:00
commit 697059bcdd
19 changed files with 139 additions and 59 deletions

View File

@ -34,7 +34,7 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Validate wrapper # Validate wrapper
- name: Gradle Wrapper Validation - name: Gradle Wrapper Validation
@ -42,7 +42,7 @@ jobs:
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17
@ -102,11 +102,11 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17
@ -155,18 +155,18 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17
# Run Qodana inspections # Run Qodana inspections
- name: Qodana - Code Inspection - name: Qodana - Code Inspection
uses: JetBrains/qodana-action@v2023.2.1 uses: JetBrains/qodana-action@v2023.2.8
with: with:
cache-default-branch-only: true cache-default-branch-only: true
@ -186,11 +186,11 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17
@ -233,11 +233,11 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17

View File

@ -20,13 +20,13 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
ref: ${{ github.event.release.tag_name }} ref: ${{ github.event.release.tag_name }}
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17

View File

@ -33,11 +33,11 @@ jobs:
# Check out current repository # Check out current repository
- name: Fetch Sources - name: Fetch Sources
uses: actions/checkout@v3 uses: actions/checkout@v4
# Set up Java environment for the next steps # Set up Java environment for the next steps
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v3 uses: actions/setup-java@v4
with: with:
distribution: zulu distribution: zulu
java-version: 17 java-version: 17

View File

@ -4,23 +4,38 @@
## [Unreleased] ## [Unreleased]
## [4.4.3] - 2023-12-08
### Added
- Support for all 2023.3 builds (233.*)
### Changed
- Replace deprecated apache commons utils
- Update dependencies
## [4.4.2] - 2023-09-02 ## [4.4.2] - 2023-09-02
### Added ### Added
- Support for all 2023.2 builds (232.*) - Support for all 2023.2 builds (232.*)
### Changed ### Changed
- Translator tool window icon color - Translator tool window icon color
## [4.4.1] - 2023-02-19 ## [4.4.1] - 2023-02-19
### Changed ### Changed
- Dropped support for IDE versions older than 2022.2 - Dropped support for IDE versions older than 2022.2
- Updated dependencies - Updated dependencies
- Removed deprecated API access (TranslatorToolWindowFactory) - Removed deprecated API access (TranslatorToolWindowFactory)
- Replaced YAML mapping with own implementation - Replaced YAML mapping with own implementation
### Fixed ### Fixed
- Support for all 2023.1 builds (231.*) - Support for all 2023.1 builds (231.*)
- Exception on file change listener - Exception on file change listener
- Broken badge link in README - Broken badge link in README
@ -28,72 +43,89 @@
## [4.4.0] ## [4.4.0]
### Added ### Added
- Support of path variables for the locales directory configuration @SIMULATAN - Support of path variables for the locales directory configuration @SIMULATAN
### Changed ### Changed
- Restructure form actions to improve user experience - Restructure form actions to improve user experience
## [4.3.1] ## [4.3.1]
### Fixed ### Fixed
- Support for all 2022.3 builds (223.*) - Support for all 2022.3 builds (223.*)
## [4.3.0] ## [4.3.0]
### Added ### Added
- Support for IntelliJ Platform version 2022.3 - Support for IntelliJ Platform version 2022.3
- Regex support for translation file patterns - Regex support for translation file patterns
### Changed ### Changed
- Reload function internally consolidated - Reload function internally consolidated
### Fixed ### Fixed
- Parsing for <kbd>.properties</kbd> files - Parsing for <kbd>.properties</kbd> files
## [4.2.4] ## [4.2.4]
### Changed ### Changed
- Improved exception handling on syntax errors - Improved exception handling on syntax errors
### Fixed ### Fixed
- Some settings are not retained on IDE restarts - Some settings are not retained on IDE restarts
## [4.2.3] ## [4.2.3]
### Changed ### Changed
- Removed warning about missing configuration during project initialization - Removed warning about missing configuration during project initialization
### Fixed ### Fixed
- Folding support for Vue files - Folding support for Vue files
## [4.2.2] ## [4.2.2]
### Changed ### Changed
- Documentation provider better focuses on the actual translation part - Documentation provider better focuses on the actual translation part
- Color duplicate translation values orange to increase contrast in light themes - Color duplicate translation values orange to increase contrast in light themes
### Fixed ### Fixed
- Unintended overwrite of existing folding regions - Unintended overwrite of existing folding regions
## [4.2.1] ## [4.2.1]
### Changed ### Changed
- Updated dependencies - Updated dependencies
### Fixed ### Fixed
- Downgrade java to fix compatibility issues - Downgrade java to fix compatibility issues
## [4.2.0] ## [4.2.0]
### Added ### Added
- Support for IntelliJ Platform version 2022.2 - Support for IntelliJ Platform version 2022.2
### Changes ### Changes
- Updated dependencies - Updated dependencies
## [4.1.1] ## [4.1.1]
### Fixed ### Fixed
- AssertionError on translation update - AssertionError on translation update
- Use correct line separator in <kbd>properties</kbd> files - Use correct line separator in <kbd>properties</kbd> files
- Allow numbers and other data types in <kbd>properties</kbd> files - Allow numbers and other data types in <kbd>properties</kbd> files
@ -101,6 +133,7 @@
## [4.1.0] ## [4.1.0]
### Added ### Added
- Duplicate translation values filter - Duplicate translation values filter
- Indicate translations with duplicated values yellow - Indicate translations with duplicated values yellow
- Multiple translation filters can be used together - Multiple translation filters can be used together
@ -108,18 +141,22 @@
- Reformat translation files based on IDE preferences - Reformat translation files based on IDE preferences
### Changed ### Changed
- Reengineered how translation filters are applied internally - Reengineered how translation filters are applied internally
### Fixed ### Fixed
- Exception during batch delete - Exception during batch delete
- Translation filters keep their status across updates - Translation filters keep their status across updates
## [4.0.0] ## [4.0.0]
### BREAKING CHANGES ### BREAKING CHANGES
- Configuration rework. Existing settings will be lost and must be configured via the new configuration page - Configuration rework. Existing settings will be lost and must be configured via the new configuration page
### Added ### Added
- Key delimiters (namespace / section) can be configured - Key delimiters (namespace / section) can be configured
- Extract translation intention - Extract translation intention
- Full language support for Java, Kotlin, JavaScript / TypeScript, Vue and PHP - Full language support for Java, Kotlin, JavaScript / TypeScript, Vue and PHP
@ -129,65 +166,79 @@
- Dedicated configuration file (easy-i18n.xml) inside <kbd>.idea</kbd> folder - Dedicated configuration file (easy-i18n.xml) inside <kbd>.idea</kbd> folder
### Changed ### Changed
- Editor assistance has been reengineered. This will affect key suggestion and annotation - Editor assistance has been reengineered. This will affect key suggestion and annotation
- Moved configuration dialog into own page inside <kbd>IDE Settings</kbd> - Moved configuration dialog into own page inside <kbd>IDE Settings</kbd>
### Fixed ### Fixed
- AlreadyDisposedException on FileChangeListener after project dispose - AlreadyDisposedException on FileChangeListener after project dispose
- Request-URL limit for error reports - Request-URL limit for error reports
## [3.2.0] ## [3.2.0]
### Added ### Added
- Support for IntelliJ 2022.1 - Support for IntelliJ 2022.1
### Changed ### Changed
- Updated dependencies - Updated dependencies
## [3.1.0] ## [3.1.0]
### Added ### Added
- Support for Json5 files - Support for Json5 files
## [3.0.1] ## [3.0.1]
### Changed ### Changed
- Fresh projects will receive a notification instead of an exception to configure the plugin - Fresh projects will receive a notification instead of an exception to configure the plugin
### Fixed ### Fixed
- Exception on json array value mapping - Exception on json array value mapping
## [3.0.0] ## [3.0.0]
### BREAKING CHANGES ### BREAKING CHANGES
- The local file structure of your translation files must be configured in the settings menu - The local file structure of your translation files must be configured in the settings menu
### Added ### Added
- Modularization supports namespace or locale module - Modularization supports namespace or locale module
- Full namespace / locale module support for all file types - Full namespace / locale module support for all file types
- Support for object and array elements inside json arrays - Support for object and array elements inside json arrays
- IDE integrated error report functionality - IDE integrated error report functionality
### Changed ### Changed
- Improve exception handling on IO operations - Improve exception handling on IO operations
- Update dependencies - Update dependencies
### Fixed ### Fixed
- Character unescaping for '.properties' files - Character unescaping for '.properties' files
- Exception on json files without any content - Exception on json files without any content
## [2.0.0] ## [2.0.0]
### BREAKING CHANGES ### BREAKING CHANGES
- Translation file pattern matcher needs to be updated to <kbd>\*.*</kbd> or equivalent wildcard rule - Translation file pattern matcher needs to be updated to <kbd>\*.*</kbd> or equivalent wildcard rule
- I18n key nesting will now escape every delimiter within a section layer (can be inverted via option) - I18n key nesting will now escape every delimiter within a section layer (can be inverted via option)
### Added ### Added
- Filter functionality for translations with missing values - Filter functionality for translations with missing values
- Full keyboard shortcut support inside tool-window - Full keyboard shortcut support inside tool-window
- Support for dots within key nodes in YAML files - Support for dots within key nodes in YAML files
### Changed ### Changed
- Improve marking nodes with missing values in tree-view - Improve marking nodes with missing values in tree-view
- Key completion inside editor suggests all keys without any logic - Key completion inside editor suggests all keys without any logic
- Translation file pattern uses wildcard matcher instead of regex - Translation file pattern uses wildcard matcher instead of regex
@ -196,31 +247,37 @@
- Allow tool-window rendering in dumb mode - Allow tool-window rendering in dumb mode
### Fixed ### Fixed
- First row inside table view is not editable - First row inside table view is not editable
- Key focus within tree or table view after translation change - Key focus within tree or table view after translation change
## [1.7.1] ## [1.7.1]
### Fixed ### Fixed
- Vue.js template folding support - Vue.js template folding support
## [1.7.0] ## [1.7.0]
### Added ### Added
- Partial support for translation key folding against actual translation - Partial support for translation key folding against actual translation
- Support for json based arb files (flutter) - Support for json based arb files (flutter)
### Changed ### Changed
- Updated plugin dependencies - Updated plugin dependencies
- Use actual file extension to choose io strategy - Use actual file extension to choose io strategy
### Fixed ### Fixed
- NullPointerException on key completion - NullPointerException on key completion
- Changelog handling in release flow - Changelog handling in release flow
## [1.6.0] ## [1.6.0]
### Added ### Added
- The search function now supports full-text-search - The search function now supports full-text-search
- Automatically reload translation data on file system change - Automatically reload translation data on file system change
- Sorting of translation keys can now be disabled via configuration - Sorting of translation keys can now be disabled via configuration
@ -229,6 +286,7 @@
- Code signing of plugin source - Code signing of plugin source
### Changed ### Changed
- Better focus keys in tree-view after edit - Better focus keys in tree-view after edit
- Optimized internal data structure (io, cache, events) - Optimized internal data structure (io, cache, events)
- Adjusted compatibility matrix to 2020.3 - 2021.3 - Adjusted compatibility matrix to 2020.3 - 2021.3
@ -237,35 +295,43 @@
## [1.5.1] ## [1.5.1]
### Fixed ### Fixed
- Exception on key annotation if path-prefix is undefined - Exception on key annotation if path-prefix is undefined
## [1.5.0] ## [1.5.0]
### Added ### Added
- Support for YAML locale files. Thanks to @sunarya-thito - Support for YAML locale files. Thanks to @sunarya-thito
- Translation key referencing inside editor - Translation key referencing inside editor
- Optional path-prefix for translations - Optional path-prefix for translations
### Changed ### Changed
- Optimized i18n key completion - Optimized i18n key completion
### Fixed ### Fixed
- Locale file pattern configuration - Locale file pattern configuration
## [1.4.1] ## [1.4.1]
### Added ### Added
- Support for IntelliJ 2021.2 - Support for IntelliJ 2021.2
### Changed ### Changed
- Replace deprecated api methods - Replace deprecated api methods
### Fixed ### Fixed
- Warning for unset target element inside tree-view toolbar - Warning for unset target element inside tree-view toolbar
## [1.4.0] ## [1.4.0]
### Added ### Added
- Basic support for json array values - Basic support for json array values
- Settings option to opt-out code assistance inside editor - Settings option to opt-out code assistance inside editor
- Support key completion and annotation for Kotlin language - Support key completion and annotation for Kotlin language
@ -273,64 +339,78 @@
- Donation links on GitHub to support development - Donation links on GitHub to support development
### Changed ### Changed
- Update dependencies - Update dependencies
- Migrate gradle build script - Migrate gradle build script
## [1.3.0] ## [1.3.0]
### Added ### Added
- Scroll to created / edited translation inside Tree-/Table-View - Scroll to created / edited translation inside Tree-/Table-View
- Support for working with multiple projects at once - Support for working with multiple projects at once
### Changed ### Changed
- Update dependencies - Update dependencies
- Load translations even if ui tool window is not opened - Load translations even if ui tool window is not opened
### Fixed ### Fixed
- NullPointerException's on translation annotation / completion inside editor - NullPointerException's on translation annotation / completion inside editor
- Always synchronize ui with loaded state by reloadFromDisk function - Always synchronize ui with loaded state by reloadFromDisk function
## [1.2.0] ## [1.2.0]
### Added ### Added
- Sorting for properties files - Sorting for properties files
### Fixed ### Fixed
- Unexpected character escaping for json/properties files / issue #10 - Unexpected character escaping for json/properties files / issue #10
## [1.1.1] ## [1.1.1]
### Added ### Added
- Support for IntelliJ 2021.1 - Support for IntelliJ 2021.1
### Changed ### Changed
- Update dependencies - Update dependencies
### Fixed ### Fixed
- Exception during i18n key completion / annotation - Exception during i18n key completion / annotation
## [1.1.0] - 2021-04-25 ## [1.1.0] - 2021-04-25
### Added ### Added
- Filter option for translation files via regex / issue #5 - Filter option for translation files via regex / issue #5
- Support for splitted / modularized json files per locale / issue #4 - Support for splitted / modularized json files per locale / issue #4
- Basic translation key completion inside editor - Basic translation key completion inside editor
- I18n key annotation inside editor - I18n key annotation inside editor
### Changed ### Changed
- Tree view will be expanded if search function has been used - Tree view will be expanded if search function has been used
### Fixed ### Fixed
- Encoding for properties files / issue #6 - Encoding for properties files / issue #6
## [1.0.1] - 2021-03-16 ## [1.0.1] - 2021-03-16
### Changed ### Changed
- Modified plugin icon to meet IntelliJ guidelines - Modified plugin icon to meet IntelliJ guidelines
## [1.0.0] - 2021-03-15 (release) ## [1.0.0] - 2021-03-15 (release)
### Added ### Added
- Support for JSON and Resource-Bundle(Properties) based locale files - Support for JSON and Resource-Bundle(Properties) based locale files
- UI Tool Window with Table- and Tree-View representation - UI Tool Window with Table- and Tree-View representation
- Add / Edit / Delete functions - Add / Edit / Delete functions
@ -342,9 +422,11 @@
- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template) - Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template)
### Changed ### Changed
- README.md - README.md
[Unreleased]: https://github.com/marhali/easy-i18n/compare/v4.4.2...HEAD [Unreleased]: https://github.com/marhali/easy-i18n/compare/v4.4.3...HEAD
[4.4.3]: https://github.com/marhali/easy-i18n/compare/v4.4.2...v4.4.3
[4.4.2]: https://github.com/marhali/easy-i18n/compare/v4.4.1...v4.4.2 [4.4.2]: https://github.com/marhali/easy-i18n/compare/v4.4.1...v4.4.2
[4.4.1]: null/compare/v4.4.0...v4.4.1 [4.4.1]: null/compare/v4.4.0...v4.4.1
[4.4.0]: null/compare/v4.3.1...v4.4.0 [4.4.0]: null/compare/v4.3.1...v4.4.0

View File

@ -29,7 +29,11 @@ dependencies {
// Set the JVM language level used to build the project. Use Java 11 for 2020.3+, and Java 17 for 2022.2+. // Set the JVM language level used to build the project. Use Java 11 for 2020.3+, and Java 17 for 2022.2+.
kotlin { kotlin {
jvmToolchain(17) @Suppress("UnstableApiUsage")
jvmToolchain {
languageVersion = JavaLanguageVersion.of(17)
vendor = JvmVendorSpec.JETBRAINS
}
} }
// Configure Gradle IntelliJ Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html // Configure Gradle IntelliJ Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html

View File

@ -4,22 +4,22 @@ pluginGroup = de.marhali.easyi18n
pluginName = easy-i18n pluginName = easy-i18n
pluginRepositoryUrl = https://github.com/marhali/easy-i18n pluginRepositoryUrl = https://github.com/marhali/easy-i18n
# SemVer format -> https://semver.org # SemVer format -> https://semver.org
pluginVersion = 4.4.2 pluginVersion = 4.4.3
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
pluginSinceBuild = 223 pluginSinceBuild = 223
pluginUntilBuild = 232.* pluginUntilBuild = 233.*
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension # IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
platformType = IU platformType = IU
platformVersion = 2023.2.1 platformVersion = 2023.3
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22 # Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = org.jetbrains.kotlin, JavaScript, com.jetbrains.php:232.9559.64 platformPlugins = org.jetbrains.kotlin, JavaScript, com.jetbrains.php:233.11799.241
# Gradle Releases -> https://github.com/gradle/gradle/releases # Gradle Releases -> https://github.com/gradle/gradle/releases
gradleVersion = 8.3 gradleVersion = 8.5
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib # Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
kotlin.stdlib.default.dependency = false kotlin.stdlib.default.dependency = false

View File

@ -1,14 +1,14 @@
[versions] [versions]
# libraries # libraries
annotations = "24.0.1" annotations = "24.1.0"
json5-java = "2.0.0" json5-java = "2.0.0"
# plugins # plugins
kotlin = "1.9.0" kotlin = "1.9.21"
changelog = "2.1.2" changelog = "2.2.0"
gradleIntelliJPlugin = "1.15.0" gradleIntelliJPlugin = "1.16.1"
qodana = "0.1.13" qodana = "0.1.13"
kover = "0.7.3" kover = "0.7.5"
[libraries] [libraries]
annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" } annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }

Binary file not shown.

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

14
gradlew vendored
View File

@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #( case $MAX_FD in #(
max*) max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045 # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) || MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit" warn "Could not query maximum file descriptor limit"
esac esac
@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #( '' | soft) :;; #(
*) *)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045 # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" || ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD" warn "Could not set maximum file descriptor limit to $MAX_FD"
esac esac
@ -202,11 +202,11 @@ fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command; # Collect all arguments for the java command:
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# shell script including quotes and variable substitutions, so put them in # and any embedded shellness will be escaped.
# double quotes to make sure that they get re-expanded; and # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# * put everything else in single quotes, so that it's not re-expanded. # treated as '${Hostname}' itself on the command line.
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \

View File

@ -3,7 +3,7 @@
version: 1.0 version: 1.0
linter: jetbrains/qodana-jvm-community:latest linter: jetbrains/qodana-jvm-community:latest
projectJDK: 17 projectJDK: "17"
profile: profile:
name: qodana.recommended name: qodana.recommended
exclude: exclude:

View File

@ -1,5 +1,5 @@
plugins { plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.6.0" id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"
} }
rootProject.name = "easy-i18n" rootProject.name = "easy-i18n"

View File

@ -1,8 +1,7 @@
package de.marhali.easyi18n.io.parser; package de.marhali.easyi18n.io.parser;
import de.marhali.easyi18n.util.StringUtil; import de.marhali.easyi18n.util.StringUtil;
import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang.StringEscapeUtils;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Iterator; import java.util.Iterator;

View File

@ -7,9 +7,8 @@ import com.google.gson.JsonPrimitive;
import de.marhali.easyi18n.model.TranslationNode; import de.marhali.easyi18n.model.TranslationNode;
import de.marhali.easyi18n.model.TranslationValue; import de.marhali.easyi18n.model.TranslationValue;
import de.marhali.easyi18n.util.StringUtil; import de.marhali.easyi18n.util.StringUtil;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang.math.NumberUtils;
import java.util.Map; import java.util.Map;
@ -61,7 +60,7 @@ public class JsonMapper {
if(content != null) { if(content != null) {
if(JsonArrayMapper.isArray(content)) { if(JsonArrayMapper.isArray(content)) {
json.add(key, JsonArrayMapper.write(content)); json.add(key, JsonArrayMapper.write(content));
} else if(NumberUtils.isNumber(content)) { } else if(NumberUtils.isCreatable(content)) {
json.add(key, new JsonPrimitive(NumberUtils.createNumber(content))); json.add(key, new JsonPrimitive(NumberUtils.createNumber(content)));
} else { } else {
json.add(key, new JsonPrimitive(StringEscapeUtils.unescapeJava(content))); json.add(key, new JsonPrimitive(StringEscapeUtils.unescapeJava(content)));

View File

@ -5,8 +5,7 @@ import de.marhali.easyi18n.util.StringUtil;
import de.marhali.json5.Json5; import de.marhali.json5.Json5;
import de.marhali.json5.Json5Array; import de.marhali.json5.Json5Array;
import de.marhali.json5.Json5Primitive; import de.marhali.json5.Json5Primitive;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang.math.NumberUtils;
import java.io.IOException; import java.io.IOException;
@ -40,7 +39,7 @@ public class Json5ArrayMapper extends ArrayMapper {
} else { } else {
if(StringUtil.isHexString(element)) { if(StringUtil.isHexString(element)) {
array.add(Json5Primitive.of(element, true)); array.add(Json5Primitive.of(element, true));
} else if(NumberUtils.isNumber(element)) { } else if(NumberUtils.isCreatable(element)) {
array.add(Json5Primitive.of(NumberUtils.createNumber(element))); array.add(Json5Primitive.of(NumberUtils.createNumber(element)));
} else { } else {
array.add(Json5Primitive.of(element)); array.add(Json5Primitive.of(element));

View File

@ -6,9 +6,8 @@ import de.marhali.easyi18n.util.StringUtil;
import de.marhali.json5.Json5Element; import de.marhali.json5.Json5Element;
import de.marhali.json5.Json5Object; import de.marhali.json5.Json5Object;
import de.marhali.json5.Json5Primitive; import de.marhali.json5.Json5Primitive;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang.math.NumberUtils;
import java.util.Map; import java.util.Map;
@ -61,7 +60,7 @@ public class Json5Mapper {
json.add(key, Json5ArrayMapper.write(content)); json.add(key, Json5ArrayMapper.write(content));
} else if(StringUtil.isHexString(content)) { } else if(StringUtil.isHexString(content)) {
json.add(key, Json5Primitive.of(content, true)); json.add(key, Json5Primitive.of(content, true));
} else if(NumberUtils.isNumber(content)) { } else if(NumberUtils.isCreatable(content)) {
json.add(key, Json5Primitive.of(NumberUtils.createNumber(content))); json.add(key, Json5Primitive.of(NumberUtils.createNumber(content)));
} else { } else {
json.add(key, Json5Primitive.of(StringEscapeUtils.unescapeJava(content))); json.add(key, Json5Primitive.of(StringEscapeUtils.unescapeJava(content)));

View File

@ -5,9 +5,8 @@ import de.marhali.easyi18n.model.KeyPath;
import de.marhali.easyi18n.model.TranslationValue; import de.marhali.easyi18n.model.TranslationValue;
import de.marhali.easyi18n.util.KeyPathConverter; import de.marhali.easyi18n.util.KeyPathConverter;
import de.marhali.easyi18n.util.StringUtil; import de.marhali.easyi18n.util.StringUtil;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang.math.NumberUtils;
import java.util.Map; import java.util.Map;
@ -51,7 +50,7 @@ public class PropertiesMapper {
if(PropertiesArrayMapper.isArray(content)) { if(PropertiesArrayMapper.isArray(content)) {
properties.put(simpleKey, PropertiesArrayMapper.write(content)); properties.put(simpleKey, PropertiesArrayMapper.write(content));
} else if(NumberUtils.isNumber(content)) { } else if(NumberUtils.isCreatable(content)) {
properties.put(simpleKey, NumberUtils.createNumber(content)); properties.put(simpleKey, NumberUtils.createNumber(content));
} else { } else {
properties.put(simpleKey, StringEscapeUtils.unescapeJava(content)); properties.put(simpleKey, StringEscapeUtils.unescapeJava(content));

View File

@ -3,9 +3,8 @@ package de.marhali.easyi18n.io.parser.yaml;
import de.marhali.easyi18n.model.TranslationNode; import de.marhali.easyi18n.model.TranslationNode;
import de.marhali.easyi18n.model.TranslationValue; import de.marhali.easyi18n.model.TranslationValue;
import de.marhali.easyi18n.util.StringUtil; import de.marhali.easyi18n.util.StringUtil;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.text.StringEscapeUtils;
import org.apache.commons.lang.math.NumberUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -53,7 +52,7 @@ public class YamlMapper {
if(content != null) { if(content != null) {
if(YamlArrayMapper.isArray(content)) { if(YamlArrayMapper.isArray(content)) {
section.put(key, YamlArrayMapper.write(content)); section.put(key, YamlArrayMapper.write(content));
} else if(NumberUtils.isNumber(content)) { } else if(NumberUtils.isCreatable(content)) {
section.put(key, NumberUtils.createNumber(content)); section.put(key, NumberUtils.createNumber(content));
} else { } else {
section.put(key, StringEscapeUtils.unescapeJava(content)); section.put(key, StringEscapeUtils.unescapeJava(content));

View File

@ -24,7 +24,7 @@ public class StringUtil {
/** /**
* Escapes control characters for the given input string. * Escapes control characters for the given input string.
* Inspired by Apache Commons (see {@link org.apache.commons.lang.StringEscapeUtils} * Inspired by Apache Commons (see {@link org.apache.commons.text.StringEscapeUtils}
* @param input The input string * @param input The input string
* @param skipStrings Should every string literal indication ("", '') be skipped? (Needed e.g. for json) * @param skipStrings Should every string literal indication ("", '') be skipped? (Needed e.g. for json)
* @return Escaped string * @return Escaped string