تحويل صوتي إلى واجهة برمجة التطبيقات

تحويل صوتي بسيط

تسمح لك الطريقة التالية بإجراء عملية تحويل صوتي بسيطة بدون واجهة مستخدم عن طريق التلاعب بجافا سكريبت.

الطريقة الوصف

google.language.transliterate(wordsArray, srcLang, destLang, callback)

google.language.transliterate(wordsArray, srcLang, destLang, callback) هي طريقة عالمية لتحويل أحرف النص من لغة المصدر إلى لغة الوجهة. تعرض واجهة برمجة التطبيقات النتيجة بشكل غير متزامن مع دالة callback المحدّدة ككائن result. المعلمات لهذه الطريقة هي:

  • يوفر wordsArray النص الذي سيتم تحويله صوتيًا كمصفوفة.
  • srcLang يقدّم اللغة المصدر كرمز للغة. للحصول على أمثلة، يمكنك الاطّلاع على LanguageCode عدّة.
  • يقدّم destLang لغة الوجهة كرمز للغة. للحصول على أمثلة، يمكنك الاطّلاع على LanguageCode عدّة.
  • callback هي دالة رد الاتصال التي تتلقّى result.

قيمة المُرتَجع google.language.transliterate() ليست لها قيمة إرجاع.

تستخدم هذه الطريقة المبسّطة للترجمة الصوتية مساحة الاسم google.language.transliterate (وليس google.elements.transliteration، وهي مساحة الاسم لكل طريقة أخرى في واجهة برمجة تطبيقات التحويل الصوتي).

ينتج عن google.language.transliterate() العنصر result.

يتم إنشاء عناصر النتائج باستخدام ترميز JSON لطلبات الخادم. وبالتالي، لقد اخترنا عدم تنفيذ عناصر JavaScript الرسمية، وبدلاً من ذلك تم إنشاء عناصر result ديناميكيًا من النموذج التسلسلي.

وعلى الرغم من عدم توفّر أي تنفيذ رسمي للكائنات، فإنها متوفّرة ونوثِّقها كما لو كان هناك تنفيذ JavaScript احتياطي. وكل ما سبق هو تأثير ضئيل. وهذا يعني عدم توفّر طريقة وضع اسم. بالنسبة إلى كل نتيجة، يبدو الأمر كما لو كان النظام يُسمّى Object() جديدًا ثم يحدّد خصائص رسمية على ذلك الكائن. الخصائص أدناه.

  • <result>
    • error?
      مشاركة العرض في حال حدوث خطأ في التحويل الصوتي.
    • transliterations
      مصفوفة من الحجم تساوي حجم الإدخال wordsArray.
      • transliteratedWords
        مصفوفة من الحجم الأقصى 5، مع التحويل الصوتي للكلمة المقابلة في wordsArray.

مرجع JavaScript للتحكم في التحويل الصوتي

تسمح لك طريقة الإنشاء هذه والطرق التالية بإجراء التحويل الصوتي داخل واجهة مستخدم توفرها واجهة برمجة التطبيقات.

المُنشئ - google.elements.transliteration.TransliterationControl(options)

الشركة المصنِّعة الوصف

google.elements.transliteration.
TransliterationControl(options)

