yohns / lang
Simple and easy language class for php to be able to easily create translations for your text.
Installs: 15
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/yohns/lang
Requires
- php: ^8.0
- yohns/config: ^1.2
Requires (Dev)
- clean/phpdoc-md: ^0.19.3
README
Simple and easy PHP translation library with auto-generation support, dot notation, and seamless integration with yohns/config.
Installation
composer require yohns/lang
Quick Start
use Yohns\Core\Config; use Yohns\Lang\Text; // Initialize Config for your application new Config(__DIR__ . '/lib/Config'); // Initialize Text with language directory $langDir = __DIR__ . '/lib/Lang'; $text = new Text($langDir, 'en'); // 'en' for English // Basic usage echo Text::L('welcome', 'Welcome to our site'); // Output: "Welcome to our site" (or translation if found) // With placeholders echo Text::L('hello_user', 'Hello, [name]!', ['[name]' => 'John']); // Output: "Hello, John!" // Dot notation for nested translations echo Text::L('pages.about', 'About Us'); // Output: "About Us" (or translation if found)
Features
- Auto-generation: Missing translations are automatically added to the default language file
- Dot notation: Organize translations hierarchically (e.g.,
pages.about,messages.success.saved) - Placeholder support: Replace
[placeholders]with dynamic values - Fallback system: Falls back to default language, then to provided default text
- Config integration: Uses
yohns/configfor file management and configuration - Multiple languages: Easy switching between languages
Overview
Class Text
This class is responsible for handling language translations. It loads language files from a specified directory using the Config class and provides functionality to retrieve phrases in the specified language. It supports dynamic addition of phrases to the default language file if they do not already exist, and supports dot notation for nested keys.
Methods
| Name | Description |
|---|---|
| L | Retrieves the translated phrase for the given phrase key. |
| __construct | Text constructor. |
| getAll | Retrieves all loaded texts for the current language. |
| reload | Reloads the language files from the language directory. |
| set | Sets a new phrase or updates an existing one in the current language. |
Text::L
Description
public static L (string $key, string $default, array $replacements)
Retrieves the translated phrase for the given phrase key.
Supports dot notation for nested keys (e.g., 'pages.about'). If the phrase does not exist in the loaded language text, it adds the default text to the default language file.
Parameters
(string) $key: The key of the phrase to retrieve (supports dot notation).(string) $default: The default text to use and store if the key is not found.(array) $replacements: Optional replacements for placeholders in the phrase.
Return Values
string
The translated phrase with optional replacements.
Text::__construct
Description
public __construct (string $dir, string $lingo)
Text constructor.
Parameters
(string) $dir: The directory where translations are located.(string) $lingo: The language identifier, default is 'en'.
Return Values
void
Throws Exceptions
\Exception
if the specified language directory is not readable or the specified language file does not exist.
Text::getAll
Description
public static getAll (void)
Retrieves all loaded texts for the current language.
Parameters
This function has no parameters.
Return Values
mixed
An array containing all loaded texts or null if not loaded.
Text::reload
Description
public static reload (void)
Reloads the language files from the language directory.
Parameters
This function has no parameters.
Return Values
void
Text::set
Description
public static set (string $key, mixed $value)
Sets a new phrase or updates an existing one in the current language.
This is useful for runtime customization of language strings.
Parameters
(string) $key: The key of the text to set.(mixed) $value: The value to associate with the key.
Return Values
void