From e7e4bbb53adb7f281e465ce72c0274e422afd4e3 Mon Sep 17 00:00:00 2001 From: Teodor Grigor Date: Wed, 28 Aug 2024 17:26:21 +0300 Subject: [PATCH] Prepare for release 1.0.0-alpha02 --- README.md | 177 ++++++++++++++++++++++------ build.gradle.kts | 9 +- docs/assets/winds/xenoglot-bom.json | 79 +++++++++++++ docs/assets/winds/xenoglot.json | 68 +++++++++++ docs/bom/bom-mapping.md | 13 +- docs/bom/implementation.md | 54 ++++++--- docs/bom/index.md | 14 +-- docs/index.md | 68 ++++++----- docs/releases/index.md | 55 ++++++--- mkdocs.yml | 5 +- winds-changelog.yml | 12 ++ xenoglot-bom/build.gradle.kts | 5 - 12 files changed, 443 insertions(+), 116 deletions(-) diff --git a/README.md b/README.md index cb69b00..7689717 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,34 @@ -## Xenoglot 🌍 +# Xenoglot 🌍 ### Overview + [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![Maven Central](https://img.shields.io/maven-central/v/dev.teogor.xenoglot/bom.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=g%3Adev.teogor.xenoglot+a%3Abom&smo=true) +[![Maven Central](https://img.shields.io/maven-central/v/dev.teogor.xenoglot/xenoglot-bom.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=g%3Adev.teogor.xenoglot+a%3Axenoglot-bom&smo=true) [![Profile](https://source.teogor.dev/badges/teogor-github.svg)](https://github.com/teogor) [![Open-Source Directory](https://source.teogor.dev/badges/teogor-dev.svg)](https://source.teogor.dev) **Xenoglot: A Comprehensive Language Data Management Toolkit** -Xenoglot is a comprehensive library for representing, managing, and interacting with language data. It provides a rich set of classes and interfaces for representing languages, dialects, scripts, language families, and regions. The library also includes methods for obtaining language tags, checking language usage patterns, and territorializing languages. Xenoglot is essential for any project that requires accurate and consistent handling of language data. +Xenoglot is a comprehensive library for representing, managing, and interacting with language data. +It provides a rich set of classes and interfaces for representing languages, dialects, scripts, +language families, and regions. The library also includes methods for obtaining language tags, +checking language usage patterns, and territorializing languages. Xenoglot is essential for any +project that requires accurate and consistent handling of language data. **Key Features** -* **Comprehensive Language Representation:** Xenoglot provides a structured representation of languages, dialects, scripts, language families, and regions, enabling accurate and consistent handling of language data. +* **Comprehensive Language Representation:** Xenoglot provides a structured representation of + languages, dialects, scripts, language families, and regions, enabling accurate and consistent + handling of language data. -* **Language Tag Generation:** Xenoglot provides methods for generating language tags, facilitating interoperability with language-related protocols and standards. +* **Language Tag Generation:** Xenoglot provides methods for generating language tags, facilitating + interoperability with language-related protocols and standards. -* **Language Usage Analysis:** Xenoglot includes methods for checking language usage patterns, enabling informed decisions about language selection and content localization. +* **Language Usage Analysis:** Xenoglot includes methods for checking language usage patterns, + enabling informed decisions about language selection and content localization. -* **Language Territorialization:** Xenoglot provides functionality for territorializing languages, adapting them to specific geographical or political contexts. +* **Language Territorialization:** Xenoglot provides functionality for territorializing languages, + adapting them to specific geographical or political contexts. **Kotlin Multiplatform Support** @@ -33,26 +43,123 @@ Xenoglot is designed to work across various platforms through Kotlin Multiplatfo - **tvOS**: Supports tvOS devices and simulators, including `tvosX64`, `tvosArm64`, and `tvosSimulatorArm64`. - **watchOS**: Supports watchOS devices and simulators, including `watchosX64`, `watchosArm32`, `watchosArm64`, `watchosDeviceArm64`, and `watchosSimulatorArm64`. -**Installation** +[//]: # (REGION-DEPENDENCIES) -To install Xenoglot, add the following dependency to your build script: +## Getting Started with Xenoglot -```kotlin -dependencies { - implementation(platform("dev.teogor.xenoglot:bom:1.0.0-alpha01")) - implementation("dev.teogor.xenoglot:android") - implementation("dev.teogor.xenoglot:core") - - // or without bom - implementation("dev.teogor.xenoglot:core:1.0.0-alpha01") -} -``` +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Xenoglot dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-xenoglot-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-xenoglot-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Xenoglot Dependencies Manually + +To use Xenoglot in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorXenoglot = "1.0.0-alpha02" + + implementation "dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorXenoglot = "1.0.0-alpha02" + + implementation("dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot") + } + ``` + +### Managing Xenoglot Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Xenoglot dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: -**Usage** +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-xenoglot = "1.0.0-alpha02" + + [libraries] + teogor-xenoglot-atlas = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas-extended = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas-extended", version.ref = "teogor-xenoglot" } + teogor-xenoglot-core = { group = "dev.teogor.xenoglot", name = "xenoglot-core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-locale = { group = "dev.teogor.xenoglot", name = "xenoglot-locale", version.ref = "teogor-xenoglot" } + teogor-xenoglot-pluralization = { group = "dev.teogor.xenoglot", name = "xenoglot-pluralization", version.ref = "teogor-xenoglot" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-xenoglot = "1.0.0-alpha02" + + [libraries] + teogor-xenoglot-atlas = { module = "dev.teogor.xenoglot:xenoglot-atlas", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas-extended = { module = "dev.teogor.xenoglot:xenoglot-atlas-extended", version.ref = "teogor-xenoglot" } + teogor-xenoglot-core = { module = "dev.teogor.xenoglot:xenoglot-core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-locale = { module = "dev.teogor.xenoglot:xenoglot-locale", version.ref = "teogor-xenoglot" } + teogor-xenoglot-pluralization = { module = "dev.teogor.xenoglot:xenoglot-pluralization", version.ref = "teogor-xenoglot" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.xenoglot.atlas + implementation libs.teogor.xenoglot.atlas.extended + implementation libs.teogor.xenoglot.core + implementation libs.teogor.xenoglot.locale + implementation libs.teogor.xenoglot.pluralization + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.xenoglot.atlas) + implementation(libs.teogor.xenoglot.atlas.extended) + implementation(libs.teogor.xenoglot.core) + implementation(libs.teogor.xenoglot.locale) + implementation(libs.teogor.xenoglot.pluralization) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + +## Usage The following examples demonstrate how to use Xenoglot to represent and interact with language data: -**Retrieving Language Information** +### Retrieving Language Information ```kotlin val language = Language.English @@ -61,14 +168,14 @@ val languageFamily = language.languageFamily val isSpokenInRomania = language.isSpokenIn(Country.Romania) ``` -**Checking Language Usage Patterns** +### Checking Language Usage Patterns ```kotlin val isDialect = Dialect("en-US", Language.English).isDialect val isScriptUsedInLanguage = Script.Cyrillic.isWrittenIn(Language.Russian) ``` -**Territorializing Languages** +### Territorializing Languages ```kotlin val dialect = Language.English.territorialize(Country.Australia) @@ -76,21 +183,19 @@ val dialectLanguageTag = dialect.languageTag val dialectCountryCode = dialect.country.code ``` -**Benefits of Using Xenoglot** - -* **Improved Language Handling:** Xenoglot provides a consistent and structured approach to managing language data, reducing errors and inconsistencies. +## Benefits of Using Xenoglot -* **Enhanced Interoperability:** Xenoglot facilitates interoperability with language-related protocols and standards, enabling seamless integration with external systems. +* **Improved Language Handling:** Xenoglot provides a consistent and structured approach to managing + language data, reducing errors and inconsistencies. -* **Simplified Language-Related Tasks:** Xenoglot streamlines language-related tasks, such as localization, translation, and language detection. +* **Enhanced Interoperability:** Xenoglot facilitates interoperability with language-related + protocols and standards, enabling seamless integration with external systems. -* **Promote Language-Aware Development:** Xenoglot encourages language-aware development practices, ensuring that language data is handled accurately and appropriately. +* **Simplified Language-Related Tasks:** Xenoglot streamlines language-related tasks, such as + localization, translation, and language detection. -**Getting Started** - -To get started with Xenoglot, refer to the comprehensive documentation available at -[source.teogor.dev/xenoglot](https://source.teogor.dev/xenoglot). The documentation provides -detailed explanations, examples, and best practices for using the library effectively. +* **Promote Language-Aware Development:** Xenoglot encourages language-aware development practices, + ensuring that language data is handled accurately and appropriately. ## Pluralization Support @@ -126,7 +231,9 @@ For a more detailed guide on how to use pluralization effectively, please refer the [Pluralization Module Documentation](docs/pluralization-guide.md). ## Find this repository useful? 🩷 -* Support it by joining __[stargazers](https://github.com/teogor/xenoglot/stargazers)__ for this repository. πŸ“ + +* Support it by joining __[stargazers](https://github.com/teogor/xenoglot/stargazers)__ for this + repository. πŸ“ * Get notified about my new projects by __[following me](https://github.com/teogor)__ on GitHub. πŸ’» * Interested in sponsoring me? [Support me](docs/sponsor.md) on GitHub! 🀝 diff --git a/build.gradle.kts b/build.gradle.kts index e66a841..6b34320 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ import dev.teogor.winds.api.SonatypeHost import dev.teogor.winds.api.ArtifactIdFormat import dev.teogor.winds.api.License +import dev.teogor.winds.api.NameFormat import dev.teogor.winds.api.Person import dev.teogor.winds.api.Scm import dev.teogor.winds.api.TicketSystem @@ -50,16 +51,17 @@ winds { description = """ |\uD83C\uDF0D Xenoglot seamlessly masters languages and locales, empowering developers to integrate multilingual capabilities into their applications with ease. """.trimMargin() - yearCreated = 2024 + yearCreated = 2023 websiteUrl = "https://source.teogor.dev/xenoglot" apiDocsUrl = "$websiteUrl/html/" artifactDescriptor { group = "dev.teogor.xenoglot" name = "Xenoglot" - artifactIdFormat = ArtifactIdFormat.NAME_ONLY + artifactIdFormat = ArtifactIdFormat.MODULE_NAME_ONLY + nameFormat = NameFormat.FULL version = createVersion(1, 0, 0) { - alphaRelease(1) + alphaRelease(2) } } @@ -92,6 +94,7 @@ winds { } publishing { + enabled = false cascade = true enablePublicationSigning = true optInForVanniktechPlugin = true diff --git a/docs/assets/winds/xenoglot-bom.json b/docs/assets/winds/xenoglot-bom.json index b8964e6..8f779c3 100644 --- a/docs/assets/winds/xenoglot-bom.json +++ b/docs/assets/winds/xenoglot-bom.json @@ -44,5 +44,84 @@ "date": 1700481600 } ] + }, + { + "module": "dev.teogor.xenoglot:xenoglot-bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206, + "dependencies": [ + { + "module": "dev.teogor.xenoglot:xenoglot-atlas", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-atlas-extended", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-locale", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-pluralization", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855206 + } + ] } ] \ No newline at end of file diff --git a/docs/assets/winds/xenoglot.json b/docs/assets/winds/xenoglot.json index 1413a06..557f053 100644 --- a/docs/assets/winds/xenoglot.json +++ b/docs/assets/winds/xenoglot.json @@ -44,5 +44,73 @@ "date": 1700481600 } ] + }, + { + "module": "dev.teogor.xenoglot:xenoglot", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575, + "dependencies": [ + { + "module": "dev.teogor.xenoglot:xenoglot-atlas", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-atlas-extended", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-locale", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575 + }, + { + "module": "dev.teogor.xenoglot:xenoglot-pluralization", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1724855575 + } + ] } ] \ No newline at end of file diff --git a/docs/bom/bom-mapping.md b/docs/bom/bom-mapping.md index 00f1549..35ec98f 100644 --- a/docs/bom/bom-mapping.md +++ b/docs/bom/bom-mapping.md @@ -2,12 +2,15 @@ [//]: # (REGION-BOM-TO-LIBRARY-VERSION-MAPPING) -**BOM version 1.0.0-alpha01** +**BOM version 1.0.0-alpha02** -| Library group | BOM Versions | -|:------------------------------|:---------------:| -| dev.teogor.xenoglot:android | 1.0.0-alpha01 | -| dev.teogor.xenoglot:core | 1.0.0-alpha01 | +| Library group | BOM Versions | +|:----------------------------------------------|:---------------:| +| dev.teogor.xenoglot:xenoglot-atlas | 1.0.0-alpha02 | +| dev.teogor.xenoglot:xenoglot-atlas-extended | 1.0.0-alpha02 | +| dev.teogor.xenoglot:xenoglot-core | 1.0.0-alpha02 | +| dev.teogor.xenoglot:xenoglot-locale | 1.0.0-alpha02 | +| dev.teogor.xenoglot:xenoglot-pluralization | 1.0.0-alpha02 | [//]: # (REGION-BOM-TO-LIBRARY-VERSION-MAPPING) diff --git a/docs/bom/implementation.md b/docs/bom/implementation.md index 0c5e71b..4ac19bd 100644 --- a/docs/bom/implementation.md +++ b/docs/bom/implementation.md @@ -23,11 +23,14 @@ To use BoM in your app, add the following dependencies to your app's `build.grad ```groovy title="build.gradle" dependencies { - def teogorXenoglotBom = "1.0.0-alpha01" + def teogorXenoglotBom = "1.0.0-alpha02" - implementation "dev.teogor.xenoglot:android:$teogorXenoglotBom" - implementation "dev.teogor.xenoglot:bom:$teogorXenoglotBom" - implementation "dev.teogor.xenoglot:core:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-bom:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-core:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglotBom" + implementation "dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglotBom" } ``` @@ -35,11 +38,14 @@ To use BoM in your app, add the following dependencies to your app's `build.grad ```kotlin title="build.gradle.kts" dependencies { - val teogorXenoglotBom = "1.0.0-alpha01" + val teogorXenoglotBom = "1.0.0-alpha02" - implementation("dev.teogor.xenoglot:android:$teogorXenoglotBom") - implementation("dev.teogor.xenoglot:bom:$teogorXenoglotBom") - implementation("dev.teogor.xenoglot:core:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-bom:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-core:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglotBom") + implementation("dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglotBom") } ``` @@ -56,24 +62,30 @@ First, define the dependencies in the `libs.versions.toml` file: ```toml title="gradle/libs.versions.toml" [versions] - teogor-xenoglot-bom = "1.0.0-alpha01" + teogor-xenoglot-bom = "1.0.0-alpha02" [libraries] - teogor-xenoglot-bom = { group = "dev.teogor.xenoglot", name = "bom", version.ref = "teogor-xenoglot-bom" } - teogor-xenoglot-android = { group = "dev.teogor.xenoglot", name = "android" } - teogor-xenoglot-core = { group = "dev.teogor.xenoglot", name = "core" } + teogor-xenoglot-bom = { group = "dev.teogor.xenoglot", name = "xenoglot-bom", version.ref = "teogor-xenoglot-bom" } + teogor-xenoglot-atlas = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas" } + teogor-xenoglot-atlas-extended = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas-extended" } + teogor-xenoglot-core = { group = "dev.teogor.xenoglot", name = "xenoglot-core" } + teogor-xenoglot-locale = { group = "dev.teogor.xenoglot", name = "xenoglot-locale" } + teogor-xenoglot-pluralization = { group = "dev.teogor.xenoglot", name = "xenoglot-pluralization" } ``` === "Module Based" ```toml title="gradle/libs.versions.toml" [versions] - teogor-xenoglot-bom = "1.0.0-alpha01" + teogor-xenoglot-bom = "1.0.0-alpha02" [libraries] - teogor-xenoglot-bom = { module = "dev.teogor.xenoglot:bom", version.ref = "teogor-xenoglot-bom" } - teogor-xenoglot-android = { module = "dev.teogor.xenoglot:android" } - teogor-xenoglot-core = { module = "dev.teogor.xenoglot:core" } + teogor-xenoglot-bom = { module = "dev.teogor.xenoglot:xenoglot-bom", version.ref = "teogor-xenoglot-bom" } + teogor-xenoglot-atlas = { module = "dev.teogor.xenoglot:xenoglot-atlas" } + teogor-xenoglot-atlas-extended = { module = "dev.teogor.xenoglot:xenoglot-atlas-extended" } + teogor-xenoglot-core = { module = "dev.teogor.xenoglot:xenoglot-core" } + teogor-xenoglot-locale = { module = "dev.teogor.xenoglot:xenoglot-locale" } + teogor-xenoglot-pluralization = { module = "dev.teogor.xenoglot:xenoglot-pluralization" } ``` Then, add these dependencies in your app's `build.gradle` file: @@ -83,8 +95,11 @@ Then, add these dependencies in your app's `build.gradle` file: ```groovy title="build.gradle" dependencies { implementation platform(libs.teogor.xenoglot.bom) - implementation libs.teogor.xenoglot.android + implementation libs.teogor.xenoglot.atlas + implementation libs.teogor.xenoglot.atlas.extended implementation libs.teogor.xenoglot.core + implementation libs.teogor.xenoglot.locale + implementation libs.teogor.xenoglot.pluralization } ``` @@ -93,8 +108,11 @@ Then, add these dependencies in your app's `build.gradle` file: ```kotlin title="build.gradle.kts" dependencies { implementation(platform(libs.teogor.xenoglot.bom)) - implementation(libs.teogor.xenoglot.android) + implementation(libs.teogor.xenoglot.atlas) + implementation(libs.teogor.xenoglot.atlas.extended) implementation(libs.teogor.xenoglot.core) + implementation(libs.teogor.xenoglot.locale) + implementation(libs.teogor.xenoglot.pluralization) } ``` diff --git a/docs/bom/index.md b/docs/bom/index.md index 9ab87e2..a0829ae 100644 --- a/docs/bom/index.md +++ b/docs/bom/index.md @@ -15,20 +15,20 @@ the [BOM to library version mapping](bom-mapping.md). In the `build.gradle` dependencies section, keep the import of the BOM platform. On the library dependency import, specify the desired version. For example, here's how to declare dependencies if -you want to use a different version of Core, no matter what version is designated +you want to use a different version of Pluralization, no matter what version is designated in the BOM: ```groovy dependencies { // Import the BoM BOM - implementation platform('dev.teogor.xenoglot:bom:1.0.0-alpha01') + implementation platform('dev.teogor.xenoglot:xenoglot-bom:1.0.0-alpha02') - // Import Core library - implementation 'dev.teogor.xenoglot:core:1.0.0-alpha01' + // Import Pluralization library + implementation 'dev.teogor.xenoglot:xenoglot-pluralization:1.0.0-alpha02' // Import other BoM libraries without version numbers // .. - implementation 'dev.teogor.xenoglot:android' + implementation 'dev.teogor.xenoglot:xenoglot-atlas' } ``` @@ -62,8 +62,8 @@ Yes. You can include the BOM itself in the version catalog, and omit the other B ```toml [libraries] -teogor-xenoglot-bom = { group = "dev.teogor.xenoglot", name = "bom", version.ref = "teogor-xenoglot-bom" } -teogor-xenoglot-android = { group = "dev.teogor.xenoglot", name = "android" } +teogor-xenoglot-bom = { group = "dev.teogor.xenoglot", name = "xenoglot-bom", version.ref = "teogor-xenoglot-bom" } +teogor-xenoglot-atlas = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas" } ``` Don’t forget to import the BOM in your module’s `build.gradle`: diff --git a/docs/index.md b/docs/index.md index 3ae3adc..d94e387 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,7 @@ ### Overview [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![Maven Central](https://img.shields.io/maven-central/v/dev.teogor.xenoglot/bom.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=g%3Adev.teogor.xenoglot+a%3Abom&smo=true) +[![Maven Central](https://img.shields.io/maven-central/v/dev.teogor.xenoglot/xenoglot-bom.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=g%3Adev.teogor.xenoglot+a%3Axenoglot-bom&smo=true) [![Profile](https://source.teogor.dev/badges/teogor-github.svg)](https://github.com/teogor) [![Open-Source Directory](https://source.teogor.dev/badges/teogor-dev.svg)](https://source.teogor.dev) @@ -54,9 +54,9 @@ Xenoglot is designed to work across various platforms through Kotlin Multiplatfo **Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. -For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). -For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). -For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). ### Adding Xenoglot Dependencies Manually @@ -66,11 +66,13 @@ To use Xenoglot in your app, add the following dependencies to your app's `build ```groovy title="build.gradle" dependencies { - def teogorXenoglot = "1.0.0-alpha01" - - implementation "dev.teogor.xenoglot:android:$teogorXenoglot" - implementation "dev.teogor.xenoglot:bom:$teogorXenoglot" - implementation "dev.teogor.xenoglot:core:$teogorXenoglot" + def teogorXenoglot = "1.0.0-alpha02" + + implementation "dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot" } ``` @@ -78,11 +80,13 @@ To use Xenoglot in your app, add the following dependencies to your app's `build ```kotlin title="build.gradle.kts" dependencies { - val teogorXenoglot = "1.0.0-alpha01" - - implementation("dev.teogor.xenoglot:android:$teogorXenoglot") - implementation("dev.teogor.xenoglot:bom:$teogorXenoglot") - implementation("dev.teogor.xenoglot:core:$teogorXenoglot") + val teogorXenoglot = "1.0.0-alpha02" + + implementation("dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot") } ``` @@ -99,24 +103,28 @@ First, define the dependencies in the `libs.versions.toml` file: ```toml title="gradle/libs.versions.toml" [versions] - teogor-xenoglot = "1.0.0-alpha01" - + teogor-xenoglot = "1.0.0-alpha02" + [libraries] - teogor-xenoglot-android = { group = "dev.teogor.xenoglot", name = "android", version.ref = "teogor-xenoglot" } - teogor-xenoglot-bom = { group = "dev.teogor.xenoglot", name = "bom", version.ref = "teogor-xenoglot" } - teogor-xenoglot-core = { group = "dev.teogor.xenoglot", name = "core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas-extended = { group = "dev.teogor.xenoglot", name = "xenoglot-atlas-extended", version.ref = "teogor-xenoglot" } + teogor-xenoglot-core = { group = "dev.teogor.xenoglot", name = "xenoglot-core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-locale = { group = "dev.teogor.xenoglot", name = "xenoglot-locale", version.ref = "teogor-xenoglot" } + teogor-xenoglot-pluralization = { group = "dev.teogor.xenoglot", name = "xenoglot-pluralization", version.ref = "teogor-xenoglot" } ``` === "Module Based" ```toml title="gradle/libs.versions.toml" [versions] - teogor-xenoglot = "1.0.0-alpha01" - + teogor-xenoglot = "1.0.0-alpha02" + [libraries] - teogor-xenoglot-android = { module = "dev.teogor.xenoglot:android", version.ref = "teogor-xenoglot" } - teogor-xenoglot-bom = { module = "dev.teogor.xenoglot:bom", version.ref = "teogor-xenoglot" } - teogor-xenoglot-core = { module = "dev.teogor.xenoglot:core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas = { module = "dev.teogor.xenoglot:xenoglot-atlas", version.ref = "teogor-xenoglot" } + teogor-xenoglot-atlas-extended = { module = "dev.teogor.xenoglot:xenoglot-atlas-extended", version.ref = "teogor-xenoglot" } + teogor-xenoglot-core = { module = "dev.teogor.xenoglot:xenoglot-core", version.ref = "teogor-xenoglot" } + teogor-xenoglot-locale = { module = "dev.teogor.xenoglot:xenoglot-locale", version.ref = "teogor-xenoglot" } + teogor-xenoglot-pluralization = { module = "dev.teogor.xenoglot:xenoglot-pluralization", version.ref = "teogor-xenoglot" } ``` Then, add these dependencies in your app's `build.gradle` file: @@ -125,9 +133,11 @@ Then, add these dependencies in your app's `build.gradle` file: ```groovy title="build.gradle" dependencies { - implementation libs.teogor.xenoglot.android - implementation libs.teogor.xenoglot.bom + implementation libs.teogor.xenoglot.atlas + implementation libs.teogor.xenoglot.atlas.extended implementation libs.teogor.xenoglot.core + implementation libs.teogor.xenoglot.locale + implementation libs.teogor.xenoglot.pluralization } ``` @@ -135,9 +145,11 @@ Then, add these dependencies in your app's `build.gradle` file: ```kotlin title="build.gradle.kts" dependencies { - implementation(libs.teogor.xenoglot.android) - implementation(libs.teogor.xenoglot.bom) + implementation(libs.teogor.xenoglot.atlas) + implementation(libs.teogor.xenoglot.atlas.extended) implementation(libs.teogor.xenoglot.core) + implementation(libs.teogor.xenoglot.locale) + implementation(libs.teogor.xenoglot.pluralization) } ``` diff --git a/docs/releases/index.md b/docs/releases/index.md index c295254..1d60524 100644 --- a/docs/releases/index.md +++ b/docs/releases/index.md @@ -8,17 +8,19 @@ Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samp API Reference [`dev.teogor.xenoglot:xenoglot-*`](../html/) -[`dev.teogor.xenoglot:android`](../html/android) -[`dev.teogor.xenoglot:bom`](../html/bom) -[`dev.teogor.xenoglot:core`](../html/core) +[`dev.teogor.xenoglot:xenoglot-atlas`](../html/xenoglot-atlas) +[`dev.teogor.xenoglot:xenoglot-atlas-extended`](../html/xenoglot-atlas-extended) +[`dev.teogor.xenoglot:xenoglot-core`](../html/xenoglot-core) +[`dev.teogor.xenoglot:xenoglot-locale`](../html/xenoglot-locale) +[`dev.teogor.xenoglot:xenoglot-pluralization`](../html/xenoglot-pluralization) [//]: # (REGION-API-REFERENCE) [//]: # (REGION-RELEASE-TABLE) -| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | -|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| -| November 20, 2023 | - | - | - | 1.0.0-alpha01 | +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| August 28, 2024 | - | - | - | 1.0.0-alpha02 | [//]: # (REGION-RELEASE-TABLE) @@ -32,11 +34,13 @@ To use Xenoglot in your app, add the following dependencies to your app's `build ```groovy title="build.gradle" dependencies { - def teogorXenoglot = "1.0.0-alpha01" + def teogorXenoglot = "1.0.0-alpha02" - implementation "dev.teogor.xenoglot:android:$teogorXenoglot" - implementation "dev.teogor.xenoglot:bom:$teogorXenoglot" - implementation "dev.teogor.xenoglot:core:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot" + implementation "dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot" } ``` @@ -44,11 +48,13 @@ To use Xenoglot in your app, add the following dependencies to your app's `build ```kotlin title="build.gradle.kts" dependencies { - val teogorXenoglot = "1.0.0-alpha01" + val teogorXenoglot = "1.0.0-alpha02" - implementation("dev.teogor.xenoglot:android:$teogorXenoglot") - implementation("dev.teogor.xenoglot:bom:$teogorXenoglot") - implementation("dev.teogor.xenoglot:core:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-atlas:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-atlas-extended:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-core:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-locale:$teogorXenoglot") + implementation("dev.teogor.xenoglot:xenoglot-pluralization:$teogorXenoglot") } ``` @@ -72,6 +78,27 @@ for this library before you create a new one. ### Version 1.0.0 +#### Version 1.0.0-alpha02 + +August 28, 2024 + +[`dev.teogor.xenoglot:xenoglot-*:1.0.0-alpha02`](https://gitlab.com/teogor/xenoglot/releases/1.0.0-alpha02) is released. [Version 1.0.0-alpha02 contains these commits](https://gitlab.com/teogor/xenoglot/compare/1.0.0-alpha01...1.0.0-alpha02) + +**Enhancement** + +* Enhance Pluralization Support: Add PluralForms and Rule Implementations ([#7](https://github.com/teogor/xenoglot/issues/7)) by [@teogor](https://github.com/teogor) +* Migrate to Kotlin Multiplatform: Add support for JVM, JS, iOS, macOS, Linux, tvOS, and watchOS ([#6](https://github.com/teogor/xenoglot/issues/6)) by [@teogor](https://github.com/teogor) + +**Documentation** + +* Enhance Pluralization Support: Add PluralForms and Rule Implementations ([#7](https://github.com/teogor/xenoglot/issues/7)) by [@teogor](https://github.com/teogor) +* Migrate to Kotlin Multiplatform: Add support for JVM, JS, iOS, macOS, Linux, tvOS, and watchOS ([#6](https://github.com/teogor/xenoglot/issues/6)) by [@teogor](https://github.com/teogor) +* Introduce MkDocs for documentation generation ([#5](https://github.com/teogor/xenoglot/issues/5)) by [@teogor](https://github.com/teogor) + +**Others** + +* Enable Type-Safe Project Accessors for Project References ([#8](https://github.com/teogor/xenoglot/issues/8)) by [@teogor](https://github.com/teogor) + #### Version 1.0.0-alpha01 November 20, 2023 diff --git a/mkdocs.yml b/mkdocs.yml index f75ad0e..2d8207c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,12 +16,15 @@ copyright: Copyright © 2023 Teodor Grigor (Teogor) # Page tree nav: - - Home: index.md + - Home: + - Overview: index.md + - Pluralization Guide: pluralization-guide.md - Releases: - releases.md - Implementation: releases/implementation.md - Changelog: - 1.0.0-alpha01: releases/changelog/1.0.0-alpha01.md + - 1.0.0-alpha02: releases/changelog/1.0.0-alpha02.md - Reference: reference.md - Sponsor: sponsor.md - Security: security.md diff --git a/winds-changelog.yml b/winds-changelog.yml index ff76eff..f4e63c6 100644 --- a/winds-changelog.yml +++ b/winds-changelog.yml @@ -1,3 +1,15 @@ 1.0.0-alpha01: info: November 20, 2023 content: 🎊 \*\*Initial Release\*\* 🎊 +1.0.0-alpha02: + info: August 28, 2024 + sections: + - Enhancement: + - "Enhance Pluralization Support: Add PluralForms and Rule Implementations (#7) by @teogor" + - "Migrate to Kotlin Multiplatform: Add support for JVM, JS, iOS, macOS, Linux, tvOS, and watchOS (#6) by @teogor" + - Documentation: + - "Enhance Pluralization Support: Add PluralForms and Rule Implementations (#7) by @teogor" + - "Migrate to Kotlin Multiplatform: Add support for JVM, JS, iOS, macOS, Linux, tvOS, and watchOS (#6) by @teogor" + - "Introduce MkDocs for documentation generation (#5) by @teogor" + - Others: + - "Enable Type-Safe Project Accessors for Project References (#8) by @teogor" diff --git a/xenoglot-bom/build.gradle.kts b/xenoglot-bom/build.gradle.kts index 0cec314..d64ef9b 100644 --- a/xenoglot-bom/build.gradle.kts +++ b/xenoglot-bom/build.gradle.kts @@ -14,9 +14,6 @@ * limitations under the License. */ -import dev.teogor.winds.api.ArtifactIdFormat -import dev.teogor.winds.api.NameFormat - plugins { alias(libs.plugins.teogor.winds) } @@ -26,8 +23,6 @@ winds { isBom = true artifactDescriptor { name = "BoM" - nameFormat = NameFormat.FULL - artifactIdFormat = ArtifactIdFormat.NAME_ONLY } } }