簡體   English   中英

您如何使用用戶可以選擇的語言編寫翻譯器

[英]How do you code a translator with language user can choose

我正在創建一個 web 應用程序,它獲取圖像,讀取其中的文本,並將該文本翻譯成另一種語言。 但是,現在您無法在網站上更改文本將要更改的語言。 我該怎么做

現在我的源語言是英語,目標語言是德語(正在工作)。 但是,我創建了一個字典,其中包含谷歌翻譯支持的所有語言和語言代碼,我把它放在一個下拉表單中。 如何將此輸入鏈接回 python 並使其成為目標語言

PYTHON

def Lang_target():
    language_targ={
        'af': 'Afrikaans',              'sq':'Albanian',    'ar': 'Arabic',     'az': 'Azerbaijani',
        'be': 'Belarusian',             'bn': 'Bengali',    'ca': 'Catalan',    'zh-CN': 'Chinese Simplified',
        'zh-TW': 'Chinese Traditional', 'hr': 'Croatian',   'cs': 'Czech',      'da': 'Danish',     
        'nl': 'Dutch',                  'en': 'English',    'eo': 'Esperanto',  'et': 'Estonian',
        'tl': 'Filipino',               'fi': 'Finnish',    'fr': 'French',     'gl': 'Galician',   
        'ka': 'Georgian',               'de': 'German',     'el': 'Greek',      'gu': 'Gujarati',
        'ht': 'Haitian Creole',         'iw': 'Hebrew',     'hi': 'Hindi',      'hu': 'Hungarian',
        'is': 'Icelandic',              'ga': 'Irish',      'it': 'Italian',    'id': 'Indonesian',
        'ja': 'Japanese',               'kn': 'Kannada',    'ko': 'Korean',     'la': 'Latin',
        'lv': 'Latvian',                'lt': 'Lithuanian', 'mk': 'Macedonian', 'ms': 'Malay',
        'mt': 'Maltese',                'no': 'Norwegian',  'fa': 'Persian',    'pl': 'Polish', 
        'pt': 'Portuguese',             'ro': 'Romanian',   'ru': 'Russian',    'sr': 'Serbian',
        'sk': 'Slovak',                 'es': 'Spanish',    'sl': 'Slovenian',  'sw': 'Swahili',
        'sv': 'Swedish',                'ta': 'Tamil',      'te': 'Telugu',     'th': 'Thai',
        'tr': 'Turkish',                'uk': 'Ukrainian',  'ur': 'Urdu',       'vi': 'Vietnamese',             
        'cy': 'Welsh',                  'yi': 'Yiddish',
    }
    return language_targ

@app.route('/selectImage')
def selectImage():
    fn = image_name()
    language_target = Lang_target()
    return render_template("selectImage.html", image_name=image_name, fn=fn, language_target=language_target)

@app.route('/getfileHelper', methods=['GET','POST'])
def getfileHelper():
    if request.method == 'POST':
        file = request.files['imgfile']
        filename = secure_filename(file.filename)   #from werkzeug import secure_filename
selectImage.html page
            if file.filename == '':
                flash("No file selected. Please select an image file")
                return render_template('selectImage.html')
            texts = detect_text('static/images/'+filename)

        text_translations = [] #emty list for dictionary of original text and translation
        for text in texts:

            translate_client = translate.Client()  
            translate_text = text.description  
            source = 'en'  
            target = 'de'   

            translation = translate_client.translate(translate_text, source_language=source, target_language=target)

            text_translations.append({'text':translate_text, 'translation':translation['translatedText']})

            db_append(filename, translate_text, translation['translatedText'])


    return render_template('home.html', filename=filename, text_translations=text_translations)

HTML

<form>
    <select>
    {% for x in language_target%} 
    <option> {{ language_target[x] }}</option>
    {% endfor %}
    </select>
    <input type="submit" value="Submit">
</form>

如果您將name屬性添加到 select(例如name="lang_target" ),您可以從request.args["lang_target"]中的請求中檢索下拉列表的值以獲得 GET(因為您沒有指定 POST) . 我不確定哪個應用程序路由執行翻譯,但您應該將請求定向到該路由。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM