In PHP, what are some best practices for implementing language translation in an object-oriented manner, especially for beginners transitioning from other programming languages like Java?

When implementing language translation in an object-oriented manner in PHP, it is recommended to create a Translation class that handles the translation logic. This class should have methods for loading language files, retrieving translated strings, and switching between languages. By encapsulating the translation functionality in a class, it promotes code reusability and maintainability.

class Translation {
    private $translations = [];
    
    public function loadTranslations($lang) {
        $this->translations = include 'translations/' . $lang . '.php';
    }
    
    public function translate($key) {
        return isset($this->translations[$key]) ? $this->translations[$key] : $key;
    }
}

// Example usage
$translator = new Translation();
$translator->loadTranslations('en');
echo $translator->translate('hello'); // Output: Hello