Doctranslate.io

واجهة برمجة تطبيقات (API) لترجمة PDF: الحفاظ على التنسيق للغة اليابانية | دليل

نشر بواسطة

في

التحديات الفريدة لترجمة ملفات PDF عبر واجهة برمجة التطبيقات (API)

يُعد دمج واجهة برمجة تطبيقات (API) لترجمة PDF، خاصةً لتحويل المستندات من الإنجليزية إلى اليابانية، عقبة فنية كبيرة.
ملفات PDF ليست ملفات نصية بسيطة؛ بل هي مستندات معقدة ومكتفية ذاتيًا.
فهم هذه التعقيدات هو الخطوة الأولى نحو بناء سير عمل ترجمة موثوق.

تكمن الصعوبة الأساسية في بنية ملف PDF نفسها.
غالبًا ما لا يتم تخزين النص بترتيب خطي قابل للقراءة، مما يجعل استخراجه صعبًا.
يمكن أن يكون مجزأً أو متراكبًا مع الصور أو مضمنًا في رسومات متجهة، وهو ما لا تستطيع محللات النص القياسية التعامل معه.

علاوة على ذلك، يعد الحفاظ على التنسيق مهمة ضخمة.
تعتمد السلامة البصرية لملف PDF على الموضع الدقيق لكل عنصر، من مربعات النص إلى الجداول والصور.
يجب أن تعيد عملية الترجمة الآلية بناء هذا التنسيق بذكاء في اللغة المستهدفة، وهي مشكلة هندسية غير بسيطة.

يضيف ترميز الأحرف طبقة أخرى من التعقيد، خاصةً بالنسبة للغة اليابانية.
يمكن أن يؤدي عدم تطابق الترميزات بين ملف PDF المصدر ومحرك الترجمة إلى ‘mojibake’ أو نص مشوه.
يعد ضمان التعامل المتسق مع UTF-8 من الاستخراج إلى العرض أمرًا ضروريًا للغاية لعرض الأحرف اليابانية بدقة.

تقديم واجهة برمجة تطبيقات (API) Doctranslate لترجمة ملفات PDF بسلاسة

تم تصميم واجهة برمجة تطبيقات (API) لترجمة PDF من Doctranslate لحل هذه التحديات مباشرة.
فهي توفر للمطورين واجهة RESTful قوية لإجراء تحويلات المستندات المعقدة.
يمكنك التركيز على المنطق الأساسي لتطبيقك بينما نتولى نحن عملية الترجمة المعقدة وإعادة بناء الملفات.

تعتمد واجهة برمجة التطبيقات (API) الخاصة بنا على سير عمل غير متزامن بسيط ولكنه قوي من ثلاث خطوات.
أولاً، تقوم بتحميل مستندك، ثم تتحقق بشكل دوري من حالة الترجمة، وأخيراً تقوم بتنزيل الملف المكتمل.
تضمن هذه العملية التعامل مع ملفات PDF الكبيرة والمعقدة بكفاءة دون حظر تطبيقك.

نستخدم الذكاء الاصطناعي المتقدم لتحليل بنية PDF، وتحديد عناصر النص بدقة، وفهم التنسيق الأصلي.
يسمح هذا لمحركنا ليس فقط بترجمة النص ولكن أيضًا بإعادة تدفقه بذكاء في التصميم الحالي.
والنتيجة هي مستند مترجم يحافظ على مظهره الاحترافي وسهولة قراءته.

تتم إدارة جميع تفاعلات واجهة برمجة التطبيقات (API) من خلال طلبات HTTP قياسية، مع تسليم الاستجابات بتنسيق JSON نظيف.
هذا يجعل التكامل مباشرًا في أي لغة برمجة حديثة، من Python إلى JavaScript.
يمكنك بسهولة ترجمة ملف PDF الخاص بك من الإنجليزية إلى اليابانية والحفاظ على التنسيق والجداول بشكل مثالي، مما يضمن أن مستنداتك جاهزة لجمهور عالمي.

دليل خطوة بخطوة لتكامل واجهة برمجة التطبيقات (API)

