Python bindings to connect to a LibreTranslate API
https://pypi.org/project/libretranslatepy/
pip install libretranslatepy fromlibretranslatepyimportLibreTranslateAPIlt=LibreTranslateAPI("https://libretranslate.com/") print(lt.translate("LibreTranslate is awesome!", "en", "es")) # LibreTranslate es impresionante!print(lt.detect("Hello World")) # [{"confidence": 0.6, "language": "en"}]print(lt.languages()) # [{"code":"en", "name":"English"},{"code":"es", "name":"Spanish"}]importjsonimportsysfromurllibimportrequest, parseclassLibreTranslateAPI: """Connect to the LibreTranslate API""""""Example usage: from libretranslatepy import LibreTranslateAPI lt = LibreTranslateAPI("https://translate.terraprint.co/") print(lt.translate("LibreTranslate is awesome!", "en", "es")) # LibreTranslate es impresionante! print(lt.detect("Hello World")) # [{"confidence": 0.6, "language": "en"}] print(lt.languages()) # [{"code":"en", "name":"English"}] """DEFAULT_URL="https://translate.terraprint.co/"def__init__(self, url=None, api_key=None): """Create a LibreTranslate API connection. Args: url (str): The url of the LibreTranslate endpoint. api_key (str): The API key. """self.url=LibreTranslateAPI.DEFAULT_URLifurlisNoneelseurlself.api_key=api_key# Add trailing slashassertlen(self.url) >0ifself.url[-1] !="/": self.url+="/"deftranslate(self, q, source="en", target="es"): """Translate string Args: q (str): The text to translate source (str): The source language code (ISO 639) target (str): The target language code (ISO 639) Returns: str: The translated text """url=self.url+"translate"params={"q": q, "source": source, "target": target} ifself.api_keyisnotNone: params["api_key"] =self.api_keyurl_params=parse.urlencode(params) req=request.Request(url, data=url_params.encode()) response=request.urlopen(req) response_str=response.read().decode() returnjson.loads(response_str)["translatedText"] defdetect(self, q): """Detect the language of a single text. Args: q (str): Text to detect Returns: The detected languages ex: [{"confidence": 0.6, "language": "en"}] """url=self.url+"detect"params={"q": q} ifself.api_keyisnotNone: params["api_key"] =self.api_keyurl_params=parse.urlencode(params) req=request.Request(url, data=url_params.encode()) response=request.urlopen(req) response_str=response.read().decode() returnjson.loads(response_str) deflanguages(self): """Retrieve list of supported languages. Returns: A list of available languages ex: [{"code":"en", "name":"English"}] """url=self.url+"languages"params=dict() ifself.api_keyisnotNone: params["api_key"] =self.api_keyurl_params=parse.urlencode(params) req=request.Request(url, data=url_params.encode(), method="GET") response=request.urlopen(req) response_str=response.read().decode() returnjson.loads(response_str)Licensed under either the MIT License or Public Domain
Developed by P.J. Finlay