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.
- No new features!
- No changed features!
- No deprecated features!
- No removed features!
- No fixed issues!
- No security issues fixed!
4.2.0 - 2023-12-21
- 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
- Fix default resource file name constant value.
4.1.1 - 2023-12-11
- 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
- Allow PoEditor importing task lazy configuration.
4.0.0 - 2023-11-07
- BREAKING CHANGE: Bump Gradle version to 8 and AGP version to 8.1.2.
- Update dependencies.
3.4.2 - 2023-08-28
- Fix tags not being sent as String JSON array. Thanks to @bogdanzurac for the contribution!
3.4.1 - 2023-07-13
- Fix parsing of texts with more than 9 placeholders.
3.4.0 - 2023-05-08
- 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
- Roll back to AGP 7.2.2 and JAva 8 until further notice.
3.3.0 - 2023-03-20
- Bump project dependencies
- Project is now compiled against Java 11
- Fix unexpected plug-in crash when PoEditor responses return no result. Thanks to @MartinakDaniel for the contribution!
3.2.0 - 2023-01-22
- Add option to unquote strings via export API
3.1.1 - 2022-12-27
- Fix
order
setter not added toPoEditorPluginExtension
3.1.0 - 2022-11-16
- 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
- Fix Chinese variants support
- Fix Indonesian, Hebrew and Yiddish support
3.0.0 - 2022-02-03
- 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
- Change detekt rules according to library update to version 1.18.1
- Remove
jcenter()
from project
2.4.1 - 2021-09-16
- Fix CDATA strings not parsed correctly
- Fix
<
and>
not getting properly unescaped in CDATA strings
2.4.0 - 2021-07-26
- Add
filters
parameter topoEditorConfig
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
- Add some code style rules to be shared via editorconfig (
insert_final_newline=false
). Thanks to @nokite for the contribution! - Add
minimumTranslationPercentage
parameter topoEditorConfig
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
}
- The XML attribute
encoding
in the generated string resource files is now lowercaseutf-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
toarchiveClassifier
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
- Increase connect, read and write timeouts to 30 seconds
2.2.0 - 2021-05-25
- Add
languageValuesOverridePathMap
to overridevalues
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
- Fix parse date for empty language. Thanks to @wojciechkryg and @rafid059 for the contribution!
2.1.1 - 2021-05-06
- Fix undefined tags crashing the plugin
2.1.0 - 2021-05-05
- Add
tags
parameter topoEditorConfig
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")
}
- Add support for Android Gradle Plugin version 4.2.0
- Remove support for Android Gradle Plugin versions lower than 4.2.0
2.0.0 - 2021-04-28
- Change repo ownership to hyperdevs-team. Thanks bq for all the work!
- Change package names from
com.bq.*
tocom.hyperdevs.*
1.4.2 - 2020-12-29
- Dotenv support for the
Main.kt
file for easier local development.
- Fix HTML tags being escaped when parsing.
1.4.1 - 2020-12-28
- Fix percent symbols not being properly escaped (again) by processing the XML file line by line.
1.4.0 - 2020-12-25
- Add the
enabled
variable to enable or disable specific configurations.
- Remove tasks that are disabled with the
enabled
flag or not configured.
- Fix an issue that didn't save flavor or build type specific strings in their default resources folder.
1.3.1 - 2020-12-21
- Fix percent symbols being escaped when variables are present.
1.3.0 - 2020-09-28
- 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
- Add proper support for
plurals
1.1.0 - 2020-08-14
- 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
}
}
}
- 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
- Full project refactor in order to improve general stability and reliability of the plug-in.
- 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.
- The plugin name to use is now
poEditor
instead ofpoEditorPlugin
. - 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
- Fix build process to allow integration via JitPack.
0.2.4 - 2016-07-08
- Initial release.