تتيح لك ميزة .TransliterationControl(options) كتابة لغة برايل على مجموعة من عناصر HTML DOM القابلة للتعديل وتوفّر عددًا من الأساليب التي تتيح لك التحكّم في الترجمة الصوتية في هذه العناصر. يمكن أن تحتوي الوسيطة options على الحقول التالية:

  • sourceLanguage هي سلسلة إلزامية تحدد اللغة المصدر باستخدام LanguageCode عدّة (كما هو الحال في google.elements.transliteration.ENGLISH). في الوقت الحالي، اللغة الإنجليزية هي اللغة المصدر الوحيدة المتوفرة.
  • destinationLanguage هي مصفوفة إلزامية تحدد اللغة الوجهة باستخدام LanguageCode عدّة كما في (كما في google.elements.transliteration.HINDI).

    في واجهة المستخدم، تظهر اللغات المقصودة المتوفرة في القائمة، مع تحديد اللغة الأولى في المصفوفة تلقائيًا. يُرجى الاطّلاع على getDestinationLanguage للحصول على المزيد من التفاصيل حول لغات الوجهة الصالحة للغة مصدر معيّنة.
  • transliterationEnabled هو حقل اختياري يحدد ما إذا كان سيتم تفعيل التحويل الصوتي تلقائيًا. إذا أردت تفعيل ميزة التحويل الصوتي تلقائيًا، حدِّد هذا الحقل بقيمة true. القيمة التلقائية هي false.
  • shortcutKey هو حقل سلسلة اختياري يحدد مفتاح الاختصار لتفعيل ميزة الترجمة الصوتية أو إيقافها. لتحديد مفتاح الاختصار، حدد سلسلة تحتوي على مفاتيح التعديل مثل 'Ctrl' أو&39;Alt' أو 'Shift' مع حرف أبجدي. على سبيل المثال، 'Ctrl+g' و 'Ctrl+Shift+a' هما مجموعتان صالحتان لمفاتيح الاختصارات.

    ملاحظة: لا يمكنك استخدام Shift كمفتاح التعديل الوحيد، ولكن يمكنك استخدامه مع Alt أو Control.

تؤدي هذه الطريقة إلى إنشاء استثناءات في الحالات التالية:

  • السمة sourceLanguage أو السمة destinationLanguage غير صالحة.
  • اللغات غير المتوفّرة في زوجَي اللغة sourceLangauge وdestinationLanguage
  • تركيبة غير صالحة لمفتاح الاختصار

يوضح مقتطف الرمز التالي كيفية إنشاء مثيل للتحكم في التحويل الصوتي:

function onLoad() {
  var options = {
    sourceLanguage: 'en',
    destinationLanguage: ['hi'],
    shortcutKey: 'ctrl+g',
    transliterationEnabled: true
  };

  // Create an instance on TransliterationControl with the required
  // options.
  var control = new google.elements.transliteration.TransliterationControl(options);
}

طرق التحكم في التحويل الصوتي

يتم تنفيذ الطرق التالية على مساحة الاسم google.elements.transliteration.TransliterationControl.

الطريقة الوصف

.addEventListener(eventType, listener, opt_listenerScope)

