Doctranslate.io

पुर्तगाली में दस्तावेज़ का अनुवाद करने के लिए एपीआई: तेज़ और सटीक मार्गदर्शिका

Đăng bởi

vào

प्रोग्रामेटिक दस्तावेज़ अनुवाद की छिपी हुई जटिलताएँ

अंग्रेजी से पुर्तगाली में दस्तावेज़ों के अनुवाद को स्वचालित करने में अनूठी चुनौतियाँ पेश आती हैं जो साधारण टेक्स्ट स्ट्रिंग प्रतिस्थापन से कहीं अधिक हैं। एक मजबूत समाधान के लिए फ़ाइल संरचनाओं,
वर्ण एन्कोडिंग और लेआउट संरक्षण की गहरी समझ की आवश्यकता होती है। इन जटिलताओं को दूर करने में विफल रहने से दूषित फ़ाइलें,
टूटी हुई फ़ॉर्मेटिंग, और एक गैर-पेशेवर अंतिम उत्पाद बन सकता है जो आपके अंतिम-उपयोगकर्ताओं के लिए अनुपयोगी है।

प्राथमिक बाधाओं में से एक वर्ण एन्कोडिंग है, खासकर पुर्तगाली भाषा से निपटते समय। पुर्तगाली में कई डायक्रिटिकल चिह्न उपयोग किए जाते हैं,
जैसे कि एक सेडिला (ç), टिल्डेस (ã, õ), और विभिन्न उच्चारण चिह्न (á, ê, í), जो मानक ASCII सेट में मौजूद नहीं हैं। यदि पूरी प्रक्रिया के दौरान UTF-8 एन्कोडिंग के साथ इसे सही ढंग से नियंत्रित नहीं किया जाता है,
तो ये वर्ण विकृत हो सकते हैं, जिससे दस्तावेज़ अपठनीय हो जाएगा और अनुवाद की विश्वसनीयता कम हो जाएगी।

इसके अलावा, लेआउट संरक्षण किसी भी स्वचालित अनुवाद वर्कफ़्लो के लिए एक महत्वपूर्ण तकनीकी बाधा है। DOCX,
PPTX, या PDF जैसे प्रारूपों में बनाए गए आधुनिक दस्तावेज़ों में जटिल फ़ॉर्मेटिंग शामिल होती है, जिसमें तालिकाएँ, मल्टी-कॉलम लेआउट, टेक्स्ट-रैपिंग के साथ एम्बेडेड छवियां, और विशिष्ट फ़ॉन्ट शैलियाँ शामिल हैं। एक सरल अनुवाद दृष्टिकोण जो केवल टेक्स्ट को निकालता और बदलता है, अनिवार्य रूप से इस नाजुक संरचना को तोड़ देगा,
जिसके परिणामस्वरूप एक ऐसा दस्तावेज़ बनेगा जो अपनी सारी पेशेवर फ़ॉर्मेटिंग और दृश्य अपील खो देगा।

अंत में, इन फ़ाइलों की आंतरिक संरचना जटिलता की एक और परत जोड़ती है। उदाहरण के लिए, एक DOCX फ़ाइल,
एक एकल फ़ाइल नहीं है, बल्कि XML दस्तावेज़ों, मीडिया फ़ाइलों और संबंध परिभाषाओं का एक संपीड़ित संग्रह है। फ़ाइल की अखंडता को दूषित किए बिना टेक्स्ट सामग्री को खोजने और बदलने के लिए प्रोग्रामेटिक रूप से इस संरचना को नेविगेट करने के लिए विशेष उपकरणों और विशेषज्ञता की आवश्यकता होती है,
जिससे इसे खरोंच से बनाना और बनाए रखना एक कठिन काम हो जाता है।

Doctranslate API का परिचय: अंग्रेजी से पुर्तगाली अनुवाद के लिए आपका समाधान

Doctranslate API को विशेष रूप से इन चुनौतियों को दूर करने के लिए इंजीनियर किया गया है, जो डेवलपर्स के लिए एक शक्तिशाली और सुव्यवस्थित समाधान प्रदान करता है। एक RESTful API के रूप में,
यह उच्च-गुणवत्ता वाले दस्तावेज़ अनुवाद को सीधे आपके अनुप्रयोगों में एकीकृत करने के लिए एक सरल लेकिन मजबूत इंटरफ़ेस प्रदान करता है। फ़ाइल पार्सिंग, प्रारूप संरक्षण और भाषाई सटीकता की जटिलताओं को संभालकर,
यह आपको पहिये को फिर से बनाने के बजाय अपने मुख्य एप्लिकेशन तर्क पर ध्यान केंद्रित करने की अनुमति देता है।