سيرشدك هذا الدليل خلال العملية الكاملة لترجمة ملف PDF من الإنجليزية إلى اليابانية باستخدام واجهة برمجة التطبيقات (API) الخاصة بنا.
سنغطي كل شيء بدءًا من إعداد طلبك وحتى تنزيل المستند المترجم النهائي.
يتم توفير مثال كود Python كامل لتوضيح سير العمل في تطبيق عملي.

المتطلبات الأساسية: الحصول على مفتاح API الخاص بك

قبل أن تتمكن من إجراء أي استدعاءات لواجهة برمجة التطبيقات (API)، تحتاج إلى مفتاح API.
يوثق هذا المفتاح طلباتك ويجب تضمينه في رأس كل استدعاء تقوم به.
يمكنك الحصول على مفتاحك عن طريق التسجيل في بوابة مطوري Doctranslate.

مفتاح API الخاص بك هو بيانات اعتماد حساسة ويجب التعامل معه مثل كلمة المرور.
قم بتخزينه بشكل آمن، على سبيل المثال، كمتغير بيئة في تطبيقك.
لا تكشف عنه أبدًا في كود العميل أو تلتزم به في مستودع عام للتحكم في الإصدار.

الخطوة 1: تحميل ملف PDF للترجمة

الخطوة الأولى في العملية هي تحميل ملف PDF المصدر إلى نظامنا.
ستقوم بتقديم طلب POST إلى نقطة النهاية /v2/document/translate.
سيكون هذا الطلب طلب multipart/form-data يحتوي على الملف ومعلمات الترجمة.

تحتاج إلى تحديد اللغات المصدر والهدف باستخدام أكواد ISO 639-1 الخاصة بكل منها.
لهذا الدليل، ستقوم بتعيين source_language إلى ‘en’ للغة الإنجليزية.
ستقوم بتعيين target_language إلى ‘ja’ للغة اليابانية.

إليك مثال Python يوضح كيفية تحميل ملفك.
يستخدم هذا النص البرمجي مكتبة requests الشهيرة للتعامل مع طلب HTTP.
إنه يقرأ ملف PDF محليًا ويرسله مع معلمات اللغة المطلوبة.


import requests
import os

# مفتاح API الخاص بك من بوابة مطوري Doctranslate
API_KEY = "your_api_key_here"

# المسار إلى ملف PDF المصدر الخاص بك
FILE_PATH = "path/to/your/document.pdf"

# نقطة نهاية واجهة برمجة تطبيقات Doctranslate لترجمة المستندات
API_URL = "https://developer.doctranslate.io/v2/document/translate"

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

# تجهيز الملف للتحميل
with open(FILE_PATH, "rb") as file:
    files = {
        "file": (os.path.basename(FILE_PATH), file, "application/pdf")
    }
    
    data = {
        "source_language": "en",
        "target_language": "ja",
    }

    # إرسال الطلب إلى واجهة برمجة التطبيقات
    response = requests.post(API_URL, headers=headers, files=files, data=data)

    if response.status_code == 200:
        # عند النجاح، تُرجع واجهة برمجة التطبيقات document_id و status_url
        result = response.json()
        print(f"Success: {result}")
        document_id = result.get("document_id")
        status_url = result.get("status_url")
    else:
        # التعامل مع الأخطاء المحتملة
        print(f"Error: {response.status_code} - {response.text}")

عند نجاح الطلب، ستستجيب واجهة برمجة التطبيقات (API) بكائن JSON.
يحتوي هذا الكائن على document_id فريد و status_url.
يجب عليك تخزين document_id حيث ستحتاجه في الخطوات التالية.

الخطوة 2: التحقق من حالة الترجمة

نظرًا لأن ترجمة PDF قد تستغرق وقتًا طويلاً، فإن العملية غير متزامنة.
تحتاج إلى الاستقصاء عن نقطة نهاية الحالة لمعرفة متى يكون مستندك جاهزًا.
قم بتقديم طلب GET إلى نقطة النهاية /v2/document/status/{document_id}.

استجابة الحالة هي كائن JSON يتضمن حقل status.
القيم الممكنة لهذا الحقل هي ‘queued’ أو ‘processing’ أو ‘done’ أو ‘error’.
يجب عليك تنفيذ آلية استقصاء في تطبيقك، والتحقق من الحالة كل بضع ثوان.

