pygtrans 包

pygtrans.Translate 模块

通过调用 google.com | google.cn | ... web接口进行翻译 如果你有 google cloud translate apikey, 请使用 pygtrans.ApiKeyTranslate

基本功能:
  1. 语言检测, 支持批量检测

  2. 文本翻译, 支持批量, 支持 html 模式翻译

class pygtrans.Translate.Translate(target: str = 'zh-CN', source: str = 'auto', fmt='html', user_agent: Optional[str] = None, domain: str = 'com', proxies: Optional[Dict] = None)

基类:object

参数
  • target – str: (可选) 目标语言, 默认: zh-CN, 查看完整列表

  • source – str: (可选) 源语言, 默认: auto (自动检测), 查看完整列表

  • fmt – str: (可选) 文本格式, text | html, 默认: html

  • user_agent – str: (可选) 用户代理, 这个参数很重要, 不设置或错误设置非常容易触发 429 Too Many Requests 错误, 默认: GoogleTranslate/6.18.0.06.376053713 (Linux; U; Android 11; GM1900), 所以用户可以不用提供. 这个默认 User-Agent 很稳定, 暂时未发现 429 错误, 如果出现 429, 建议 模仿默认 进行构造, 或者进行 反馈

  • domain – str: (可选) 域名 google.com 及其可用平行域名 (如: google.cn), 默认: google.com

  • proxies – (可选) eg: proxies = {‘http’: ‘http://localhost:10809’, ‘https’: ‘http://localhost:10809’}

基本用法:
>>> from pygtrans import Translate
>>> client = Translate(proxies={'http': 'http://localhost:10809', 'https': 'http://localhost:10809'})
>>> client.detect('谷歌翻译').language
'zh-CN'
>>> text = client.translate('Hello, Google')
>>> text.translatedText
'你好,谷歌'
>>> texts = client.translate(['批量测试', '批量翻译'], target='en')
>>> for text in texts:
...     print(text.translatedText)
Batch test
Batch translation
detect(q: str) Union[pygtrans.DetectResponse.DetectResponse, pygtrans.Null.Null]

语言检测

参数

q – 需要检测的内容, 不支持批量, 如需批量, 请参阅: translate_and_detect().

返回

成功则返回 pygtrans.DetectResponse.DetectResponse 对象, 失败则返回 pygtrans.Null.Null 对象

基本用法:
>>> from pygtrans import Translate
>>> client = Translate(proxies={'http': 'http://localhost:10809', 'https': 'http://localhost:10809'})
>>> d = client.detect('こんにちは')
>>> assert d.language == 'ja'
translate(q: str, target: str = None, source: str = None, fmt: str = None) pygtrans.TranslateResponse.TranslateResponse
translate(q: List[str], target: str = None, source: str = None, fmt: str = None) List[pygtrans.TranslateResponse.TranslateResponse]

翻译文本, 支持批量, 支持 html

参数
  • q – str: 字符串或字符串列表

  • target – str: (可选) 目标语言, 默认: self.target, 查看支持列表

  • source – str: (可选) 源语言, 默认: self.source, 查看支持列表

  • fmt – str: (可选) 文本格式, text | html, 默认: self.format

返回

成功则返回: pygtrans.TranslateResponse.TranslateResponse 对象, 或 pygtrans.TranslateResponse.TranslateResponse 对象列表, 这取决于 参数: q 是字符串还是字符串列表. 失败则返回 pygtrans.Null.Null 对象

基本用法:
>>> from pygtrans import Translate
>>> client = Translate(proxies={'http': 'http://localhost:10809', 'https': 'http://localhost:10809'})
>>> text = client.translate('Hello, Google')
>>> text.translatedText
'你好,谷歌'
>>> texts = client.translate(['批量测试', '批量翻译'], target='en')
>>> for text in texts:
...     print(text.translatedText)
Batch test
Batch translation
tts(q: str, target: Optional[str] = None) Union[bytes, pygtrans.Null.Null]

语音: 实验性功能

参数
  • q – 只支持短语字符串

  • target – 目标语言

返回

返回二进制数据, 需要自行写入文件, MP3

pygtrans.ApiKeyTranslate 模块

通过 Google Cloud Translate APIKEY 进行翻译 如果你没有 APIKEY, 请使用 pygtrans.Translate.Translate

基本功能:
  1. 获取语言列表

  2. 语言检测, 支持批量检测

  3. 文本翻译, 支持批量, 支持 html 模式翻译

class pygtrans.ApiKeyTranslate.ApiKeyTranslate(api_key: str, target: str = 'zh-CN', source: Optional[str] = None, fmt: str = 'html', model: str = 'nmt', proxies: Optional[Dict] = None)

基类:object

参数
  • api_key – str: 谷歌云翻译APIKEY, 查看详情

  • target – str: (可选) 目标语言, 默认: zh-CN, 参考列表

  • source – str: (可选) 源语言, 默认: auto (自动检测), 参考列表

  • fmt – str: (可选) 文本格式, text | html, 默认: html

  • model – str: (可选) 翻译模型. 可以是 base 使用 Phrase-Based Machine Translation (PBMT) 模型, 或者 nmt 使用 Neural Machine Translation (NMT) 模型。如果省略,则使用 nmt。如果模型是 nmt, 并且 NMT 模型不支持请求的语言翻译对,则使用 PBMT 模型翻译请求。

  • proxies – (可选) eg: proxies = {‘http’: ‘http://localhost:10809’,’https’: ‘http://localhost:10809’}

基本用法:
>>> from pygtrans import ApiKeyTranslate
>>> client = ApiKeyTranslate(api_key='<api_key>')
>>> langs = client.languages()  # 此种方式的语言列表, 请使用此方法获取
>>> langs[0]
LanguageResponse(language='sq', name='阿尔巴尼亚语')
>>> text = client.translate('Google Translate')
>>> text.translatedText
'谷歌翻译'
>>> text.detectedSourceLanguage
'en'
>>> texts = client.translate(['안녕하십니까', 'こんにちは'])
>>> texts[0].translatedText
'你好'
>>> texts[0].detectedSourceLanguage
'ko'
>>> texts[1].translatedText
'你好'
>>> texts[1].detectedSourceLanguage
'ja'
detect(q: str) pygtrans.DetectResponse.DetectResponse
detect(q: List[str]) List[pygtrans.DetectResponse.DetectResponse]

语言检测, 支持批量

参数

q – 字符串或字符串列表

返回

成功则返回: pygtrans.TranslateResponse.DetectResponse 对象, 或 pygtrans.TranslateResponse.DetectResponse 对象列表, 这取决于 参数: q 是字符串还是字符串列表. 失败则返回 pygtrans.Null.Null 对象

基本用法:
>>> from pygtrans import ApiKeyTranslate
>>> client = ApiKeyTranslate(api_key='<api_key>')
>>> d1 = client.detect('Hello')
>>> d1.language
'en'
>>> assert isinstance(client.detect(['Hello', 'Google']), list)
languages(target: Optional[str] = None, model: Optional[str] = None) Union[List[pygtrans.LanguageResponse.LanguageResponse], pygtrans.Null.Null]

语言支持列表

translate(q: str, target: str = None, source: str = None, fmt: str = None, model: str = None) pygtrans.TranslateResponse.TranslateResponse
translate(q: List[str], target: str = None, source: str = None, fmt: str = None, model: str = None) List[pygtrans.TranslateResponse.TranslateResponse]

文本翻译, 支持批量

参数
  • q – str: 字符串或字符串列表

  • target – str: (可选) 目标语言, 默认: self.target, 查看支持列表

  • source – str: (可选) 源语言, 默认: self.source, 查看支持列表

  • fmt – str: (可选) 文本格式, text | html, 默认: self.format

  • model – str: (可选) 翻译模型, nmt | pbmt, 默认: self.model

返回

成功则返回: pygtrans.TranslateResponse.TranslateResponse 对象, 或 pygtrans.TranslateResponse.TranslateResponse 对象列表, 这取决于 参数: q 是字符串还是字符串列表. 失败则返回 pygtrans.Null.Null 对象

基本用法:
>>> from pygtrans import ApiKeyTranslate
>>> client = ApiKeyTranslate(api_key='<api_key>')
>>> text = client.translate('Google Translate')
>>> text.translatedText
'谷歌翻译'
>>> text.detectedSourceLanguage
'en'
>>> texts = client.translate(['안녕하십니까', 'こんにちは'])
>>> texts[0].translatedText, texts[1].translatedText
('你好', '你好')
pygtrans.ApiKeyTranslate.split_list(obj_list: List, sub_size: int = 128) List[list]

split list

参数
  • obj_list – list object

  • sub_size – sub list size

返回

List[list]

pygtrans.ApiKeyTranslate.split_list_by_content_size(obj_list: List[str], content_size: int = 102400) List[List[str]]

pygtrans.Null 模块

表示一个失败的结果

class pygtrans.Null.Null(response: requests.models.Response)

基类:object

参数

response – 请求失败的 requests.Response 对象

pygtrans.LanguageResponse 模块

LanguageResponse

class pygtrans.LanguageResponse.LanguageResponse(language: str, name: Optional[str] = None)

基类:object

pygtrans.DetectResponse 模块

DetectResponse

class pygtrans.DetectResponse.DetectResponse(language: str, isReliable: bool = True, confidence: float = 1.0)

基类:object

pygtrans.TranslateResponse 模块

TranslateResponse

class pygtrans.TranslateResponse.TranslateResponse(translatedText: str, detectedSourceLanguage: Optional[str] = None, model: Optional[str] = None)

基类:object