روسی سازی برنامه ها مسئله مهمی است ، به ویژه برای کاربرانی که به زبان های خارجی صحبت نمی کنند. اغلب اوقات ، کاربران برنامه دلفی تعجب می کنند که چگونه آن را روسی کنند.
دستورالعمل ها
مرحله 1
نکته این است که رمزگذاری های OEM و ANSI (که دلفی در آنها کار می کند) با هم مطابقت ندارند. آنها موقعیت های متفاوتی از نمادهای سیریلیک دارند. ANSI همچنین دارای شخصیت های برجسته است ، که OEM این ویژگی را ندارد. اما مورد دوم حاوی نمادهای شبه گرافیکی است که برای نمایش جداول ضروری است ، اگرچه تقاضای زیادی ندارد. و اما لازم به ذکر است که ، به طور کلی ، این جداول قابل تعویض هستند - آنها از همان امکانات برای نمایش اطلاعات متنی برخوردار هستند.
گام 2
روش های مختلفی برای حل مشکل روسی شدن وجود دارد. اولین مورد در ویرایشگر OEM کار می کند. در ابتدا می توانید قسمتهایی از متن برنامه را که برای جدول کد بسیار مهم است در ویرایشگری که در رمزگذاری OEM کار می کند آماده کنید. یک راه حل کاملاً ساده ، اما در عین حال کارآمد. این امر به ویژه برای نوشتن برنامه های محلی کاربردی ، که در آنها خروجی اطلاعات بسیار زیاد است ، صادق است.
مرحله 3
در مورد کاستی های این روش ، در اینجا می توانید کاری را با IDE ، که برای بسیاری آشنا است ، با زنگ ها و سوت های خود در زندگی عالی تعیین کنید ، مانند: کدگذاری ، تدوین ، اشکال زدایی. و همه اینها گفته می شود ، "در یک بطری". علاوه بر این ، با رشد پروژه ، برخی از مشکلات هنگامی که منابع رشته شخص ثالثی که با استفاده از رمزگذاری ANSI ایجاد شده اند ، شروع به آشکار شدن می کنند.
مرحله 4
اگر پروژه شامل رشته هایی نباشد که مستقیماً در کد گنجانده شده اند (سخت رمزگذاری شده) ، می توانید تمام منابع رشته را به ماژول های جداگانه منتقل کنید ، سپس آنها را در کدگذاری مورد نیاز بومی سازی کنید. خوشبختانه ، شبکه پر از برنامه های کاربردی است که رمزگذاری پرونده ها را تغییر می دهد.
مرحله 5
اکنون در مورد استفاده از روش های فیلتر کردن. Windows API شامل توابعی است که به شما کمک می کند کدگذاری ANSI و OEM را به یکدیگر تبدیل کنید. اینها OemToChar و CharToOem هستند. آنها برای نمایش متن با جایگزینی قطعات Writeln (‘متن ') استفاده می شوند. به قطعات زیر:
روش MyWriteln (ساختار S: رشته) ؛
var
NewStr: رشته؛
شروع
SetLengtn (NewStr ، طول (S)) ؛
CharToOem (PChar (S) ، PChar (NewStr)) ؛
Writeln (NewStr) ؛
پایان؛
MyWriteln (‘متن’) ؛
مرحله 6
در مورد معایب این روش ، عدم امکان استفاده از نحو توسعه یافته نوشتن و بهم ریختن متن برنامه با فراخوانی روشهای فیلتر است. هنگامی که نیاز دارید یک برنامه تمام شده را با چندین تماس برای نوشتن روسی کنید ، این یک مشکل جدی می شود.
مرحله 7
آخرین اما نه کمترین ، صفحه کد کنسول را با استفاده از Windows API تغییر دهید. اتفاقاً این روش مستند است. تنها نکته قابل توجه این است که این ویژگی در ویندوز 95 و 98 کار نمی کند. اگرچه اگر برنامه به طور انحصاری روی Windows NT اجرا شود ، در این حالت می توانید از تابع SetConsoleOutputCP (866) استفاده کنید.