يضيف .addEventListener(eventType, listener, opt_listenerScope) أداة معالجة للمستمع إلى عنصر التحكم في التحويل الصوتي لنوع الحدث المحدد. عند تشغيل نوع الحدث المعيّن، يتم استدعاء المستمع باستخدام كائن الحدث. يعتمد محتوى كائن الحدث على نوع الحدث. المعلمات لهذه الطريقة هي:

  • eventType هو الحدث الذي تتم إضافة المستمع إليه. تأخذ هذه الوسيطة قيمتها من تعداد eventType (مثل google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • توفّر دالة listener وظيفة استماع للحدث.
  • يستدعي opt_listenerScope المستمع عند ضبط this على العنصر المحدّد في opt_listenerScope.

قيمة المُرتَجع .addEventListener() ليست لها قيمة إرجاع.

.disableTransliteration()

.disableTransliteration() يوقف الترجمة الصوتية في عنصر التحكم في التحويل الصوتي. لا تحتوي هذه الطريقة على أي وسيطات ولا تكون لها قيمة عرض.

.enableTransliteration()

.enableTransliteration() تتيح ميزة التحويل الصوتي في ميزة التحكم بالكتابة الصوتية. لا تحتوي هذه الطريقة على أي وسيطات ولا تكون لها قيمة عرض.

.isTransliterationEnabled()

.isTransliterationEnabled() لا يحتوي على وسيطات ويعرض قيمة منطقية تشير إلى ما إذا كان سيتم تفعيل التحويل الصوتي في عنصر التحكم في التحويل الصوتي.

.makeTransliteratable(elementIds, opt_options)

.makeTransliteratable(elementIds, opt_options) تتيح ميزة كتابة لغة برايل على عناصر HTML التي يتم توفيرها. المعلمات لهذه الطريقة هي:

  • elementIds هو مصفوفة تحتوي على سلاسل من معرّفات العناصر القابلة للتعديل أو مراجع العناصر التي تريد تفعيل ميزة التحويل الصوتي لها. يمكن أن يكون العنصر القابل للتعديل ما يلي:

    • حقل نص
    • منطقة نص
    • &<div> مع contentEditable="true"
    • <iframe> مع designMode="on"
    • إطار iFrame مع نص contentEditable="true". تأكد من تحميل إطار iFrame قبل تفعيل التحويل الصوتي.
  • opt_options هي وسيطة اختيارية تقدم الخيارات التي يتم تطبيقها على هذه العناصر. ويمكن أن تحتوي هذه الوسيطة على الحقول التالية:
    • adjustElementStyle هو حقل اختياري اختياري يتحكّم في إمكانية تعديل واجهة برمجة التطبيقات تلقائيًا لأحجام العناصر والخطوط لتتناسب مع أحرف اللغة المستهدفة على النحو الأمثل. القيمة التلقائية هي true. ولا يؤثر هذا الخيار إلا في عناصر النص العادي.
    • adjustElementDirection هو حقل اختياري اختياري يتحكّم في اتجاه العنصر القابل للتعديل وفقًا لاتجاه destinationLanguage. القيمة التلقائية هي true.

بالنسبة إلى أنظمة الكتابة من اليمين إلى اليسار مثل اللغة العربية، تعمل واجهة برمجة التطبيقات على تعديل اتجاه عنصر الإدخال تلقائيًا وفقًا لاتجاه النص البرمجي المكتوب ومحتوى عنصر الإدخال. يمكنك ضبط اتجاه النص في عنصر إدخال باستخدام HTML وJavaScript باستخدام direction، والتي يمكن أن تحتوي على القيمة 'ltr' (من اليسار إلى اليمين) أو 'rtl' (من اليمين إلى اليسار). يؤثر استخدام هذا الأسلوب على مؤشر النص ومحاذاة النص في منطقة الإدخال.

يمكنك الاطّلاع على مثال حول توافق واجهة برمجة التطبيقات مع اللغات التي تُكتب من اليمين إلى اليسار في مثال التحويل الصوتي باللغة العربية.

تنشئ هذه الطريقة استثناءات إذا كان أي من elementIds المحدّدة غير صالح.

قيمة المُرتَجع .makeTransliteratable() ليست لها قيمة إرجاع.

.removeEventListener(eventType, listener, opt_listenerScope)

يزيل .removeEventListener(eventType, listener, opt_listenerScope) أداة معالجة الحدث من وحدة التحكم في التحويل الصوتي، حيث:

  • تأخذ هذه الوسيطة قيمتها من تعداد eventType (مثل google.elements.transliteration.TransliterationControl. EventType.STATE_CHANGED)).
  • listener هي الدالة التي تحتاج إلى إزالة الحدث.
  • opt_listenerScope هو النطاق الذي تم تسجيل المستمع فيه عند إضافة المستمع.

قيمة المُرتَجع .removeEventListener() ليست لها قيمة إرجاع.

.setLanguagePair(sourceLanguage, destinationLanguage)

يسمح لك .setLanguagePair(sourceLanguage, destinationLanguage) بتغيير زوج اللغات الذي يستخدمه عنصر التحكم في التحويل الصوتي ديناميكيًا، حيث:

  • sourceLanguage يوفِّر نوع اللغة التي يمكن تحويلها إلى نص. تأخذ هذه الوسيطة قيمتها من تعداد LanguageCode (مثل google.elements.transliteration.TransliterationControl. LanguageCode.ENGLISH)).
  • الوجهة (اللغة) توفر نوع اللغة للنص المُترجَم.

تعرض .setLanguagePair() قيمة منطقية تشير إلى ما إذا كان الإجراء setLanguage قد تم بنجاح.

.showControl(divElement)

تعرض .showControl(divElement) عنصر التحكم في التحويل الصوتي في DIV المحدد، حيث divElement هو معرف DIV. لا تحتوي هذه الطريقة على قيمة عرض.

