Download the PHP package phpdot/i18n without Composer
On this page you can find all versions of the php package phpdot/i18n. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package i18n
Short Description Internationalization with ICU MessageFormat, pluggable loaders, PSR-16 caching.
License MIT
Informations about the package i18n
phpdot/i18n
Internationalization built on ICU MessageFormat (via ext-intl): one syntax for interpolation,
pluralization, and selection. Translations load through pluggable loaders (PHP arrays, JSON, or a chain),
compiled maps are cached through any PSR-16 cache, and the translator implements the
PHPdot\Contracts\I18n\MessageTranslatorInterface so the rest of the ecosystem depends only on the
contract.
Table of Contents
- Requirements
- Installation
- Usage
- Architecture
- Testing
- License
Requirements
| Requirement | Constraint |
|---|---|
| PHP | >= 8.5 |
ext-intl |
* |
phpdot/contracts |
^0.4 |
psr/simple-cache |
^3.0 |
phpdot/container is a dev-only suggestion — the #[Config('i18n')] / binding attributes are inert
until a phpdot application reflects them.
Installation
Usage
Translation files
Keys are prefixed by filename, so lang/en/messages.php gives messages.welcome. Nesting flattens
onto that with dots, so group however reads best — the two save keys below are identical:
Every configured path is scanned, in order, and a later one wins a duplicate key — which is how an
app overrides a catalog it ships with. JsonLoader reads the same shape from .json files;
ChainLoader layers loaders of different kinds (say PHP files plus database overrides). Every
template is ICU MessageFormat — interpolation, plural, and select all share one syntax — and
ICUValidator can check a template before it ships.
Architecture
Translator resolves a key to its ICU template through the configured LoaderInterface, formats it
with the current locale using ext-intl's MessageFormatter, and caches the compiled per-language map in
a PSR-16 cache. Unknown keys are recorded so missing translations can be audited.
Testing
License
MIT.
This repository is a read-only mirror, generated by CI from phpdot/monorepo. Pull requests and issues belong in the monorepo.
All versions of i18n with dependencies
ext-intl Version *
phpdot/contracts Version ^0.4
psr/simple-cache Version ^3.0