What are best practices for handling language preferences in a PHP website based on the Accept-Language header from the browser?

When a user visits a website, their browser sends an Accept-Language header indicating their preferred language. To handle language preferences in a PHP website, you can parse this header and serve content in the user's preferred language if it is available. One common approach is to maintain language files for different languages and dynamically load the appropriate one based on the Accept-Language header.

// Parse the Accept-Language header to determine the user's preferred language
$acceptedLanguages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$preferredLanguage = substr($acceptedLanguages, 0, 2); // Extract the first language code

// Define an array of supported languages and corresponding language files
$supportedLanguages = ['en', 'fr', 'es']; // Add more languages as needed
$languageFiles = [
    'en' => 'english.php',
    'fr' => 'french.php',
    'es' => 'spanish.php'
];

// Check if the preferred language is supported, otherwise default to English
if (in_array($preferredLanguage, $supportedLanguages)) {
    require_once $languageFiles[$preferredLanguage];
} else {
    require_once $languageFiles['en']; // Default to English
}