.toggleTransliteration()

.toggleTransliteration() يفعّل ميزة تحويل الصوت إلى نص أو أوقِفها من خلال عنصر التحكّم في التحويل الصوتي. لا تحتوي هذه الطريقة على أي وسيطات ولا تكون لها قيمة عرض.

طريقة ثابتة

يتم تنفيذ الطريقة الثابتة التالية على مساحة الاسم google.language.

طريقة ثابتة الوصف

.setOnLoadCallback(callback)

.setOnLoadCallback(callback) هي دالة ثابتة تسجّل دالة المعالج المحدّدة ليتم طلبها بعد تحميل الصفحة التي تحتوي على هذه المكالمة، حيث تكون callback دالة مطلوبة عند تحميل المستند المتضمّن وعندما تكون واجهة برمجة التطبيقات جاهزة للاستخدام (على سبيل المثال، بعد onLoad). يتم تنفيذ هذه الدالة على مساحة الاسم google (أي، google.setOnLoadCallback(callback);.)

قيمة المُرتَجع .setOnLoadCallback() ليست لها قيمة إرجاع.

ملاحظة: يُنصح باستخدام المستندات السابقة عند استخدام عنصر on\u30;s onload item's onload (<body onload="OnLoad()">). وتُعدّ هذه طريقة جيدة أثناء التحكّم الكامل في الصفحة وجميع الرموز التي يتم تحميلها بواسطة الصفحة، إلا أن هذه الطريقة قد تسبب مشاكل في بعض أوقات التشغيل التي تدمّر معالِج body.onload. لا يواجه setOnLoadCallback() هذه المشاكل، ومن ثم تكون الطريقة الموصى بها لتسجيل معاودة الاتصال التي تطلب الرمز الخاص بك عندما يتم تحميل واجهة برمجة التطبيقات بشكل كامل وجاهزة للاستخدام.

يتم تنفيذ الطريقة الثابتة التالية على مساحة الاسم google.elements.transliteration.

طريقة ثابتة الوصف

.getDestinationLanguages(sourceLanguage)

.getDestinationLanguages(sourceLanguage) هي طريقة عالمية تعرض خريطة للغات الوجهة التي يتوافق معها التحويل الصوتي للغة sourceLanguage المحددة. تحتوي الخريطة المعروضة على لغات مقصودة متوافقة، يكون المفتاح فيها اسم اللغة والقيمة هي رمز اللغة. الخريطة المعروضة مشابهة للخريطة الموضحة في LanguageCode تعداد.

عمليات التعداد

تعداد نوع الحدث

يسرد تعداد google.elements.transliteration.TransliterationControl.EventType الأحداث التي يمكن إجراؤها أثناء التحويل الصوتي. يمكنك تقديم معالجات مخصّصة لهذه الأحداث في رمزك.

var google.elements.transliteration.TransliterationControl.EventType = {
   STATE_CHANGED : 'state_changed',
   LANGUAGE_CHANGED : 'language_changed',
   SERVER_REACHABLE : 'server_reachable',
   SERVER_UNREACHABLE : 'server_unreachable'
};
  • google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED: النتائج التي يتم عندها تفعيل ميزة التحويل الصوتي أو إيقافها في عنصر التحكّم في الترجمة الصوتية:
    • مفتاح اختصار
    • الطريقة enableTransliteration أو disableTransliteration أو toggleTransliteration
    • النقر على الماوس على عنصر التحكم في التحويل الصوتي المرسوم بالأسلوب showControl.
    يحتوي كائن الحدث الذي يتم تمريره إلى المستمع على الحقل transliterationEnabled. وينطبق هذا الحقل على ما إذا كانت ميزة التحويل الصوتي هي 'on'، وبخلاف ذلك تكون خاطئة.
  • google.elements.transliteration.TransliterationControl.EventType.LANGUAGE_CHANGED: النتائج التي يتم عندها تغيير زوج اللغة في ميزة التحكم في التحويل الصوتي من خلال:
    • الطريقة setLanguagePair
    • عنصر التحكم في التحويل الصوتي المرسوم بالأسلوب showControl
    يحتوي كائن الحدث الذي يتم تمريره إلى المستمع على الحقلين sourceLanguage وdestinationLanguage.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE: النتائج التي تظهر عند الاتصال بالخادم بنجاح لتحويل الصوت إلى نص.
  • google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE ينتج عن محاولة فاشلة للاتصال بالخادم لتحويل الصوت إلى نص.

