How can PHP configuration files be utilized to manage multilingual content in a dynamic and secure manner?

To manage multilingual content in a dynamic and secure manner using PHP configuration files, we can create separate language files for each language supported by the website. These files can contain key-value pairs where the key represents a unique identifier for the content and the value represents the translated text. By dynamically loading the appropriate language file based on the user's language preference, we can display the content in the desired language while ensuring security by preventing direct access to the language files.

// Function to load language file based on user's language preference
function loadLanguageFile($language) {
    $languageFile = "languages/{$language}.php";

    if (file_exists($languageFile)) {
        return include $languageFile;
    } else {
        return include "languages/english.php"; // Default to English if language file not found
    }
}

// Example of language file structure (e.g., languages/english.php)
return [
    'welcome_message' => 'Welcome to our website!',
    'about_us' => 'About Us',
    'contact_us' => 'Contact Us',
    // Add more key-value pairs for other content
];

// Usage example
$language = $_SESSION['language'] ?? 'english'; // Get user's language preference from session or default to English
$translations = loadLanguageFile($language);

echo $translations['welcome_message']; // Output: Welcome to our website!