anslations.
        api_key (Optional[str]): The API key for authentication (optional).

    Methods:
        translate: Translates text from one language to another.
        detect_language: Detects the language of a given text.
    """
    
    def __init__(self, api_url: str, target_language: str, api_key: Optional[str] = None):
        """
        Initializes the LanguageTranslator class with API URL, target language code and optional API key.

        Args:
            api_url (str): The base URL for the translation API.
            target_language (str): The target language code for translations.
            api_key (Optional[str], optional): The API key for authentication. Defaults to None.
        """
        self.api_url = api_url
        self.target_language = target_language
        self.api_key = api_key
    
    def _make_request(self, params: Dict[str, Any]) -> Optional[Dict[str, Any]]:
        """
        Makes a request to the translation API and returns the response as JSON if successful.

        Args:
            params (Dict[str, Any]): Parameters for the API request.

        Returns:
            Optional[Dict[str, Any]]: The response data or None on failure.
        """
        headers = {}
        if self.api_key:
            headers['Authorization'] = f'Bearer {self.api_key}'
        
        try:
            response = requests.get(self.api_url, params=params, headers=headers)
            response.raise_for_status()
            return response.json()
        except requests.RequestException as e:
            print(f"Request failed: {e}")
            return None
    
    def translate(self, text: str) -> Optional[str]:
        """
        Translates text from one language to another.

        Args:
            text (str): The source text to be translated.

        Returns:
            Optional[str]: The translated text or None on failure.
        """
        params = {
            'text': text,
            'target_language': self.target_language
        }
        response_data = self._make_request(params)
        
        if response_data and 'translated_text' in response_data:
            return response_data['translated_text']
        else:
            print("Translation failed or missing translated text.")
            return None
    
    def detect_language(self, text: str) -> Optional[str]:
        """
        Detects the language of a given text.

        Args:
            text (str): The text to be analyzed for language detection.

        Returns:
            Optional[str]: The detected language code or None on failure.
        """
        params = {
            'text': text,
            'mode': 'detect'
        }
        response_data = self._make_request(params)
        
        if response_data and 'detected_language' in response_data:
            return response_data['detected_language']
        else:
            print("Language detection failed or missing detected language.")
            return Nonef52773ec594355dcb87b979af9cc5dae_