تعداد اللغة

يربط google.elements.transliteration.LanguageCode ثوابت الاسم برموز اللغات التي يمكنك استخدامها لتحديد اللغتين المصدر والوجهة في طرق التحويل الصوتي.

var google.elements.transliteration.LanguageCode = {
    ENGLISH: 'en',
    AMHARIC: 'am',
    ARABIC: 'ar',
    BENGALI: 'bn',
    CHINESE: 'zh',
    GREEK: 'el',
    GUJARATI: 'gu',
    HINDI: 'hi',
    KANNADA: 'kn',
    MALAYALAM: 'ml',
    MARATHI: 'mr',
    NEPALI: 'ne',
    ORIYA: 'or',
    PERSIAN: 'fa',
    PUNJABI: 'pa',
    RUSSIAN: 'ru',
    SANSKRIT: 'sa',
    SINHALESE: 'si',
    SERBIAN: 'sr',
    TAMIL: 'ta',
    TELUGU: 'te',
    TIGRINYA: 'ti',
    URDU: 'ur'
};

عدّة اللغات المعتمَدة

يربط تعداد google.elements.transliteration.SupportedDestinationLanguages ثوابت الاسم بمصفوفات رموز اللغات التي يمكنك استخدامها لتحديد مجموعات من اللغات المقصودة في عنصر التحكم بالكتابة الصوتية.

var google.elements.transliteration.SupportedDestinationLanguages = {
    // ALL includes all languages supported in the Transliterate API.
    // As support for more languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    ALL: [
        google.elements.transliteration.LanguageCode.AMHARIC,
        google.elements.transliteration.LanguageCode.ARABIC,
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.CHINESE,
        google.elements.transliteration.LanguageCode.GREEK,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PERSIAN,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.RUSSIAN,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SERBIAN,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.TIGRINYA,
        google.elements.transliteration.LanguageCode.URDU],
 
    // INDIC includes all Indic languages supported in the Transliterate API.
    // As support for more Indic languages becomes available, this enum will be
    // automatically updated to include the new languages transparently.
    INDIC: [
        google.elements.transliteration.LanguageCode.BENGALI,
        google.elements.transliteration.LanguageCode.GUJARATI,
        google.elements.transliteration.LanguageCode.HINDI,
        google.elements.transliteration.LanguageCode.KANNADA,
        google.elements.transliteration.LanguageCode.MALAYALAM,
        google.elements.transliteration.LanguageCode.MARATHI,
        google.elements.transliteration.LanguageCode.NEPALI,
        google.elements.transliteration.LanguageCode.ORIYA,
        google.elements.transliteration.LanguageCode.PUNJABI,
        google.elements.transliteration.LanguageCode.SANSKRIT,
        google.elements.transliteration.LanguageCode.SINHALESE,
        google.elements.transliteration.LanguageCode.TAMIL,
        google.elements.transliteration.LanguageCode.TELUGU,
        google.elements.transliteration.LanguageCode.URDU]
};

تحديد المشاكل وحلّها

في حال مواجهة مشاكل:

  • ابحث عن الأخطاء الإملائية. تذكّر أنّ لغة JavaScript هي لغة حساسة لحالة الأحرف.
  • استخدام برنامج تصحيح الأخطاء في JavaScript يتضمن Google Chrome مجموعة كاملة من أدوات المطوّرين. في Firefox، يمكنك استخدام وحدة تحكُّم JavaScript أو Firebug. في IE، يمكنك استخدام Microsoft Script Debugger.
  • ابحث في مجموعة المناقشة. إذا لم تتمكن من العثور على مشاركة تجيب عن سؤالك، فانشر سؤالك على المجموعة مع رابط يؤدي إلى صفحة ويب توضّح المشكلة.