•  بے نور روشنی

MTR: متعدد ترجمے۔

اندرونی استعمال کے لیے ترجمے کی خدمات کو سمیٹنا۔

ویب سائٹ شائع کرتے وقت آپ مختلف تراجم پیش کرنا چاہتے ہیں۔ کچھ لوگ خودکار مترجم کو پسند نہیں کرتے ، میں سمجھتا ہوں کہ ایک خودکار ترجمہ کافی اچھا ہے ، اور کسی بھی چیز سے بہتر نہیں ہے ، اور خودکار مترجموں نے ترقی کے ساتھ ترقی کی ہے این ایل پی اور ایم ایل.

عام ترجمہ کی خدمات گوگل ، بنگ ، یاندیکس ہیں۔ یہ ایک مفت ٹیر پیش کرتے ہیں جسے ہم اپنے ذاتی استعمال کے لیے لپیٹنا چاہتے ہیں۔ اس کے علاوہ اور بھی کم معروف ہیں۔ ترجمہ کی خدمات ، اور ان میں سے کچھ لکھنے کے وقت بند ہیں ...

کیشنگ ٹیکسٹ۔

اگر ہم تراجم کو کیش کرنا چاہتے ہیں تو ، ہمیں مطلوبہ متن کو چھوٹے ڈوروں میں تقسیم کرنے کی ضرورت ہے تاکہ وہ مستقبل کے ممکنہ درخواستوں کے لیے ہٹ فراہم کرنے کے لیے اتنے چھوٹے ہوں۔ کی ٹریڈ آف یہ ہے کہ چھوٹے جملوں کے ترجمہ میں کم سیاق و سباق ہوتا ہے ، جو ترجمہ کے معیار کو کم کرتا ہے۔

ہم آنے والے متن کو اس طرح کیسے تقسیم کرتے ہیں کہ ہم ترجمہ شدہ متن سے اصل کو دوبارہ تشکیل دے سکیں یہ ایک چال ہے یا ہیک ہے۔ ہم ایک تار کو اس قدر عجیب و غریب تلاش کرنا چاہتے ہیں کہ ترجمہ سروس اسے چھوڑ دے۔ جیسے کہ یہ ہے اس کی پیداوار میں. مجھے کی مختلف حالتیں ملی ہیں۔ پیراگراف کردار اکثر اوقات کام کرنا۔

$this->misc['glue'] = ' ; ¶ ; ';
$this->misc['splitGlue'] = '/\s?;\s?¶\s?;?\s?/';

کیglue سٹرنگ کو جوڑنے کے لیے استعمال کیا جاتا ہے۔ تمام ڈور (اصل درخواست سے تقسیم) میں ایک اپ اسٹریم ٹرانسلیشن کی درخواست کے لیے سنگل باڈی جو ہم بھیج رہے ہیں۔ گوگل کیsplitGlue اس کے بجائے موصول شدہ ترجمہ کو اس تار میں تقسیم کرنے کے لیے استعمال کیا جاتا ہے جسے ہم کیش کرنے جا رہے ہیں۔ ہم یہاں دیکھتے ہیں کہ ڈور تقسیم کرنا صرف کیشنگ کے لیے مفید نہیں ہے ، بلکہ۔ درخواستوں کی تعداد کم کریں، کیونکہ اگر ہماری ڈاؤن اسٹریم درخواست بہت سے چھوٹے سوالات کرتی ہے تو ، ہم اپنی مشینری کو اپ اسٹریم سروس کے ذریعہ زیادہ سے زیادہ پے لوڈ سائز تک کی درخواستوں کو ضم کرنے کے لیے استعمال کرتے ہیں۔

انٹرفیس۔

متعدد خدمات کی حمایت کے لیے۔ شفاف طریقے سے میں نے ایک انٹرفیس لکھا جو اس اے پی آئی پر طے ہوا۔

function__construct(
    Mtr &$mtr,
    Client &$gz,
    TextReq &$txtrq,
    LanguageCode &$ld);
functiontranslate($source, $target, $input);
functiongenReq(array$params);
functionpreReq(array &$input);
functiongetLangs();

لہذا آپریشنل ہونے والی سروس کو ٹرانسلیٹ فنکشن ، درخواستوں کا ترجمہ کیسے کرنا ہے ، اور معاون زبانوں کی فہرست فراہم کرنا ہے۔ معاون زبانوں کی فہرست کے ساتھ ہم ایک ایسا میٹرکس بنا سکتے ہیں کہ ہم جانتے ہیں کہ کتنی خدمات مخصوص زبان کے جوڑوں کو سپورٹ کرتی ہیں ، زبان کے جوڑے ہم سروس کے ذریعے لوٹی گئی نمائندگی کو ایک عام میں تبدیل کرتے ہیں۔iso639-1.

ترجمہ مثال کی تخلیق درخواستوں کے اختیارات کو ترتیب دینے کی بھی اجازت دیتی ہے۔Guzzle کلائنٹ مثال کے طور پر کہ ہم مثال کے طور پر درخواستیں کرنے کے لیے پراکسی استعمال کر سکتے ہیں۔ خدمات ہیں۔ کیش پہلی بار پیدا ہونے کے بعد ، یہ مفید ہے کیونکہ کچھ خدمات کو کچھ ابتدائی ٹوکن بنانے کی ضرورت ہوتی ہے ، اور ہم ہر بار انہیں دوبارہ تخلیق نہیں کرنا چاہتے ہیں۔

گو ورژن۔

میں نے ایک بھی لکھا۔ گولنگ میں ورژن. پی ایچ پی ورژن آپ کے پی ایچ پی پروجیکٹ میں درآمد کرکے استعمال کیا جائے گا ، جبکہ گو ورژن اسٹینڈ اسٹون (مائیکرو) سروس کے طور پر کام کرتا ہے۔ گو ورژن بہت زیادہ زبانی ہے کیونکہ اس کے لیے سخت قسم کی جانچ پڑتال کی ضرورت ہوتی ہے اور چونکہ ہم ایک سے زیادہ ڈوروں کے استفسار کی حمایت کرتے ہیں ، اس لیے ہمیں مختلف ان پٹ کمبی نیشنز کے ساتھ کام کرنے والی اے پی آئی کو بے نقاب کرنا پڑتا ہے ، اور گو جینریکس کی کمی عملدرآمد کو بہت تکلیف دہ بناتی ہے ، لیکن اس نے پیشکش کی سمورتی پروسیسنگ ، اور عام طور پر بہت تیز تھا۔

آدانوں کی صفائی۔

ترجمہ کے ساتھ مل کر میں نے ایک سروس بھی بنائی۔ html صاف کریں۔ . ہم کچھ HTML ٹیگز کو وائٹ لسٹ کرتے ہیں اور باقی کو ضائع کردیتے ہیں۔ ہم سپیم نما ڈپلیکیٹ اوقاف اور نامعلوم ایچ ٹی ایم ایل اوصاف کو بھی ہٹاتے ہیں ، اور لنکس کو مناسب اینکر ٹیگز میں لپیٹ دیتے ہیں۔

خود میزبانی:

نتائج

آج کل مجھے لگتا ہے کہ میں صرف ایک خود میزبانی حل استعمال کروں گا ، جوشوا یا ارگوس کے ذریعہ فراہم کیا گیا ہے ، چونکہ میرا مقصد بہترین ترجمہ نہیں ہے ، میں ایک ویب سائٹ کے لیے پڑھنے کے قابل ترجمہ پیش کرنا چاہتا ہوں ، تاکہ اسے بغیر کسی رگڑ کے چلایا جا سکے۔

پوسٹ ٹیگز: