요즘 인스타그램같은 경우를 보면 번역보기라는 버튼이 존재를 합니다.
버튼을 누르면 번역이 되고 원문보기라는 버튼으로 변경이 됩니다.
여기서 저도 이걸 Free 로 해서 만들수 있는 방법이 없을까해서 검색을 해보니 python으로 된 것 중 무료로 된것이 있어서
한번 구현을 해보자해서 만들어보게 되었답니다.
https://py-googletrans.readthedocs.io/en/latest/
Googletrans: Free and Unlimited Google translate API for Python — Googletrans 3.0.0 documentation
Googletrans: Free and Unlimited Google translate API for Python Googletrans is a free and unlimited python library that implemented Google Translate API. This uses the Google Translate Ajax API to make calls to such methods as detect and translate. Feature
py-googletrans.readthedocs.io
위의 링크에서 필요한 라이브러리를 인스톨해서 사용을 하면 됩니다.
하지만 여기서 문제가 발생을 하더군요.
pip install googletrans
위처럼 해당 라이브러리를 인스톨을 하시면 분명 코드가 틀린게 없는데 오류가 나더라구요.
저도 이 부분을 구글신에게 검색을 하다보니 찾은 방법은 아래와 같습니다.
pip install googletrans==3.1.0a0
기존 모듈은 uninstall을 하시구요.
위처럼 다시 버전을 명시해서 인스톨을 하시고 소스코드에서 값을 받아서 사용하시면 됩니다.
포스팅을 하고 있지만 제가 python을 잘해서 올려드리는 것은 아니라는 점 양해구해드립니다.
단지 위의 링크에 있는 것을 가지고 생성해서 만들었다는 것을 알려드립니다.
해당 소스는 정말 간단합니다.
@app.route('/translate', methods=['POST'])
def calltranslate():
translator = Translator()
data = request.form['data']
dataStr = '%s' %data
langType = request.form['lang_cd']
# 공백이 생기는 버그 수정
langTypeStr = '%s' %langType.strip()
tranlations = translator.translate([dataStr], dest=langTypeStr)
for translation in tranlations:
trans_text = translation.text
print(translation.origin, ' -> ', translation.text)
print(langType)
print(tranlations)
return {'trans_text': trans_text}, 200
필요한 라이브러리는 import 를 해두셔야합니다.
from flask import Flask, request
from googletrans import Translator
postman을 가지고 해당 method를 호출해서 사용을 해보니 정상적으로 잘 나오더라구요.
한가지 언어코드는 아래와 같습니다.
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',
'he': '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',
'or': 'odia',
'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',
'ug': 'uyghur',
'uz': 'uzbek',
'vi': 'vietnamese',
'cy': 'welsh',
'xh': 'xhosa',
'yi': 'yiddish',
'yo': 'yoruba',
'zu': 'zulu',
이번기회에 Flask 를 가지고 python rest api도 만들어보는 아주 좋은 경험이었습니다.
허접한 소스지만 도움이 되셨다면 좋아요, 구독 부탁드립니다.
[Mac]How to install Python 3.11 in Mac (0) | 2023.06.15 |
---|---|
[Anaconda] flask + nginx 연동 ( feat. Anaconda Virtual Env ) (0) | 2023.06.09 |
NVM 설치 & node 18 인스톨하기 (0) | 2022.10.12 |
Truffle 모듈 인스톨 하기 (0) | 2021.12.01 |
Deno 윈도우에 install 하기 와 VSCode 에서 Deno 파일 생성 (0) | 2021.11.11 |