हमारी सेवा बेजोड़ प्रारूप समर्थन प्रदान करती है जो 20 से अधिक विभिन्न फ़ाइल प्रकारों के लिए है,
जिसमें Microsoft Office दस्तावेज़ (DOCX, PPTX, XLSX), Adobe PDF, InDesign (IDML), और कई अन्य शामिल हैं। API बुद्धिमानी से प्रत्येक फ़ाइल को पार्स करता है,
पाठ्य सामग्री का अनुवाद करता है, और फिर यह सुनिश्चित करने के लिए दस्तावेज़ को सावधानीपूर्वक पुनर्निर्मित करता है कि मूल लेआउट, चित्र और फ़ॉर्मेटिंग पूरी तरह से संरक्षित हैं। इसका मतलब है कि आपके अनुवादित पुर्तगाली दस्तावेज़ अंग्रेजी मूल के समान ही पेशेवर दिखेंगे।

संपूर्ण वर्कफ़्लो को अतुल्यकालिक (asynchronous) होने के लिए डिज़ाइन किया गया है, जो आपके एप्लिकेशन को ब्लॉक किए बिना बड़े या जटिल दस्तावेज़ों को संभालने के लिए महत्वपूर्ण है। आप बस एक अनुवाद अनुरोध सबमिट करते हैं और एक प्रोसेस आईडी प्राप्त करते हैं,
जिससे आप समय-समय पर स्थिति की जाँच कर सकते हैं। एक बार अनुवाद पूरा हो जाने पर, आप पूरी तरह से अनुवादित और स्वरूपित दस्तावेज़ डाउनलोड कर सकते हैं, जिससे काम की किसी भी मात्रा के लिए एक सहज और स्केलेबल प्रक्रिया सुनिश्चित होती है।

चरण-दर-चरण मार्गदर्शिका: अंग्रेजी से पुर्तगाली में दस्तावेज़ अनुवाद API को एकीकृत करना

हमारे API को अपने प्रोजेक्ट में एकीकृत करना एक सीधी प्रक्रिया है। यह मार्गदर्शिका आपको आवश्यक चरणों के बारे में बताएगी,
आपके अनुरोधों को प्रमाणित करने से लेकर अंतिम अनुवादित फ़ाइल को डाउनलोड करने तक। हम अपने कोड उदाहरणों के लिए Python का उपयोग करेंगे,
लेकिन सिद्धांत HTTP अनुरोध करने में सक्षम किसी भी प्रोग्रामिंग भाषा पर लागू होते हैं।

चरण 1: प्रमाणीकरण और सेटअप

कोई भी API कॉल करने से पहले, आपको अपनी अद्वितीय API कुंजी प्राप्त करनी होगी। आप साइन अप करने के बाद अपनी Doctranslate डेवलपर डैशबोर्ड में यह कुंजी पा सकते हैं। आपके एप्लिकेशन को प्रमाणित करने के लिए इस कुंजी को प्रत्येक अनुरोध के `Authorization` हेडर में शामिल किया जाना चाहिए।
अपनी API कुंजी को सुरक्षित रखना सुनिश्चित करें और इसे क्लाइंट-साइड कोड में कभी भी उजागर न करें।

इसके बाद, आप अपना विकास वातावरण (development environment) सेट अप करना चाहेंगे। इस Python उदाहरण के लिए,
आपको HTTP कॉल को संभालने के लिए लोकप्रिय `requests` लाइब्रेरी और अंतर्निहित `os` और `time` लाइब्रेरी की आवश्यकता होगी। यदि आपने पहले से नहीं किया है, तो आप pip का उपयोग करके `requests` इंस्टॉल कर सकते हैं:
`pip install requests`. हम आसान पहुँच के लिए अपनी API कुंजी और आधार URL को चर (variables) के रूप में परिभाषित करेंगे।

चरण 2: अपने अंग्रेजी दस्तावेज़ को अपलोड करना

