yohns/lang

Simple and easy language class for php to be able to easily create translations for your text.

Maintainers

Details

github.com/Yohn/Lang

Source

Issues

Installs: 15

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/yohns/lang

0.2.0 2025-11-16 06:29 UTC

This package is auto-updated.

Last update: 2025-11-19 12:35:13 UTC


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/config for 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