W3cubDocs

/CakePHP 4.4

Class MessagesFileLoader

A generic translations package factory that will load translations files based on the file extension and the package name.

This class is a callable, so it can be used as a package loader argument.

Namespace: Cake\I18n

Property Summary

  • $_extension protected
    string

    The extension name.

  • $_locale protected
    string

    The locale to load for the given package.

  • $_name protected
    string

    The package (domain) name.

Method Summary

  • __construct() public

    Creates a translation file loader. The file to be loaded corresponds to the following rules:

  • __invoke() public

    Loads the translation file and parses it. Returns an instance of a translations package containing the messages loaded from the file.

  • translationsFolders() public

    Returns the folders where the file should be looked for according to the locale and package name.

Method Detail

__construct() public

__construct(string $name, string $locale, string $extension = 'po')

Creates a translation file loader. The file to be loaded corresponds to the following rules:

  • The locale is a folder under the Locale directory, a fallback will be used if the folder is not found.
  • The $name corresponds to the file name to load
  • If there is a loaded plugin with the underscored version of $name, the translation file will be loaded from such plugin.

Examples:

Load and parse resources/locales/fr/validation.po

$loader = new MessagesFileLoader('validation', 'fr_FR', 'po');
$package = $loader();

Load and parse resources/locales/fr_FR/validation.mo

$loader = new MessagesFileLoader('validation', 'fr_FR', 'mo');
$package = $loader();

Load the plugins/MyPlugin/resources/locales/fr/my_plugin.po file:

$loader = new MessagesFileLoader('my_plugin', 'fr_FR', 'mo');
$package = $loader();

Parameters

string $name

The name (domain) of the translations package.

string $locale

The locale to load, this will be mapped to a folder in the system.

string $extension optional

The file extension to use. This will also be mapped to a messages parser class.

__invoke() public

__invoke(): Cake\I18n\Package|false

Loads the translation file and parses it. Returns an instance of a translations package containing the messages loaded from the file.

Returns

Cake\I18n\Package|false

Throws

RuntimeException
if no file parser class could be found for the specified file extension.

translationsFolders() public

translationsFolders(): array<string>

Returns the folders where the file should be looked for according to the locale and package name.

Returns

array<string>

Property Detail

$_extension protected

The extension name.

Type

string

$_locale protected

The locale to load for the given package.

Type

string

$_name protected

The package (domain) name.

Type

string

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.I18n.MessagesFileLoader.html