The TranslationFile class represents a single Laravel translation file. It provides methods for loading, saving, comparing, and manipulating translation data in both PHP array and JSON formats.Namespace: Mateffy\AiTranslations
namespace Mateffy\AiTranslations;use Illuminate\Support\Arr;use Illuminate\Support\Facades\File;class TranslationFile{ public function __construct( public readonly string $language, public readonly string $domain, public array $translations, protected readonly string $basePath, ) {}}
use Mateffy\AiTranslations\TranslationFile;$nested = [ 'validation' => [ 'required' => 'The :attribute field is required.', 'email' => 'The :attribute must be a valid email.' ]];$flattened = TranslationFile::flattenWithValues($nested);// Result: [// 'validation.required' => 'The :attribute field is required.',// 'validation.email' => 'The :attribute must be a valid email.'// ]
use Mateffy\AiTranslations\TranslationFile;$file = TranslationFile::load('en', 'auth');$json = $file->toJson();// Output:// {// "auth.failed": "These credentials do not match our records.",// "auth.throttle": "Too many login attempts."// }
use Mateffy\AiTranslations\TranslationFile;$file = TranslationFile::load('en', 'validation');$php = $file->toPhpArray();// Output:// <?php//// return [// 'required' => "The :attribute field is required.",// 'email' => "The :attribute must be a valid email address.",// ];
use Mateffy\AiTranslations\TranslationFile;$file = TranslationFile::load('en', 'validation');$value = $file->get('validation.required');// "The :attribute field is required."$missing = $file->get('validation.nonexistent');// null
use Mateffy\AiTranslations\TranslationFile;$file = TranslationFile::load('es', 'validation');// Set a single value$file->set('validation.required', 'El campo :attribute es obligatorio.');// Set multiple nested values$file->set('auth', [ 'failed' => 'Estas credenciales no coinciden.', 'throttle' => 'Demasiados intentos.']);
use Mateffy\AiTranslations\TranslationFile;// Load existing translation file$file = TranslationFile::load('es', 'validation');// Get a specific translation$required = $file->get('validation.required');// Add new translations$file->set('validation.custom_rule', 'Este campo no es válido.');// Save changes$file->write();