يمكن تنفيذ حلقة استقصاء بسيطة مع تأخير قصير.
استمر في التحقق من الحالة حتى تصبح ‘done’ أو ‘error’.
تجنب الاستقصاء بشكل متكرر جدًا لاحترام حدود المعدل وتقليل الحمل غير الضروري على الخادم.

الخطوة 3: تنزيل ملف PDF المترجم

بمجرد أن يُرجع فحص الحالة ‘done’، يكون ملف PDF المترجم الخاص بك جاهزًا للتنزيل.
يمكنك استرداده عن طريق تقديم طلب GET إلى نقطة النهاية /v2/document/result/{document_id}.
ستُرجع نقطة النهاية هذه البيانات الثنائية لملف PDF المترجم النهائي.

يجب أن يكون تطبيقك مستعدًا للتعامل مع دفق استجابة ثنائي.
يجب عليك حفظ هذا الدفق مباشرة في ملف جديد بامتداد .pdf.
لا تحاول تفسير الاستجابة كنص أو JSON، لأن هذا سيؤدي إلى إتلاف الملف.

يوجد أدناه نص برمجي Python محدث يتضمن استقصاء الحالة وتنزيل الملف.
إنه يبني على خطوة التحميل السابقة لإنشاء سير عمل كامل.
يوفر هذا مثالًا كاملاً وعمليًا من البداية إلى النهاية.


import requests
import os
import time

# --- الإعدادات ---
API_KEY = "your_api_key_here"
FILE_PATH = "path/to/your/document.pdf"
OUTPUT_PATH = "path/to/translated_document.pdf"
BASE_URL = "https://developer.doctranslate.io/v2"

# --- الخطوة 1: تحميل المستند ---
def upload_document():
    print("الخطوة 1: جارٍ تحميل المستند...")
    headers = {"Authorization": f"Bearer {API_KEY}"}
    with open(FILE_PATH, "rb") as file:
        files = {"file": (os.path.basename(FILE_PATH), file, "application/pdf")}
        data = {"source_language": "en", "target_language": "ja"}
        response = requests.post(f"{BASE_URL}/document/translate", headers=headers, files=files, data=data)
        if response.status_code == 200:
            document_id = response.json().get("document_id")
            print(f"تم تحميل المستند بنجاح. المعرف: {document_id}")
            return document_id
        else:
            print(f"خطأ في التحميل: {response.status_code} - {response.text}")
            return None

# --- الخطوة 2: التحقق من الحالة ---
def check_status(document_id):
    print("الخطوة 2: جارٍ التحقق من حالة الترجمة...")
    headers = {"Authorization": f"Bearer {API_KEY}"}
    while True:
        response = requests.get(f"{BASE_URL}/document/status/{document_id}", headers=headers)
        if response.status_code == 200:
            status = response.json().get("status")
            print(f"الحالة الحالية: {status}")
            if status == "done":
                return True
            elif status == "error":
                print("فشلت الترجمة.")
                return False
            time.sleep(5)  # انتظر 5 ثوانٍ قبل الاستقصاء مرة أخرى
        else:
            print(f"خطأ في التحقق من الحالة: {response.status_code} - {response.text}")
            return False

# --- الخطوة 3: تنزيل النتيجة ---
def download_result(document_id):
    print("الخطوة 3: جارٍ تنزيل المستند المترجم...")
    headers = {"Authorization": f"Bearer {API_KEY}"}
    response = requests.get(f"{BASE_URL}/document/result/{document_id}", headers=headers, stream=True)
    if response.status_code == 200:
        with open(OUTPUT_PATH, "wb") as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
        print(f"تم تنزيل الملف بنجاح إلى {OUTPUT_PATH}")
    else:
        print(f"خطأ في تنزيل النتيجة: {response.status_code} - {response.text}")

# --- سير العمل الرئيسي ---
if __name__ == "__main__":
    doc_id = upload_document()
    if doc_id and check_status(doc_id):
        download_result(doc_id)

اعتبارات رئيسية للترجمة من الإنجليزية إلى اليابانية

تتضمن الترجمة من الإنجليزية إلى اليابانية أكثر من مجرد تبديل الكلمات.
هناك عوامل لغوية وتقنية محددة تتطلب معالجة دقيقة.
تم تصميم واجهة برمجة التطبيقات (API) الخاصة بنا للتعامل مع هذه الفروق الدقيقة، مما يضمن نتيجة عالية الجودة.

