pygtrans 包
pygtrans.Translate 模块
通过调用 google.com
| google.cn
| ...
web接口进行翻译
如果你有 google cloud translate apikey, 请使用 pygtrans.ApiKeyTranslate
- 基本功能:
语言检测, 支持批量检测
文本翻译, 支持批量, 支持 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
- 参数
- 返回
成功则返回:
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
- 基本功能:
获取语言列表
语言检测, 支持批量检测
文本翻译, 支持批量, 支持 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]
文本翻译, 支持批量
- 参数
- 返回
成功则返回:
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