Globalization

Introduction

If OpenHarmony devices and applications need to be used globally, they must meet the requirements of users in different regions on languages and cultures. The globalization subsystem provides the multi-language and multi-cultural capabilities for global use, including:

  • Resource management

    The subsystem loads, parses, and initializes system and application resources based on device types and system configurations, and provides APIs for obtaining resources such as character strings and images.

  • Internationalization (i18n)

    The subsystem provides the bottom-layer resource backtracking capabilities, with a wide array of i18n APIs for implementing functions such as date/time formatting, number formatting, and singular-plural formatting.

Architecture

Figure 1 Architecture of the globalization subsystem

  • The resource kit provides the capability of loading built-in resource files for applications and other subsystems. Currently, this capability is not yet open to applications and is used only for other subsystems to obtain framework resources of applications.
  • The i18n kit provides i18n APIs for applications and other subsystems to meet the requirements of users in different countries or regions on languages and cultures. Only the date/time, number, and singular-plural formatting capabilities are supported currently.
  • The i18n.dat file provides cultural data specific to different languages, which ranges from date/time to number, for the i18n framework.

Directory Structure

/base/global/
├── i18n_lite                  # Code repository for the i18n framework
│   ├──  frameworks            # Core code of the i18n framework
│   │   ├── i18n               # i18n module
│   │   │   ├── include        # Header files
│   │   │   ├── src            # Implementation code
│   │   │   └── test           # Test cases
│   ├──  interfaces            # APIs of the i18n framework 
│   │   ├── kits               # Application APIs
│   │   │   ├── i18n           # C/C++ i18n APIs
│   │   │   └── js             # C/C++ support for JavaScript APIs
├── resmgr_lite                # Code repository for the resource management framework
│   ├──  frameworks            # Core code of the resource management framework
│   │   ├── resmgr             # Core code for resource parsing
│   │   │   ├── include        # Header files
│   │   │   └── src            # Implementation code
│   ├──  interfaces            # APIs of the resource management framework 
│   │   └── innerkits          # APIs of the resource management framework for other subsystems
├── cust_lite                  # Code repository for the customization framework
│   ├── frameworks             # Core code of the customization framework
│   │   ├── cust_lite          # Customization framework
│   │   │   ├── src            # Implementation code
│   │   │   └── test           # Test code
│   ├── interfaces             # APIs of the customization framework
│   │   └── innerkits          # APIs of the customization framework for other subsystems

Constraints

None

Repositories Involved

Globalization subsystem

global_resmgr_lite

global_i18n_lite

global_cust_lite