الفيديو والترجمات · مجموعة أدوات الترجمة
كيف يتم تحرير ملف الترجمة دون مغادرة جهازك: ملف API إلى Blob
· كيف يعمل
ترجمات معالجة المتصفح خصوصية
تقوم أدوات ملفات ToolAcre بقراءة الملفات وكتابتها داخل علامة التبويب. يشرح هذا المنشور واجهات برمجة التطبيقات للمتصفح التي تجعل ذلك ممكنًا لملف الترجمة، بدءًا من منتقي الملفات وحتى رابط التنزيل، وكيفية التأكد من عدم تحميل أي شيء.
النص سري ويريد منك المحول تحميله - تحل المشكلة المعالجة من جانب المتصفح
إن نص الإيداع ليس ملفًا تقوم بتسليمه إلى خدمة ويب لمعرفة ما إذا كان التحويل يعمل أم لا. معظم المحولات عبر الإنترنت تعمل بنظام التحميل والإرجاع: تذهب البايتات إلى الخادم، ويحدث شيء ما، وتعود النتيجة. بالنسبة للمواد السرية التي تعتبر إفصاحًا، وقد حدث ذلك بالفعل بحلول الوقت الذي ترى فيه المخرجات.
المعالجة من جانب المتصفح تزيل السؤال. يتم فتح الملف بواسطة الصفحة بدلاً من إرساله إليها، ويتم تشغيل كل تحويل مقابل نسخة في الذاكرة، وتتم إعادة كتابة النتيجة إلى القرص من نفس علامة التبويب. المطالبة قابلة للاختبار، وهو أمر أكثر أهمية من المطالبة، لأن لوحة الشبكة ستعرض ما إذا كان أي طلب يحمل المحتويات.
تحديد ملف: كائن الملف - كيف يمنح المتصفح الصفحة مقبضًا للبايتات دون إرسالها إلى أي مكان
اختيار ملف من خلال إدخال ملف لا ينقل أي شيء. تتلقى الصفحة كائن ملف، وهو عبارة عن مقبض: اسم وحجم ونوع ومرجع يمكن للمتصفح القراءة منه. لا يعد تحديد ملف بمثابة تحميل، ولا شيء يتعلق بالضغط على هذا المقبض يؤدي إلى طلب. تبقى البايتات في مكانها حتى يطلبها الكود.
هذا التمييز هو الأساس الكامل للمعالجة المحلية، وهو أيضًا سبب كون خاصية الخصوصية خاصية للكود وليس للمتصفح. الصفحة التي تحتوي على كائن ملف قادرة تمامًا على نشره في مكان ما. ما يجعل الأداة محلية هو أنها لا تفعل ذلك.
قراءة النص محليًا — File.text() وTextDecoder يحولان البايتات إلى إشارات في الذاكرة
قراءة النص تستدعي طريقة النص File API، والتي تتحول إلى سلسلة تم فك ترميزها كـ UTF-8. يتم تحليل هذه السلسلة إلى إشارات في الذاكرة، وكل عملية لاحقة تعمل على تلك الكائنات: يضيف النقل طوابع زمنية صحيحة بالمللي ثانية، وينظف البدائل على النص، ويسير التحقق من الصحة في القائمة بحثًا عن أخطاء الترتيب والمدة. ولا يمس أي منها الملف الأصلي، الذي لم تتم الكتابة إليه مطلقًا.
نظرًا لأن التحليل ينتج كائنات عادية، فإن الملف الموجود على القرص لا يتم لمسه حتى إذا تم إغلاق علامة التبويب أثناء التحرير. لا توجد نسخة مؤقتة للتنظيف ولا يوجد مخرجات مكتوبة جزئيًا، نظرًا لأن الكتابة تتم فقط عند طلب التنزيل.
لماذا يتم تشغيل هذا على مؤشر الترابط الرئيسي بدلاً من عامل الويب، وما الذي يفعله سقف الحجم بالفعل
يتوقع مخطط المصنف أن يتم تشغيل هذه المرحلة في Web Worker، وبالنسبة للعديد من أدوات ToolAcre، فإنه يتوقع تشغيلها؛ يقوم كل من تطبيقات CSV والصورة وPDF بنقل عملهم الثقيل خارج الموضوع الرئيسي. تطبيق الترجمة لا يفعل ذلك عمدًا، ويتم تسجيل السبب في مصدره الخاص: يضيف العامل حزمة ثانية ووضع فشل ثانٍ للعمل الذي لا يحتاج إليه، لأن ملف التسمية التوضيحية بطول الميزة يبلغ بضع مئات من الكيلوبايت ويتم تحليله بالمللي ثانية.
التحذير الصادق هو سقف الحجم. يتم فرض حد عشرة ميغا بايت قبل التحليل والتسمية على صفحة الأداة، لكن الأداة توثق أنه تم تخطي عملية التحقق لأي شيء مسمى بامتداد الترجمة، لذلك يتم تحميل ملف ترجمة كبير الحجم ويحظر الصفحة بدلاً من رفضه. هذه نتيجة حقيقية للتشغيل على الخيط الرئيسي، وهي موثقة وليست مخفية.
إعادة الكتابة: Blob وسمة التنزيل - كيف يصل الملف المحرر إلى القرص الخاص بك كتنزيل جديد
تؤدي إعادة الكتابة إلى إنشاء كائن Blob من النص المتسلسل وتسليمه إلى المتصفح للتنزيل. يتم تغليف النص بنوع وسائط واضح يحمل مجموعة أحرف UTF-8، ويتم إنشاء كائن URL لتلك النقطة الكبيرة، ويتم النقر على نقطة الارتساء التي تحمل سمة التنزيل، وتتم إزالة نقطة الارتساء. يصل الملف إلى مجلد التنزيلات كملف جديد؛ الأصلي لم يتم تعديله.
يتم تأجيل الإلغاء عمدا وليس فوريا. يمكن أن يؤدي إبطال الكائن URL بشكل متزامن بعد النقر إلى إلغاء التنزيل في بعض المتصفحات، لذلك يتم جدولة مهمة كبيرة واحدة لاحقًا، وهو أمر آمن وسريع. هذا هو نوع التفاصيل التي تظهر فقط عند فشل بدء التنزيلات بشكل متقطع.
مثال عملي: مشاهدة لوحة الشبكة أثناء التحويل الكامل وإعادة الوقت - لوحة هادئة من الملف المفتوح إلى حفظ الملف
عناوين URL للكائنات هي الجزء الذي يتسرب إذا لم يشاهده أحد. تمت كتابة الدرس في مساعد المستودع: قام مشروع تم تدقيقه بإنشاء عناوين URL للكائنات في عدة أماكن وإبطالها في الصفر بالضبط، لذلك احتفظت كل معاينة بالكائن الثنائي الكبير الخاص بها طوال عمر علامة التبويب. على الهاتف، تكفي مجموعة من الصفحات النقطية للمتصفح لإغلاق علامة التبويب.
والعلاج هيكلي وليس تأديبي. لا شيء يستدعي المتصفح API مباشرة؛ يقوم المساعد ذو النطاق بتشغيل التعليمات البرمجية الخاصة بك باستخدام URL وإبطالها عندما يستقر هذا الرمز، عند النجاح، عند الرمي والرفض على حد سواء، ويقدم المقبض المُدار إبطالًا غير فعال للحالات التي تتجاوز وظيفة واحدة. التنظيف الصحيح هو الإجراء الافتراضي وليس شيئًا يجب أن يتذكره كل موقع اتصال.
ما لا يغطيه هذا هو أن الأداة لا يمكنها حماية ملف قمت بتحميله لاحقًا إلى مكان آخر؛ تنتهي الخصوصية حيث يترك سير عملك علامة التبويب
للتحقق بدلاً من الثقة، افتح لوحة الشبكة قبل تحديد الملف واتركها مفتوحة خلال المهمة بأكملها. اختر الملف، وقم بتحويله، وأعد تشغيله، وقم بتنزيل النتيجة. تظهر طلبات الصفحة والبرامج النصية الخاصة بها عند تحميل الصفحة؛ ما لا ينبغي أن يظهر هو أي طلب حمولته هي الملف. احتفظ بالسجل خلال الجلسة بأكملها حتى لا يتم تفويت أي شيء بين الخطوات.
اثنين من المؤهلات صادقة. يمكن للصفحة تحميل تحليلات أو نصوص إعلانية من مصادر أخرى، وتكون تلك التحليلات مرئية في نفس اللوحة وتكون بمثابة سؤال منفصل عما إذا كان ملفك قد تم إرساله أم لا. وتنتهي الخاصية عند علامة التبويب: لا يمكن للأداة التي تتم معالجتها محليًا حماية ملف ترسله بالبريد الإلكتروني لاحقًا أو مزامنته مع وحدة التخزين السحابية أو لصقه في خدمة أخرى. تعمل المعالجة المحلية على تضييق نطاق التعرض لجهازك؛ ولا يتبع الملف بعد ذلك.
الوجبات الجاهزة: الملف الخاص بك، وعلامة التبويب الخاصة بك، والقرص الخاص بك - كيف تقوم مجموعة أدوات الترجمة بالمهمة بأكملها محليًا وتتيح لك التحقق منها
المسار هو مقبض الملف، والنص الموجود في الذاكرة، وإشارات الذاكرة، وBlob، والتنزيل، ولا شيء في هذا التسلسل يتطلب خادمًا. تتم قراءة الملف بواسطة الصفحة بدلاً من إرساله إليها، وتحويله ككائنات، ثم إعادة كتابته كملف جديد، مع عدم المساس بالأصل طوال الوقت.
السبب وراء تفضيل ذلك بالنسبة للمواد السرية ليس أنه تم تقديم وعد، ولكن أن المطالبة يمكن التحقق منها خلال دقيقة واحدة تقريبًا. افتح لوحة الشبكة أولاً، وقم بالمهمة بأكملها، واقرأ السجل. ستظهر لك الأداة التي تتم معالجتها محليًا لوحة بدون أي طلب يحمل نصك، وهو ضمان أقوى من أي سياسة خصوصية.