Skip to content

Latest commit

 

History

History
568 lines (474 loc) · 17.1 KB

CHANGELOG.md

File metadata and controls

568 lines (474 loc) · 17.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

  • No new features!

Changed

  • No changed features!

Deprecated

  • No deprecated features!

Removed

  • No removed features!

Fixed

  • No fixed issues!

Security

  • No security issues fixed!

4.2.1 - 2024-12-07

Fixed

  • Fix issue with toLowerCase behavior for the Turkish language. Thanks to @fevziomurtekin for the contribution!

4.2.0 - 2023-12-21

Added

  • Add new untranslatableStringsRegex to define a regex to mark matching PoEditor string keys as untranslatable.
Groovy
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    untranslatableStringsRegex = "(.*)"
}
Kotlin
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    untranslatableStringsRegex = "(.*)"
}

4.1.2 - 2023-12-11

Fixed

  • Fix default resource file name constant value.

4.1.1 - 2023-12-11

Fixed

  • Restore conventions for uninitialized properties.
  • Fix flavor-specific configs not picking up the default resource path for the brand.

4.1.0 - 2023-11-26

Changed

  • Allow PoEditor importing task lazy configuration.

4.0.0 - 2023-11-07

Changed

  • BREAKING CHANGE: Bump Gradle version to 8 and AGP version to 8.1.2.
  • Update dependencies.

3.4.2 - 2023-08-28

Fixed

  • Fix tags not being sent as String JSON array. Thanks to @bogdanzurac for the contribution!

3.4.1 - 2023-07-13

Fixed

  • Fix parsing of texts with more than 9 placeholders.

3.4.0 - 2023-05-08

Added

  • Add new unescapeHtmlTags flag to enable or disable HTML unescaping from strings.
Groovy
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    unescapeHtmlTags = false
}
Kotlin
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    unescapeHtmlTags = false
}

3.3.1 - 2023-03-20

Changed

  • Roll back to AGP 7.2.2 and JAva 8 until further notice.

3.3.0 - 2023-03-20

Changed

  • Bump project dependencies
  • Project is now compiled against Java 11

Fixed

  • Fix unexpected plug-in crash when PoEditor responses return no result. Thanks to @MartinakDaniel for the contribution!

3.2.0 - 2023-01-22

Added

  • Add option to unquote strings via export API

3.1.1 - 2022-12-27

Fixed

  • Fix order setter not added to PoEditorPluginExtension

3.1.0 - 2022-11-16

Added

  • Add configuration support to define custom resource file names. Thanks to @gustavaa for the contribution!
  • Add configuration support to define how to order the export. Thanks to @WarrenFaith for the contribution!

3.0.1 - 2022-09-18

Fixed

  • Fix Chinese variants support
  • Fix Indonesian, Hebrew and Yiddish support

3.0.0 - 2022-02-03

Changed

  • BREAKING: Update dependencies to work with Android Gradle Plugin 7.+. This will break compatibility with projects that use versions lower than 7.0

2.4.2 - 2021-10-17

Changed

  • Change detekt rules according to library update to version 1.18.1

Removed

  • Remove jcenter() from project

2.4.1 - 2021-09-16

Fixed

  • Fix CDATA strings not parsed correctly
  • Fix < and > not getting properly unescaped in CDATA strings

2.4.0 - 2021-07-26

Added

  • Add filters parameter to poEditorConfig block to specify the POEditor filters to use for all languages. Thanks to @nokite for the contribution!
Groovy
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    filters = ["translated", "not_fuzzy"]
}
Kotlin
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    filters = listOf("translated", "not_fuzzy")
}

2.3.0 - 2021-07-22

Added

  • Add some code style rules to be shared via editorconfig (insert_final_newline=false). Thanks to @nokite for the contribution!
  • Add minimumTranslationPercentage parameter to poEditorConfig block to specify the minimum accepted percentage of translated strings per language. Thanks to @nokite for the contribution!
Groovy
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    minimumTranslationPercentage = 85
}
Kotlin
poEditor {
    apiToken = "your_api_token"
    projectId = 12345
    defaultLang = "en"
    minimumTranslationPercentage = 85
}

Changed

  • The XML attribute encoding in the generated string resource files is now lowercase utf-8. Thanks to @nokite for the contribution!
  • Migrate to PoEditor API v2.
  • Update some dependencies (Gradle 6.9, Kotlin 1.4.20, Moshi 1.12.0, OkHttp 4.9.1, Junit 4.13.2). Thanks to @nokite for the contribution!
  • Update deprecated Gradle property classifier to archiveClassifier Thanks to @nokite for the contribution!
  • Update Project.xml (matching Android Studio 4.2.1) Thanks to @nokite for the contribution!

2.2.1 - 2021-05-28

Changed

  • Increase connect, read and write timeouts to 30 seconds

2.2.0 - 2021-05-25

Added

  • Add languageValuesOverridePathMap to override values folder for specific languages.
Groovy
poEditor {
  apiToken = "your_api_token"
  projectId = 12345
  defaultLang = "en"
  languageValuesOverridePathMap = [
          "free" : "${rootDir}/app/src/free/res/values",
          "paid" : "${rootDir}/app/src/paid/res/values"
  ]
}
Kotlin
poEditor {
  apiToken = "your_api_token"
  projectId = 12345
  defaultLang = "en"
  languageValuesOverridePathMap = mapOf(
          "free" to "${rootDir}/app/src/free/res/values",
          "paid" to "${rootDir}/app/src/paid/res/values"
  )
}

2.1.2 - 2021-05-18

