1. Go to this page and download the library: Download rivalex/lingua library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rivalex / lingua example snippets
return [
// -------------------------------------------------------------------------
// LOCALE DEFAULTS
// -------------------------------------------------------------------------
// Directory where local language files are stored
'lang_dir' => lang_path(),
'default_locale' => config('app.locale', 'en'),
'fallback_locale' => config('app.fallback_locale', 'en'),
'session_variable' => 'locale',
// -------------------------------------------------------------------------
// ROUTING
// -------------------------------------------------------------------------
// Middleware applied to Lingua's management routes (auth e' => 'sidebar', // 'sidebar' | 'modal' | 'dropdown' | 'headless'
'show_flags' => true,
],
// Rich-text editor toolbar options (overridable from the Settings UI)
'editor' => [
'headings' => false,
'bold' => true,
'italic' => true,
'underline' => true,
'strikethrough' => false,
'subscript' => true,
'superscript' => true,
'blockquote' => false,
'code-line' => false,
'code-block' => false,
'bullet' => true,
'ordered' => true,
'clear' => true,
'code-mode' => false,
],
// Layout used when Lingua pages render full-page via lingua routes.
// null = use the Livewire default (livewire.layout config).
'layout' => null,
// Set to true when the host app has Livewire SPA navigation enabled
// (adds wire:navigate to internal locale/page redirects).
'navigate' => false,
// Configurable navigation links from the Lingua UI to package pages.
'links' => [
'translations' => [
'enabled' => true,
'route' => 'lingua.translations',
],
],
// Shared navigation menu (shown on all Lingua admin pages).
'nav' => [
'enabled' => true,
],
// UI presentation tweaks.
// sticky_top: CSS top offset for the sticky filter bar in the Translations page.
// Use when the host app has a fixed header. Accepts int (→ rem) or a CSS string.
'ui' => [
'sticky_top' => 0,
],
// Lingua's own CSS follows a class-based dark variant (&:where(.dark, .dark *)),
// so it normally activates via the host app's <html class="dark"> ancestor —
// same convention as Tailwind's default class strategy. Set 'force' to true to
// always render Lingua's dark theme regardless of the host app / OS color scheme
// (e.g. embedding in a host with no dark-mode toggle, or local dev on a light
// system). Overridable live from the Settings UI (Appearance card).
'dark_mode' => [
'force' => env('LINGUA_FORCE_DARK_MODE', false),
],
// -------------------------------------------------------------------------
// STORAGE / LOADERS
// -------------------------------------------------------------------------
'storage' => [
'driver' => env('LINGUA_STORAGE_DRIVER', 'database'), // 'database' | 'file'
],
'translation_loaders' => [\Rivalex\Lingua\Database\Db::class],
'model' => \Rivalex\Lingua\Models\Translation::class,
'translation_manager' => \Rivalex\Lingua\TranslationManager\LinguaManager::class,
// Base path for bundled translation dataset (leave null for package default)
'base_translations_path' => null,
'base_notifications_path' => null, // managed internally
// Cache configuration: translations cached forever per (locale, group) pair.
'cache' => [
'store' => env('LINGUA_CACHE_STORE', null), // null = app default driver
'prefix' => env('LINGUA_CACHE_PREFIX', 'lingua.trans'),
],
// -------------------------------------------------------------------------
// LINGUA PRO
// -------------------------------------------------------------------------
// Set to true when Lingua Pro is installed to suppress the upgrade nudge in the admin UI.
'suppress_pro_nudge' => env('LINGUA_SUPPRESS_PRO_NUDGE', false),
'pro_upgrade_url' => env('LINGUA_PRO_UPGRADE_URL', 'https://lingua.rivalex.dev'),
// -------------------------------------------------------------------------
// EXTENSIONS
// -------------------------------------------------------------------------
'extensions' => [
'enabled' => env('LINGUA_EXTENSIONS_ENABLED', true),
],
];
use Rivalex\Lingua\Facades\Lingua;
// Current application locale (mirrors app()->getLocale())
Lingua::getLocale(); // 'en'
// Locale marked as default in the database
Lingua::getDefaultLocale(); // 'en'
// English display name for a locale
Lingua::getLocaleName(); // 'English' — uses current locale
Lingua::getLocaleName('fr'); // 'French'
// Native name
Lingua::getLocaleNative(); // 'English'
Lingua::getLocaleNative('ar'); // 'العربية'
// Text direction
Lingua::getDirection(); // 'ltr'
Lingua::getDirection('ar'); // 'rtl'
// Full locale registry metadata (code, name, native, direction, regional, type)
$info = Lingua::info('fr'); // LocaleInfo|null
// All known locale codes
Lingua::available(); // ['en', 'fr', 'de', ...]
// Installed locale codes
Lingua::installed(); // ['en', 'fr']
// Available but not yet installed
Lingua::notInstalled(); // ['de', 'es', ...]
// Check a specific locale
Lingua::isInstalled('fr'); // true / false
Lingua::isAvailable('de'); // true if in registry
Lingua::isAvailable('xx'); // false if unknown locale code
Lingua::hasLocale('en-US'); // true if found by code or regional match
// Check whether a locale is the default
Lingua::isDefaultLocale(); // true — uses current app locale
Lingua::isDefaultLocale('fr'); // false
// Change the default locale (persisted in the database)
Lingua::setDefaultLocale('fr');
// All installed languages (Eloquent Collection)
Lingua::languages();
// All languages with completion statistics
// Each model fault and fallback language models
Lingua::getDefault(); // Language|null
Lingua::getFallback(); // Language|null
// Stats for a specific locale (or current locale if omitted)
Lingua::getLocaleStats('fr');
// [
// 'total' => 1240,
// 'translated' => 980,
// 'missing' => 260,
// 'percentage' => 79.03,
// ]
// All locale variants for a key
Lingua::getTranslations('welcome');
// ['en' => 'Welcome', 'fr' => 'Bienvenue', 'de' => 'Willkommen']
// Single locale value (empty string if missing)
Lingua::getTranslation('welcome'); // uses current locale
Lingua::getTranslation('welcome', 'fr'); // 'Bienvenue'
// All translations for a group, optionally filtered to a locale
Lingua::getTranslationByGroup('validation');
Lingua::getTranslationByGroup('validation', 'fr');
// Raw Eloquent collection
Lingua::translations();
// Set a translation value (creates or updates; uses current locale if omitted)
Lingua::setTranslation('welcome', 'Bienvenue', 'fr');
Lingua::setTranslation('welcome', 'Welcome'); // current locale
// Remove a locale's value from a translation key
Lingua::forgetTranslation('welcome', 'fr');
Lingua::forgetTranslation('welcome'); // current locale
// All vendor translations for a package and locale
Lingua::getVendorTranslations('my-package', 'fr');
// Set a vendor translation
Lingua::setVendorTranslation('my-package', 'messages', 'key', 'value', 'fr');
// Install a language: creates DB record, seeds bundled translations
// (DB-native — does not use laravel-lang)
Lingua::addLanguage('fr');
// Remove a language: deletes record and cleans up storage
Lingua::removeLanguage('fr');
// Install bundled translations for the default language (file mode)
Lingua::installDefaultLanguage();
// Import all local lang/ files into the database
Lingua::syncToDatabase();
// Export all database translations to local lang/ files
Lingua::syncToLocal();
// Re-sync translations for all installed locales
Lingua::updateLanguages();