An open API service indexing awesome lists of open source software.

https://github.com/microsphere-projects/microsphere-i18n

The microsphere projects for internationalisation
https://github.com/microsphere-projects/microsphere-i18n

cloud-native devops i18n internationalisation java microservices microsphere spring

Last synced: about 21 hours ago
JSON representation

The microsphere projects for internationalisation

Awesome Lists containing this project

README

          

# Microsphere Internationalisation

> Microsphere Projects for Internationalisation

[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/microsphere-projects/microsphere-i18n)
[![Maven Build](https://github.com/microsphere-projects/microsphere-i18n/actions/workflows/maven-build.yml/badge.svg)](https://github.com/microsphere-projects/microsphere-i18n/actions/workflows/maven-build.yml)
[![Codecov](https://codecov.io/gh/microsphere-projects/microsphere-i18n/branch/main/graph/badge.svg)](https://app.codecov.io/gh/microsphere-projects/microsphere-i18n)
![Maven](https://img.shields.io/maven-central/v/io.github.microsphere-projects/microsphere-i18n.svg)
![License](https://img.shields.io/github/license/microsphere-projects/microsphere-i18n.svg)

The Microsphere Internationalisation project is a comprehensive internationalization (i18n) framework designed for Java
applications, with particular emphasis on Spring-based ecosystems. It provides a modular, extensible architecture for
managing localized messages across different deployment scenarios, from standalone applications to distributed
cloud-native systems.

## Purpose and Scope

The Microsphere Internationalisation project extends Spring Cloud Internationalisation with enhanced features including:

- Message Source Hierarchy: The system provides a flexible hierarchy of message sources that can load localized content
from various sources including properties files, Spring's `Environment`, and external configuration systems. The
`ServiceMessageSource` interface serves as the primary abstraction, with specialized implementations for different
resource types.
- Composite and Delegation Patterns: The `CompositeServiceMessageSource` allows multiple message sources to be combined
with configurable priority ordering. The `DelegatingServiceMessageSource` provides Spring Framework integration while
maintaining the core abstractions.
- Dynamic Configuration Support: Through Spring Cloud integration, the system supports runtime updates to message
sources without requiring application restarts. This capability is essential for cloud-native applications where
configuration can change dynamically.
- Spring Ecosystem Integration: Progressive integration layers provide seamless compatibility with Spring Framework,
Spring Boot auto-configuration, and Spring Cloud distributed configuration management. The system follows Spring
conventions and lifecycle patterns.

## Modules

| **Module** | **Purpose** |
|------------------------------------------|-------------------------------------------------------------------------------------|
| **microsphere-i18n-parent** | Defines the parent POM with dependency management and Spring Cloud version profiles |
| **microsphere-i18n-dependencies** | Centralizes dependency management for all project modules |
| **microsphere-i18n-core** | Provides fundamental i18n abstractions and message source implementations |
| **microsphere-i18n-openfeign** | Message resolution for OpenFeign clients |
| **microsphere-i18n-spring** | Integrates with Spring Framework's `MessageSource` and `Environment` |
| **microsphere-i18n-spring-boot** | Auto-configuration and actuator endpoints |
| **microsphere-i18n-spring-cloud** | Dynamic configuration updates via cloud config |
| **microsphere-i18n-spring-cloud-server** | Centralized i18n management server |

## Getting Started

The easiest way to get started is by adding the Microsphere Internationalisation BOM (Bill of Materials) to your
project's pom.xml:

```xml


...


io.github.microsphere-projects
microsphere-i18n-dependencies
${microsphere-i18n.version}
pom
import

...

```

`${microsphere-spring-boot.version}` has two branches:

| **Branches** | **Purpose** | **Latest Version** |
|--------------|--------------------------------------------------|--------------------|
| **0.2.x** | Compatible with Spring Cloud 2022.0.x - 2025.0.x | 0.2.0 |
| **0.1.x** | Compatible with Spring Cloud Hoxton - 2021.0.x | 0.1.0 |

Then add the specific modules you need:

### Spring Scenarios

```xml



io.github.microsphere-projects
microsphere-i18n-spring

```

### Spring Boot Scenarios

```xml



io.github.microsphere-projects
microsphere-i18n-spring-boot

```

### Spring Cloud Scenarios

```xml



io.github.microsphere-projects
microsphere-i18n-spring-cloud

```

## Building from Source

You don't need to build from source unless you want to try out the latest code or contribute to the project.

To build the project, follow these steps:

1. Clone the repository:

```bash
git clone https://github.com/microsphere-projects/microsphere-i18n.git
```

2. Build the source:

- Linux/MacOS:

```bash
./mvnw package
```

- Windows:

```powershell
mvnw.cmd package
```

## Contributing

We welcome your contributions! Please read [Code of Conduct](./CODE_OF_CONDUCT.md) before submitting a pull request.

## Reporting Issues

* Before you log a bug, please search
the [issues](https://github.com/microsphere-projects/microsphere-i18n/issues)
to see if someone has already reported the problem.
* If the issue doesn't already
exist, [create a new issue](https://github.com/microsphere-projects/microsphere-i18n/issues/new).
* Please provide as much information as possible with the issue report.

## Documentation

### User Guide

[DeepWiki Host](https://deepwiki.com/microsphere-projects/microsphere-i18n)

[ZRead Host](https://zread.ai/microsphere-projects/microsphere-i18n)

### Wiki

[Github Host](https://github.com/microsphere-projects/microsphere-i18n/wiki)

### JavaDoc

- [microsphere-i18n-core](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-core)
- [microsphere-i18n-openfeign](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-openfeign)
- [microsphere-i18n-spring](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-spring)
- [microsphere-i18n-spring-boot](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-spring-boot)
- [microsphere-i18n-spring-cloud](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-spring-cloud)
- [microsphere-i18n-spring-cloud-server](https://javadoc.io/doc/io.github.microsphere-projects/microsphere-i18n-spring-cloud-server)

## License

The Microsphere Spring is released under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).