Fixed

2.1.1 - 2021-05-06

Fixed

  • Fix undefined tags crashing the plugin

2.1.0 - 2021-05-05

Added

  • Add tags parameter to poEditorConfig block to add PoEditor tags:
Groovy
poEditor {
  apiToken = "your_api_token"
  projectId = 12345
  defaultLang = "en"
  tags = ["tag1", "tag2"] // Download strings with the specified tags
}
Kotlin
poEditor {
  apiToken = "your_api_token"
  projectId = 12345
  defaultLang = "en"
  tags = listOf("tag1", "tag2")
}

Changed

  • Add support for Android Gradle Plugin version 4.2.0

Removed

  • Remove support for Android Gradle Plugin versions lower than 4.2.0

2.0.0 - 2021-04-28

Changed

  • Change repo ownership to hyperdevs-team. Thanks bq for all the work!
  • Change package names from com.bq.* to com.hyperdevs.*

1.4.2 - 2020-12-29

Added

Fixed

  • Fix HTML tags being escaped when parsing.

1.4.1 - 2020-12-28

Fixed

  • Fix percent symbols not being properly escaped (again) by processing the XML file line by line.

1.4.0 - 2020-12-25

Added

  • Add the enabled variable to enable or disable specific configurations.

Removed

  • Remove tasks that are disabled with the enabled flag or not configured.

Fixed

  • Fix an issue that didn't save flavor or build type specific strings in their default resources folder.

1.3.1 - 2020-12-21

Fixed

  • Fix percent symbols being escaped when variables are present.

1.3.0 - 2020-09-28

Added

  • Add support for using the plug-in in library modules.
  • Add support for configuring non-standard resource directory path via defaultResPath. Thanks to @rafid059 for the contribution!
Groovy
poEditor {
    defaultResPath = "your/res/path"
}

android {
    // If you have the following flavors...
    flavorDimensions 'type'
    productFlavors {
        free { dimension 'type' }
        paid { dimension 'type' }
    }

    poEditorConfig {
        free {
            // Configuration for the free flavor, same syntax as usual
            defaultResPath = "your/free/res/path"
        }
        paid {
            // Configuration for the paid flavor, same syntax as usual
            defaultResPath = "your/paid/res/path"
        }
        debug {
            // Configuration for the debug build type, same syntax as usual
            defaultResPath = "your/debug/res/path"
        }
        release {
            // Configuration for the release build type, same syntax as usual
            defaultResPath = "your/release/res/path"
        }
    }
}
Kotlin
poEditor {
    defaultResPath = "your/res/path"
}

android {
    // If you have the following flavors...
    flavorDimensions("type")

    productFlavors {
        register("free") { setDimension("type") }
        register("paid") { setDimension("type") }
    }

    poEditorConfig {
        register("free") {
            // Configuration for the free flavor, same syntax as usual
            defaultResPath = "your/free/res/path"
        }
        register("paid") {
            // Configuration for the paid flavor, same syntax as usual
            defaultResPath = "your/paid/res/path"
        }
        register("debug") {
            // Configuration for the debug build type, same syntax as usual
            defaultResPath = "your/debug/res/path"
        }
        register("release") {
            // Configuration for the release build type, same syntax as usual
            defaultResPath = "your/release/res/path"
        }
    }
}

1.2.0 - 2020-09-03

Added

  • Add proper support for plurals

1.1.0 - 2020-08-14

Added

  • Add support for flavor and build type configuration. The sample configuration is as follows:
Groovy
poEditor {
    // Default config that applies to all flavor/build type configurations. 
    // Also executed when calling 'importPoEditorStrings'
}

android {
    // If you have the following flavors...
    flavorDimensions 'type'
    productFlavors {
        free { dimension 'type' }
        paid { dimension 'type' }
    }

    poEditorConfig {
        free {
            // Configuration for the free flavor, same syntax as usual
        }
        paid {
            // Configuration for the paid flavor, same syntax as usual
        }
        debug {
            // Configuration for the debug build type, same syntax as usual
        }
        release {
            // Configuration for the release build type, same syntax as usual
        }
    }
}
Kotlin
poEditor {
    // Default config that applies to all flavor/build type configurations. 
    // Also executed when calling 'importPoEditorStrings'
}

android {
    // If you have the following flavors...
    flavorDimensions("type")

    productFlavors {
        register("free") { setDimension("type") }
        register("paid") { setDimension("type") }
    }

    poEditorConfig {
        register("free") {
            // Configuration for the free flavor, same syntax as usual
        }
        register("paid") {
            // Configuration for the paid flavor, same syntax as usual
        }
        register("debug") {
            // Configuration for the debug build type, same syntax as usual
        }
        register("release") {
            // Configuration for the release build type, same syntax as usual
        }
    }
}

Removed

  • The resDirPath parameter is no longer needed, since it gets inferred from the flavor or build type configured in the app

1.0.0 - 2020-07-21

Added

  • Full project refactor in order to improve general stability and reliability of the plug-in.

Fixed

  • The plug-in does not rely on curl commands now. Instead it now uses OkHttp and Retrofit libraries.
  • Tablet strings folder are not generated if no tablet strings are found.

Changed

  • The plugin name to use is now poEditor instead of poEditorPlugin.
  • The input parameters have been changed from snake case to camel case:
api_token -> apiToken
project_id -> projectId
default_lang -> defaultLang
res_dir_path -> resDirPath

0.2.5 - 2016-07-08

Fixed

  • Fix build process to allow integration via JitPack.

0.2.4 - 2016-07-08

Added

  • Initial release.