توسع النص وتقلصه

غالبًا ما يستخدم النص الياباني عددًا أقل من الأحرف لنقل نفس المعنى الموجود في اللغة الإنجليزية.
يمكن أن يؤدي هذا إلى تقلص النص، مما يخلق مساحة بيضاء غير ملائمة إذا لم يتم التعامل معها بشكل صحيح.
يقوم محرك التنسيق لدينا بضبط أحجام الخطوط والتباعد بذكاء لضمان ملاءمة المحتوى المترجم بشكل طبيعي داخل التصميم الأصلي.

على العكس من ذلك، قد تكون بعض المصطلحات الفنية أو المتخصصة أطول عند ترجمتها أو نقلها صوتيًا.
النظام قادر أيضًا على التعامل مع توسع النص عن طريق إعادة تدفق النص عبر الأسطر أو تغيير حجم مربعات النص.
هذه القدرة على التكيف هي مفتاح الحفاظ على مظهر احترافي للمستند بعد الترجمة.

عرض الخطوط واستبدالها

غالبًا ما تفتقر ملفات PDF من المناطق الناطقة باللغة الإنجليزية إلى الخطوط المضمنة اللازمة لعرض الأحرف اليابانية.
إذا لم يحتوي ملف PDF على الرموز الرسومية الضرورية، فسيظهر النص المترجم كمربعات أو رموز مشوهة.
تتعامل واجهة برمجة تطبيقات Doctranslate تلقائيًا مع استبدال الخطوط لمنع هذه المشكلة.

يقوم نظامنا بتضمين خطوط يابانية عالية الجودة ومتوافقة مع يونيكود في المستند النهائي.
يضمن هذا عرض جميع الأحرف، بما في ذلك Hiragana و Katakana و Kanji، بشكل صحيح.
والنتيجة هي مستند قابل للقراءة واحترافي، بغض النظر عن تثبيتات الخطوط المحلية للمستخدم.

الفروق الثقافية ونبرة الترجمة

تتمتع اللغة اليابانية بمستويات معقدة من الأدب والرسمية.
غالبًا ما تبدو الترجمة الحرفية المباشرة من الإنجليزية غير طبيعية أو حتى وقحة.
يعد استخدام النبرة الصحيحة أمرًا بالغ الأهمية للمستندات التجارية والقانونية والتسويقية.

تدعم واجهة برمجة التطبيقات (API) الخاصة بنا معلمة tone التي تسمح لك بتوجيه محرك الترجمة.
يمكنك تحديد نبرات مثل ‘Serious’ أو ‘Formal’ أو ‘Business’ لمواءمة المخرجات بشكل أفضل مع توقعات جمهورك.
توفر هذه الميزة طبقة إضافية من التوطين تتجاوز مجرد تحويل النص البسيط.

الخاتمة

يعد دمج واجهة برمجة تطبيقات (API) لترجمة PDF للتحويلات من الإنجليزية إلى اليابانية مهمة معقدة ولكنها قابلة للتحقيق.
من خلال الاستفادة من واجهة برمجة تطبيقات Doctranslate، يمكنك التغلب على التحديات الشائعة المتمثلة في تحليل الملفات والحفاظ على التنسيق والفروق الدقيقة الخاصة باللغة.
تعمل خدمتنا القوية والمستندة إلى RESTful على تبسيط سير العمل بأكمله للمطورين.

توفر العملية غير المتزامنة المكونة من ثلاث خطوات للتحميل والتحقق من الحالة والتنزيل حلاً قابلاً للتطوير وقويًا.
مع الميزات الشاملة التي تتعامل مع كل شيء بدءًا من استبدال الخطوط وحتى إعادة بناء التنسيق، يمكنك تقديم مستندات مترجمة عالية الجودة.
يتيح لك ذلك إنشاء تطبيقات عالمية قوية دون أن تصبح خبيرًا في الأجزاء الداخلية لملفات PDF.

Doctranslate.io - ترجمات فورية ودقيقة عبر العديد من اللغات

اترك تعليقاً

chat