अनुवाद वर्कफ़्लो में पहला कदम उस स्रोत दस्तावेज़ को अपलोड करना है जिसका आप अनुवाद करना चाहते हैं। यह `/v2/document/upload` एंडपॉइंट पर POST अनुरोध करके किया जाता है।
अनुरोध `multipart/form-data` के रूप में भेजा जाना चाहिए और इसमें फ़ाइल स्वयं शामिल होनी चाहिए। API फ़ाइल को संसाधित करेगा और सफलता पर एक अद्वितीय `document_id` लौटाएगा।

यह `document_id` जानकारी का एक महत्वपूर्ण टुकड़ा है जिसका उपयोग आप अपलोड की गई फ़ाइल को संदर्भित करने के लिए बाद के API कॉल में करेंगे। इस आईडी को अपने एप्लिकेशन में सुरक्षित रूप से संग्रहीत करना महत्वपूर्ण है।
अपलोड एंडपॉइंट से प्रतिक्रिया एक JSON ऑब्जेक्ट होगी जिसमें आईडी शामिल होगी,
जिसे आपको प्रक्रिया में अगले चरण के लिए पार्स और सहेजना चाहिए।

चरण 3: अनुवाद प्रक्रिया शुरू करना

`document_id` हाथ में होने पर, अब आप अनुवाद का अनुरोध कर सकते हैं। आप `/v2/document/translate` एंडपॉइंट पर एक POST अनुरोध करेंगे।
इस अनुरोध के लिए `document_id`, `source_lang` (जो अंग्रेजी के लिए ‘en’ होगा), और `target_lang` (जो पुर्तगाली के लिए ‘pt’ होगा) की आवश्यकता होती है।
अधिक विशिष्ट स्थानीयकरण के लिए, आप ब्राजीलियाई पुर्तगाली के लिए ‘pt-BR’ या यूरोपीय पुर्तगाली के लिए ‘pt-PT’ का उपयोग कर सकते हैं।

एक सफल अनुरोध पर, API एक `process_id` के साथ प्रतिक्रिया देगा। यह आईडी उस अद्वितीय अनुवाद कार्य का प्रतिनिधित्व करती है जिसे आपने अभी शुरू किया है।
चूंकि प्रक्रिया अतुल्यकालिक है, इसलिए यह प्रतिक्रिया तुरंत वापस आ जाती है जबकि अनुवाद पृष्ठभूमि में होता रहता है। आप इस `process_id` का उपयोग कार्य की स्थिति की जांच करने और अंततः परिणाम डाउनलोड करने के लिए करेंगे।

चरण 4: अनुवाद स्थिति की जाँच करना

अपने अनुवाद की प्रगति की निगरानी के लिए, आपको स्थिति एंडपॉइंट की जाँच करने की आवश्यकता है। इसमें `/v2/document/status/{process_id}` पर GET अनुरोध करना शामिल है,
`{process_id}` को उस आईडी से बदलना होगा जो आपको पिछले चरण में मिली थी। API वर्तमान स्थिति लौटाएगा,
जो `processing`, `completed`, या `failed` हो सकती है।

दर सीमाओं (rate limits) से बचने के लिए उचित देरी (उदाहरण के लिए, हर 5-10 सेकंड) के साथ एक जाँच तंत्र (polling mechanism) लागू करना सर्वोत्तम अभ्यास है। आपके एप्लिकेशन को स्थिति की जाँच तब तक जारी रखनी चाहिए जब तक कि वह `completed` न हो जाए।
यदि स्थिति `failed` है, तो प्रतिक्रिया में अतिरिक्त जानकारी शामिल हो सकती है कि क्या गलत हुआ,
जिससे आप समस्या को डीबग कर सकते हैं या पुन: प्रयास तर्क (retry logic) लागू कर सकते हैं।

चरण 5: अनुवादित पुर्तगाली दस्तावेज़ डाउनलोड करना

एक बार जब स्थिति की जाँच `completed` लौटाती है, तो अनुवादित दस्तावेज़ डाउनलोड के लिए तैयार हो जाता है। अंतिम चरण `/v2/document/download/{process_id}` एंडपॉइंट पर GET अनुरोध करना है।
यह एंडपॉइंट अनुवादित फ़ाइल के बाइनरी डेटा के साथ प्रतिक्रिया देगा।
आपके कोड को इस बाइनरी स्ट्रीम को संभालने और इसे आपके स्थानीय सिस्टम पर एक नई फ़ाइल में सहेजने के लिए तैयार होने की आवश्यकता है।

