What are the best practices for handling language translations in PHP projects to ensure user-friendly editing and maintenance?

When handling language translations in PHP projects, it is best to store translations in separate language files to ensure easy editing and maintenance. Using a key-value pair system where the key represents the original text and the value represents the translated text can simplify the translation process. Additionally, implementing a function to retrieve the translated text based on the key can make the code more readable and maintainable.

// Function to retrieve translated text based on key
function translate($key, $language = 'en') {
    $translations = include 'translations/' . $language . '.php';
    
    return isset($translations[$key]) ? $translations[$key] : $key;
}

// Example of language file structure
// translations/en.php
return [
    'hello' => 'Hello',
    'goodbye' => 'Goodbye',
];

// Example of retrieving translated text
echo translate('hello'); // Output: Hello