/php-locale

Locale and language feature; ini-file based and cached localized texts

Primary LanguagePHPMIT LicenseMIT

Locale

Localization, primarily of texts

Texts are referred by (free format) IDs.
.ini-file based.

Superior to gettext (.po) in these ways:

  • texts (translations) don't get orphaned when you change the source text
  • editors/translators work in standard plaintext editors
  • texts can be organised in groups and sub groups.
  • no need for complex parsers and im-/export features, databases etc.
  • miniscule resource footprint

.ini-file example

[some-group]
meeting = reunión
some-sub-group[start] = ¡Hola!
some-sub-group[continue] = ¿Cómo estás?
some-sub-group[end] = Hasta luego...

Dependency injection container ID: locale

Recommendation: access (and thus instantiate) locale via DI container ID 'locale'.
See SimpleComplex Utils Dependency.

CLI commands

# List all locale-text commands and their help.
php cli.php locale-text -h
# One command's help.
php cli.php locale-text-xxx -h

# Display/get value of a locale-text item.
php cli.php locale-text-get language section key

# Set a locale-text item.
php cli.php locale-text-set language section key value

# Delete a locale-text item.
php cli.php locale-text-delete language section key

# Refresh a locale-text store from .locale-text.[language].ini file sources.
php cli.php locale-text-refresh language

# Export a locale-text store as JSON to a file.
php cli.php locale-text-export language target-path-and-file

Installation

Copy the 'global' config .ini file (see SimpleComplex Config)
[locale package dir]/config-ini/locale.global.ini
and place it in config's 'base' or 'override' path.

Follow the instructions within in that file,
and modify it to suit the current system's structure and features.

Requirements

Suggestions