फ़ाइल को सहेजते समय, सुनिश्चित करें कि आप मूल स्रोत दस्तावेज़ के अनुरूप सही फ़ाइल एक्सटेंशन (जैसे, `.docx`, `.pdf`) का उपयोग करते हैं। अब आपके पास एक पूरी तरह से अनुवादित,
अच्छी तरह से स्वरूपित पुर्तगाली दस्तावेज़ उपयोग के लिए तैयार है। यह स्वचालित दस्तावेज़ अनुवाद के लिए संपूर्ण एंड-टू-एंड एकीकरण वर्कफ़्लो को पूरा करता है।

संपूर्ण Python कोड उदाहरण

यहां एक संपूर्ण Python स्क्रिप्ट दी गई है जो शुरू से अंत तक पूरे वर्कफ़्लो को प्रदर्शित करती है। यह कोड एक दस्तावेज़ को अपलोड करने को संभालता है,
अनुवाद शुरू करता है, पूर्णता के लिए जाँच करता है, और अंतिम परिणाम डाउनलोड करता है। `’YOUR_API_KEY’` और `’path/to/your/document.docx’` को अपने वास्तविक क्रेडेंशियल्स और फ़ाइल पथ से बदलना याद रखें।
यह स्क्रिप्ट एक ठोस आधार प्रदान करती है जिसे आप अपने स्वयं के एप्लिकेशन की आवश्यकताओं के लिए अनुकूलित कर सकते हैं।


import requests
import time
import os

# Configuration
API_KEY = 'YOUR_API_KEY' # Replace with your actual API key
BASE_URL = 'https://developer.doctranslate.io/api'
FILE_PATH = 'path/to/your/document.docx' # Replace with your document path
SOURCE_LANG = 'en'
TARGET_LANG = 'pt-BR' # Or 'pt' for generic Portuguese

headers = {
    'Authorization': f'Bearer {API_KEY}'
}

# Step 1: Upload the document
def upload_document(file_path):
    print(f"Uploading document: {file_path}")
    with open(file_path, 'rb') as f:
        files = {'file': (os.path.basename(file_path), f)}
        response = requests.post(f'{BASE_URL}/v2/document/upload', headers=headers, files=files)
    
    if response.status_code == 200:
        document_id = response.json().get('id')
        print(f"Document uploaded successfully. Document ID: {document_id}")
        return document_id
    else:
        print(f"Error uploading document: {response.status_code} - {response.text}")
        return None

# Step 2: Request translation
def request_translation(document_id, source_lang, target_lang):
    print("Requesting translation...")
    payload = {
        'document_id': document_id,
        'source_lang': source_lang,
        'target_lang': target_lang
    }
    response = requests.post(f'{BASE_URL}/v2/document/translate', headers=headers, json=payload)

    if response.status_code == 200:
        process_id = response.json().get('id')
        print(f"Translation initiated. Process ID: {process_id}")
        return process_id
    else:
        print(f"Error requesting translation: {response.status_code} - {response.text}")
        return None

# Step 3: Check translation status
def check_status(process_id):
    print("Checking translation status...")
    while True:
        response = requests.get(f'{BASE_URL}/v2/document/status/{process_id}', headers=headers)
        if response.status_code == 200:
            status = response.json().get('status')
            print(f"Current status: {status}")
            if status == 'completed':
                return True
            elif status == 'failed':
                print("Translation failed.")
                return False
            time.sleep(5) # Poll every 5 seconds
        else:
            print(f"Error checking status: {response.status_code} - {response.text}")
            return False

