一、安裝
常規(guī)的使用pip安裝
pip install googletrans
二、配置翻譯源
因為國內google.com無法直接訪問,故需調整為google.cn
1. 方法一,直接修改文件
進入并打開 \Lib\site-packages\googletrans\client.py
修改第56行:self.service_urls = service_urls or ['translate.google.com'] 將其中的 com
修改為 cn
即可。
2. 方法二,引用庫時修改
引用庫時,修改當前源配置,僅當次生效
from googletrans import Translator
translator = Translator(service_urls=[
'translate.google.cn',
])
3. 方法三,實例化類時傳入參數
from googletrans import Translator
translator = Translator(service_urls='translate.google.cn')
除此之外還可以傳入一些連接參數,如
user_agent
,proxies
,timeout
,字面意思很容易理解。
三、翻譯
實例化后,通過調用translate()方法可以進行語言轉換
>>> translator.translate("?????.")
<googletrans.models.Translated at 0x1d79c91e688>
將韓語轉換為日語:
轉換的結果通過text屬性獲得轉換后的文本值
可以通過傳入
dest
參數指定輸出語言
可以用
src
參數指定輸入語言,默認參數為auto
dest
和src
參數指定語言,需在 googletrans.LANGUAGES 或 googletrans.LANGCODES 范圍內
>>> translator.translate("?????.", dest="ja").text
'こんにちは。'
類
googletrans.models.Translated
除了擁有text
方法,還擁有src
,dest
,origin
,pronunciation
等方法,用途非常明確,其中的發(fā)音屬性在特定的場景可能會非常實用。
這里的翻譯內容可以傳入列表,實現批量翻譯
>>> translations = translator.translate(['The quick brown fox', 'jumps over', 'the lazy dog'], dest='ko')
>>> for translation in translations:
... print(translation.origin, ' -> ', translation.text)
The quick brown fox -> ?? ?? ??
jumps over -> ?? ??
the lazy dog -> ??? ?
四、語言識別
通過識別函數可以實現對字符串語言類型的識別:
>>> translator.detect("?????.")
<googletrans.models.Detected at 0x1d79c941b48>
識別后的對象,可以通過直接print
方法顯示結果,或通過lang
或confidence
屬性顯示具體內容:
>>> translator.detect("?????.").lang
'ko'
>>> print(translator.detect('識別文字'))
Detected(lang=zh-CN, confidence=0.9578953)
五、語言配置
庫所有支持的語言,及語言的縮寫。
LANGUAGES = {
'af': 'afrikaans',
'sq': 'albanian',
'am': 'amharic',
'ar': 'arabic',
'hy': 'armenian',
'az': 'azerbaijani',
'eu': 'basque',
'be': 'belarusian',
'bn': 'bengali',
'bs': 'bosnian',
'bg': 'bulgarian',
'ca': 'catalan',
'ceb': 'cebuano',
'ny': 'chichewa',
'zh-cn': 'chinese (simplified)',
'zh-tw': 'chinese (traditional)',
'co': 'corsican',
'hr': 'croatian',
'cs': 'czech',
'da': 'danish',
'nl': 'dutch',
'en': 'english',
'eo': 'esperanto',
'et': 'estonian',
'tl': 'filipino',
'fi': 'finnish',
'fr': 'french',
'fy': 'frisian',
'gl': 'galician',
'ka': 'georgian',
'de': 'german',
'el': 'greek',
'gu': 'gujarati',
'ht': 'haitian creole',
'ha': 'hausa',
'haw': 'hawaiian',
'iw': 'hebrew',
'hi': 'hindi',
'hmn': 'hmong',
'hu': 'hungarian',
'is': 'icelandic',
'ig': 'igbo',
'id': 'indonesian',
'ga': 'irish',
'it': 'italian',
'ja': 'japanese',
'jw': 'javanese',
'kn': 'kannada',
'kk': 'kazakh',
'km': 'khmer',
'ko': 'korean',
'ku': 'kurdish (kurmanji)',
'ky': 'kyrgyz',
'lo': 'lao',
'la': 'latin',
'lv': 'latvian',
'lt': 'lithuanian',
'lb': 'luxembourgish',
'mk': 'macedonian',
'mg': 'malagasy',
'ms': 'malay',
'ml': 'malayalam',
'mt': 'maltese',
'mi': 'maori',
'mr': 'marathi',
'mn': 'mongolian',
'my': 'myanmar (burmese)',
'ne': 'nepali',
'no': 'norwegian',
'ps': 'pashto',
'fa': 'persian',
'pl': 'polish',
'pt': 'portuguese',
'pa': 'punjabi',
'ro': 'romanian',
'ru': 'russian',
'sm': 'samoan',
'gd': 'scots gaelic',
'sr': 'serbian',
'st': 'sesotho',
'sn': 'shona',
'sd': 'sindhi',
'si': 'sinhala',
'sk': 'slovak',
'sl': 'slovenian',
'so': 'somali',
'es': 'spanish',
'su': 'sundanese',
'sw': 'swahili',
'sv': 'swedish',
'tg': 'tajik',
'ta': 'tamil',
'te': 'telugu',
'th': 'thai',
'tr': 'turkish',
'uk': 'ukrainian',
'ur': 'urdu',
'uz': 'uzbek',
'vi': 'vietnamese',
'cy': 'welsh',
'xh': 'xhosa',
'yi': 'yiddish',
'yo': 'yoruba',
'zu': 'zulu',
'fil': 'Filipino',
'he': 'Hebrew'
}
LANGCODES = dict(map(reversed, LANGUAGES.items()))
通過對語言縮寫的字典對應查詢,配合
detect
函數可以實現對語言名稱的查詢輸出。
>>> LANGUAGES.get(translator.detect("?????.").lang)
'korean'
非常實用且簡單的庫,希望能幫到大家
作者:無邪Chaosless,轉載請注明出處
參考地址:py-googletrans官方文檔