# Step 4: Download the translated document
def download_document(process_id, original_path):
    print("Downloading translated document...")
    response = requests.get(f'{BASE_URL}/v2/document/download/{process_id}', headers=headers, stream=True)

    if response.status_code == 200:
        base, ext = os.path.splitext(original_path)
        output_path = f"{base}_translated_{TARGET_LANG}{ext}"
        with open(output_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
        print(f"Translated document saved to: {output_path}")
    else:
        print(f"Error downloading document: {response.status_code} - {response.text}")

# Main execution flow
if __name__ == "__main__":
    if not os.path.exists(FILE_PATH):
        print(f"Error: File not found at {FILE_PATH}")
    else:
        doc_id = upload_document(FILE_PATH)
        if doc_id:
            proc_id = request_translation(doc_id, SOURCE_LANG, TARGET_LANG)
            if proc_id:
                if check_status(proc_id):
                    download_document(proc_id, FILE_PATH)

पुर्तगाली भाषा अनुवाद के लिए मुख्य विचार

पुर्तगाली में सामग्री का अनुवाद करने के लिए उच्च गुणवत्ता और सांस्कृतिक प्रासंगिकता सुनिश्चित करने के लिए विशिष्ट भाषाई विवरणों पर ध्यान देने की आवश्यकता होती है। जबकि हमारा API तकनीकी भारी काम संभालता है,
इन बारीकियों को समझने से आपको सर्वोत्तम संभव परिणामों के लिए अपनी स्रोत सामग्री को अनुकूलित करने में मदद मिल सकती है। ये विचार एक अंतिम उत्पाद बनाने के लिए महत्वपूर्ण हैं जो पुर्तगाली भाषी दर्शकों के साथ प्रतिध्वनित होता है।
बोली, एन्कोडिंग और व्याकरण पर ध्यान देने से आपके अनुवादित दस्तावेज़ों का स्तर बढ़ेगा।

वर्ण एन्कोडिंग और डायक्रिटिक्स को संभालना

जैसा कि पहले उल्लेख किया गया है, पुर्तगाली डायक्रिटिकल चिह्नों से समृद्ध है जो सही वर्तनी और उच्चारण के लिए आवश्यक हैं। Doctranslate API को मूल रूप से UTF-8 एन्कोडिंग को संभालने के लिए बनाया गया है,
यह सुनिश्चित करता है कि सभी विशेष वर्ण अंतिम दस्तावेज़ में संसाधित और सही ढंग से प्रस्तुत किए जाते हैं। हालांकि, यह महत्वपूर्ण है कि आपका स्रोत दस्तावेज़ भी उचित एन्कोडिंग के साथ सहेजा गया हो और API कॉल से पहले या बाद में टेक्स्ट को संभालने वाले किसी भी सिस्टम को वर्ण भ्रष्टाचार को रोकने के लिए UTF-8 के लिए कॉन्फ़िगर किया गया हो।

क्षेत्रीय बोलियों को नेविगेट करना: ब्राजीलियाई बनाम यूरोपीय पुर्तगाली

ब्राजीलियाई पुर्तगाली (pt-BR) और यूरोपीय पुर्तगाली (pt-PT) के बीच महत्वपूर्ण अंतर हैं, जिसमें शब्दावली, व्याकरण और औपचारिक संबोधन में भिन्नता शामिल है। उदाहरण के लिए,
‘बस’ के लिए शब्द ब्राजील में ‘ônibus’ है लेकिन पुर्तगाल में ‘autocarro’ है। उच्चतम स्तर की सटीकता और सांस्कृतिक उपयुक्तता प्राप्त करने के लिए,
आपको `target_lang` को `pt-BR` या `pt-PT` पर सेट करके अपने API कॉल में लक्ष्य बोली निर्दिष्ट करनी चाहिए।

अपने लक्षित दर्शकों के साथ प्रभावी ढंग से जुड़ने के लिए सही बोली चुनना महत्वपूर्ण है। पुर्तगाल में दर्शकों के लिए ब्राजीलियाई पुर्तगाली (या इसके विपरीत) का उपयोग करना अनुपयुक्त लग सकता है और इससे भ्रम भी हो सकता है।
स्थानीयकरण निर्दिष्ट करके, आप हमारे अनुवाद मॉडल को उपयुक्त शब्दावली और परंपराओं का उपयोग करने का निर्देश देते हैं,
जिसके परिणामस्वरूप एक बहुत अधिक परिष्कृत और स्थानीयकृत अंतिम दस्तावेज़ प्राप्त होता है।

व्याकरणिक बारीकियां: लिंग और औपचारिकता

पुर्तगाली एक लिंग-आधारित भाषा है, जिसका अर्थ है कि संज्ञाएं पुल्लिंग या स्त्रीलिंग होती हैं, और साथ वाले लेखों और विशेषणों को तदनुसार सहमत होना चाहिए। यह स्वचालित प्रणालियों के लिए जटिल हो सकता है,
लेकिन Doctranslate के उन्नत अनुवाद मॉडल को संदर्भ को समझने और सही व्याकरणिक नियमों को लागू करने के लिए विशाल डेटासेट पर प्रशिक्षित किया जाता है। यह सुनिश्चित करता है कि वाक्यांशों का अनुवाद स्वाभाविक और सटीक रूप से किया जाता है।
आप यह सुनिश्चित करके परिणामों में सुधार कर सकते हैं कि आपका अंग्रेजी स्रोत पाठ स्पष्ट और संदिग्ध न हो।

औपचारिकता एक और महत्वपूर्ण पहलू है, जिसमें संदर्भ और वक्ताओं के बीच संबंध के आधार पर विभिन्न सर्वनामों और क्रिया के रूपों का उपयोग किया जाता है। जबकि हमारा API अधिकांश व्यावसायिक दस्तावेज़ों के लिए उपयुक्त एक तटस्थ, पेशेवर लहजा तैयार करता है,
इन भेदों के बारे में जागरूक होना सहायक हो सकता है। अत्यधिक विशिष्ट आवश्यकताओं के लिए, आप यह सुनिश्चित करने के लिए शब्दावलियों (glossaries) जैसी सुविधाओं का पता लगा सकते हैं कि कुछ ब्रांड या तकनीकी शब्दों का अनुवाद आपकी पसंदीदा औपचारिकता के स्तर के अनुसार लगातार किया जाता है।

निष्कर्ष और अगले कदम

अंग्रेजी से पुर्तगाली दस्तावेज़ों के लिए एक स्वचालित अनुवाद समाधान को एकीकृत करने से आपके वर्कफ़्लो की दक्षता और वैश्विक पहुँच में नाटकीय रूप से सुधार हो सकता है। Doctranslate API इस जटिल कार्य को संभालने के लिए एक शक्तिशाली,
स्केलेबल और डेवलपर-अनुकूल तरीका प्रदान करता है। यह फ़ाइल पार्सिंग,
लेआउट संरक्षण, और भाषाई बारीकियों की कठिनाइयों को दूर करता है, जिससे आप जल्दी से एक मजबूत समाधान लागू कर सकते हैं।

इस लेख में चरण-दर-चरण मार्गदर्शिका का पालन करके, आप उच्च विश्वसनीयता के साथ अपने दस्तावेज़ों का अनुवाद करने के लिए एक निर्बाध पाइपलाइन बना सकते हैं। आप DOCX फ़ाइलों से लेकर जटिल PDF तक सब कुछ संभाल सकते हैं,
यह सुनिश्चित करते हुए कि आपकी अनुवादित सामग्री अपनी पेशेवर उपस्थिति बनाए रखती है। यह आपके अनुप्रयोगों को पारंपरिक अनुवाद विधियों के मैनुअल ओवरहेड के बिना वैश्विक दर्शकों की सेवा करने का अधिकार देता है।
जानें कि कैसे Doctranslate मूल लेआउट को संरक्षित करते हुए आपके दस्तावेज़ों का 100 से अधिक भाषाओं में तुरंत अनुवाद कर सकता है और फ़ॉर्मेटिंग भी बनाए रखता है।

हम आपको आधिकारिक दस्तावेज़ पर जाकर API की पूर्ण क्षमताओं का पता लगाने के लिए प्रोत्साहित करते हैं। वहां आपको समर्थित फ़ाइल स्वरूपों पर विस्तृत जानकारी मिलेगी,
शब्दावलियों (glossaries) जैसी उन्नत सुविधाओं, और अतिरिक्त कोड उदाहरणों के बारे में पता चलेगा। अपने व्यवसाय के लिए तेज़, सटीक और विश्वसनीय दस्तावेज़ अनुवाद को अनलॉक करने के लिए आज ही अपना एकीकरण बनाना शुरू करें।
प्लेटफ़ॉर्म को छोटे पैमाने की परियोजनाओं और एंटरप्राइज़-स्तर के उच्च-मात्रा वाले वर्कफ़्लो दोनों के लिए डिज़ाइन किया गया है।

Doctranslate.io - कई भाषाओं में तत्काल, सटीक अनुवाद

Để lại bình luận

chat