Fa اطلاع از تنظیمات زبان ویندوز

با سلام
راستش برای پاسخ زحمات شما آقای کینگ که این چند روز به سوالاتم جواب دادید تنها کاری که بنظرم اومد در بخش درباره نرم افزار که واسه برنامم ساختم اسمتون را اوردم و ازتون تشکر کردم امید که تونسته باشم خوشحالتون بکنم

خدا را شکر با راهنمایی های شما و تحقیقات خودم مشکلات مرتفع میشن

همونطور که خودتون میدونید اگر ما در داخل یک فایل متنی تکست که با نوت پد ساخته شده فارسی بنویسیم و موقع ذخیره utf8 را انتخاب نکنیم یعنی با استاندارد ansi فایل را ذخیره بکنیم فایل فوق در ویندوزی که تنظیمات زبانش فارسی نباشه درهم ریخته و ناخانا و بعضا به شکل علامت سوال یا مربع دیده خواهد شد که اهل فن با دیدن همین میفهمن ویندوز روی زبان فارسی نیستش حالا سوال اینکه به روش برنامه نویسی چطور میشه فهمید ویندوز روی زبان فارسی هستش یا نه؟
که حالا در ادامه از کاربر بخواهیم ویندوز را روی حالت فارسی قرار بده یا خودم یه واسطه بنویسم اتوماتیک اینکار را انجام بده. البته مساله ری استارت شدن هم خودش باز داستانیه که حالا پله اول را کمک بکنید خدا بزرگه
 

the_king

مدیرکل انجمن
با سلام
راستش برای پاسخ زحمات شما آقای کینگ که این چند روز به سوالاتم جواب دادید تنها کاری که بنظرم اومد در بخش درباره نرم افزار که واسه برنامم ساختم اسمتون را اوردم و ازتون تشکر کردم امید که تونسته باشم خوشحالتون بکنم

خدا را شکر با راهنمایی های شما و تحقیقات خودم مشکلات مرتفع میشن

همونطور که خودتون میدونید اگر ما در داخل یک فایل متنی تکست که با نوت پد ساخته شده فارسی بنویسیم و موقع ذخیره utf8 را انتخاب نکنیم یعنی با استاندارد ansi فایل را ذخیره بکنیم فایل فوق در ویندوزی که تنظیمات زبانش فارسی نباشه درهم ریخته و ناخانا و بعضا به شکل علامت سوال یا مربع دیده خواهد شد که اهل فن با دیدن همین میفهمن ویندوز روی زبان فارسی نیستش حالا سوال اینکه به روش برنامه نویسی چطور میشه فهمید ویندوز روی زبان فارسی هستش یا نه؟
که حالا در ادامه از کاربر بخواهیم ویندوز را روی حالت فارسی قرار بده یا خودم یه واسطه بنویسم اتوماتیک اینکار را انجام بده. البته مساله ری استارت شدن هم خودش باز داستانیه که حالا پله اول را کمک بکنید خدا بزرگه
چند تا مساله هست، اول اینکه ANSI در تولید نرم افزار خیلی وقته منسوخ شده، لذا باید تا حد امکان برای متن ازش اجتناب کنید.
در Registry مقدار ACP است در مسیر زیر :
کد:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
که 1256 کد پیج عربی ئه (و همچنین فارسی و اردو).
مساله دوم اینه که ممکنه دسترسی Registry سیستم کاربر اجازه تغییر رو بهتون نده یا ویروس کش اش فعالیت برنامه شما رو مشکوک شناسایی کنه.
 
چند تا مساله هست، اول اینکه ANSI در تولید نرم افزار خیلی وقته منسوخ شده، لذا باید تا حد امکان برای متن ازش اجتناب کنید.
در Registry مقدار ACP است در مسیر زیر :
کد:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
که 1256 کد پیج عربی ئه (و همچنین فارسی و اردو).
مساله دوم اینه که ممکنه دسترسی Registry سیستم کاربر اجازه تغییر رو بهتون نده یا ویروس کش اش فعالیت برنامه شما رو مشکوک شناسایی کنه.
ضمن تشکر بخاطر پاسخ
در رابطه با منسوخ شدن فرمایش درست ولی نکته اینجاست که من متاسفانه اومدم ظاهر برنامم را بخاطر راحتی کار نصبت به دلفی یا بیسیک تو بیلدر ساختم و بیلدر هم جز ansi از چیزیپشتیبانی نمیکنه

کلید رجیستری که فرمودید منظورم کلید 1256 در پوشه کد پیج یعنی چی؟ یعنی اینکه اگه کلید 1256 باشه یعنی ویندوز فارسیه؟ یا اینکه مقدار داخلش باید برسی بشه. مثلا رو ویندوز 8 من که فارسی هستش مقدار داخل این کلید c_1256.nls هستش
یک مقدار بیشتر توضیح میدید؟
اضافه اینکه ببینید منظور بنده گزینه رجیونال اند لنگوئیچ داخل کنترل پنل و ادامه تصویری که فرستادم هستش. بخش شماره 4 در این تصویر را ببینید. این بخش تو ویندوز ایکس پی مینویسه فارسی و بالاتر از ایکس پی مینویسه پرشین و تغییر درش نیاز به ری استارت داره. منظورم اطلاع از این قسمت هستش.

با تشکر فراوان
 

پیوست ها

  • Untitled.png
    Untitled.png
    176.1 کیلوبایت · بازدیدها: 2
چند تا مساله هست، اول اینکه ANSI در تولید نرم افزار خیلی وقته منسوخ شده، لذا باید تا حد امکان برای متن ازش اجتناب کنید.
در Registry مقدار ACP است در مسیر زیر :
کد:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
که 1256 کد پیج عربی ئه (و همچنین فارسی و اردو).
مساله دوم اینه که ممکنه دسترسی Registry سیستم کاربر اجازه تغییر رو بهتون نده یا ویروس کش اش فعالیت برنامه شما رو مشکوک شناسایی کنه.
ضمن تشکر بخاطر پاسخ
در رابطه با منسوخ شدن فرمایش درست ولی نکته اینجاست که من متاسفانه اومدم ظاهر برنامم را بخاطر راحتی کار نصبت به دلفی یا بیسیک تو بیلدر ساختم و بیلدر هم جز ansi از چیزیپشتیبانی نمیکنه

کلید رجیستری که فرمودید منظورم کلید 1256 در پوشه کد پیج یعنی چی؟ یعنی اینکه اگه کلید 1256 باشه یعنی ویندوز فارسیه؟ یا اینکه مقدار داخلش باید برسی بشه. مثلا رو ویندوز 8 من که فارسی هستش مقدار داخل این کلید c_1256.nls هستش
یک مقدار بیشتر توضیح میدید؟
اضافه اینکه ببینید منظور بنده گزینه رجیونال اند لنگوئیچ داخل کنترل پنل و ادامه تصویری که فرستادم هستش. بخش شماره 4 در این تصویر را ببینید. این بخش تو ویندوز ایکس پی مینویسه فارسی و بالاتر از ایکس پی مینویسه پرشین و تغییر درش نیاز به ری استارت داره. منظورم اطلاع از این قسمت هستش.

با تشکر فراوان
 
ضمن تشکر بخاطر پاسخ
در رابطه با منسوخ شدن فرمایش درست ولی نکته اینجاست که من متاسفانه اومدم ظاهر برنامم را بخاطر راحتی کار نصبت به دلفی یا بیسیک تو بیلدر ساختم و بیلدر هم جز ansi از چیزیپشتیبانی نمیکنه

کلید رجیستری که فرمودید منظورم کلید 1256 در پوشه کد پیج یعنی چی؟ یعنی اینکه اگه کلید 1256 باشه یعنی ویندوز فارسیه؟ یا اینکه مقدار داخلش باید برسی بشه. مثلا رو ویندوز 8 من که فارسی هستش مقدار داخل این کلید c_1256.nls هستش
یک مقدار بیشتر توضیح میدید؟
اضافه اینکه ببینید منظور بنده گزینه رجیونال اند لنگوئیچ داخل کنترل پنل و ادامه تصویری که فرستادم هستش. بخش شماره 4 در این تصویر را ببینید. این بخش تو ویندوز ایکس پی مینویسه فارسی و بالاتر از ایکس پی مینویسه پرشین و تغییر درش نیاز به ری استارت داره. منظورم اطلاع از این قسمت هستش.

با تشکر فراوان
Untitled.png
 

the_king

مدیرکل انجمن
ضمن تشکر بخاطر پاسخ
در رابطه با منسوخ شدن فرمایش درست ولی نکته اینجاست که من متاسفانه اومدم ظاهر برنامم را بخاطر راحتی کار نصبت به دلفی یا بیسیک تو بیلدر ساختم و بیلدر هم جز ansi از چیزیپشتیبانی نمیکنه

کلید رجیستری که فرمودید منظورم کلید 1256 در پوشه کد پیج یعنی چی؟ یعنی اینکه اگه کلید 1256 باشه یعنی ویندوز فارسیه؟ یا اینکه مقدار داخلش باید برسی بشه. مثلا رو ویندوز 8 من که فارسی هستش مقدار داخل این کلید c_1256.nls هستش
یک مقدار بیشتر توضیح میدید؟
اضافه اینکه ببینید منظور بنده گزینه رجیونال اند لنگوئیچ داخل کنترل پنل و ادامه تصویری که فرستادم هستش. بخش شماره 4 در این تصویر را ببینید. این بخش تو ویندوز ایکس پی مینویسه فارسی و بالاتر از ایکس پی مینویسه پرشین و تغییر درش نیاز به ری استارت داره. منظورم اطلاع از این قسمت هستش.

با تشکر فراوان
شما هیچ کاری به اسم مقدار 1256 و اون c_1256.nls داخلش ندارید و نخواهید داشت، عرض کردم مقدار داخل ACP رو در مسیر مورد نظر ببینید. مقدار داخل ACP، نه مقدار داخل 1256
اگر داخل ACP مقدار 1256 ذخیره شده باشه یعنی کد پیج Windows-1256 رو بکار میبره که عربیه، اصلا فارسی اش وجود نداره. ما کد پیج ای به نام Farsi یا Persian نداریم که چیزی جز 1256 باشه، چه فارسی و چه عربی و چه اردو از 1256 استفاده می کنند که به نام Arabic شناخته میشه. صفحه کلید میتونه فارسی باشه ولی برای مجموعه کاراکتر ها همواره کد پیج عربی بکار میره. در این مورد هیچ فرقی بین سیستم فارسی و عربی نیست. اون صفحه کلید پیشفرضه که بین شون متفاوت انتخاب میشه، نه کد پیج.
 
شما هیچ کاری به اسم مقدار 1256 و اون c_1256.nls داخلش ندارید و نخواهید داشت، عرض کردم مقدار داخل ACP رو در مسیر مورد نظر ببینید. مقدار داخل ACP، نه مقدار داخل 1256
اگر داخل ACP مقدار 1256 ذخیره شده باشه یعنی کد پیج Windows-1256 رو بکار میبره که عربیه، اصلا فارسی اش وجود نداره. ما کد پیج ای به نام Farsi یا Persian نداریم که چیزی جز 1256 باشه، چه فارسی و چه عربی و چه اردو از 1256 استفاده می کنند که به نام Arabic شناخته میشه. صفحه کلید میتونه فارسی باشه ولی برای مجموعه کاراکتر ها همواره کد پیج عربی بکار میره. در این مورد هیچ فرقی بین سیستم فارسی و عربی نیست. اون صفحه کلید پیشفرضه که بین شون متفاوت انتخاب میشه، نه کد پیج.
ضمن تشکر اگه درست متوجه شده باشم منظور شما این هستش که مقدار acp عدد 1256 باشه میشه پاسخ همان سولی که من دنبال جوابش هستم یعنی اگه طبق تصویر بالا که پست قبلی ارسال کرده بودم جلو برویم با گزینه persian مواجه خواهیم شد
درست متوجه شدم جناب کینگ؟
 

the_king

مدیرکل انجمن
ضمن تشکر اگه درست متوجه شده باشم منظور شما این هستش که مقدار acp عدد 1256 باشه میشه پاسخ همان سولی که من دنبال جوابش هستم یعنی اگه طبق تصویر بالا که پست قبلی ارسال کرده بودم جلو برویم با گزینه persian مواجه خواهیم شد
درست متوجه شدم جناب کینگ؟
بله، اما الزاما Persian نخواهد بود، ارتباط مستقیمی میان این دو نیست، اما کاراکتر های برنامه شما درست نمایش داده می شوند، چیزی که اهمیت داره.
 
بله، اما الزاما Persian نخواهد بود، ارتباط مستقیمی میان این دو نیست، اما کاراکتر های برنامه شما درست نمایش داده می شوند، چیزی که اهمیت داره.
واقعا ممنون بخاطر هم سواد شما و هم اینکه آنرا با دیگران تقسیم میکنید.
خب الان من سیستم کاربر را برسی کردم و متوجه شدم تنظیمات زبان اونطوری که من میخوام نیستش. چیکار باید کرد؟ بهترین راه برای انجام تنظیمات دلخواه از طریق کدنویسی چیه؟ یا اینکه باید کاربر را راهنمایی بکنم خودش بره تو کنترل پنل و تنظیمات مربوطه را انجام بده؟
و مهمتر از همه آیا با تغییر محتویات این کلید در رجیستری به 1256 تنظیمات زبان فارسی میشه؟ اگه اینطوره در ویندوز ایکس پی که برای انجام این تنظیمات سیستم عامل از کاربر درخواست سی دی ویندوز میکنه چطور همچنین چیزی ممکنه؟.
 

the_king

مدیرکل انجمن
واقعا ممنون بخاطر هم سواد شما و هم اینکه آنرا با دیگران تقسیم میکنید.
خب الان من سیستم کاربر را برسی کردم و متوجه شدم تنظیمات زبان اونطوری که من میخوام نیستش. چیکار باید کرد؟ بهترین راه برای انجام تنظیمات دلخواه از طریق کدنویسی چیه؟ یا اینکه باید کاربر را راهنمایی بکنم خودش بره تو کنترل پنل و تنظیمات مربوطه را انجام بده؟
این وظیفه کاربره نه برنامه شما. باید ازش درخواست کنید که به تمایل خودش انجام بده، هیچ برنامه ای نباید تنظیمات سیستم کاربر رو تغییر بده.
و مهمتر از همه آیا با تغییر محتویات این کلید در رجیستری به 1256 تنظیمات زبان فارسی میشه؟ اگه اینطوره در ویندوز ایکس پی که برای انجام این تنظیمات سیستم عامل از کاربر درخواست سی دی ویندوز میکنه چطور همچنین چیزی ممکنه؟.
تنظیمات زبان عربی میشه در واقع، و در ویندوز XP هم تنظیمات درست اعمال میشه. اما در ویندوز XP بصورت پیشفرض سیستم قابلیت نمایش راست به چپ و پردازش حروف عربی/فارسی رو نداره. این ربطی به تنظیمات نداره.
یعنی عبارتی مثل "یک متن فارسی" رو بصورت "ی س ر ا ف ن ت م ک ی" نشون میده، چون نه بلده حروف رو بهم بچسبونه و نه توانایی نمایش از راست به چپ (RTL) رو داره.
اون مجموعه ای که برای امکانات عادی کاربر فارسی/عربی زبان از جمله نمایش متن و صفحه کلید و ... نیاز هست فعلا نصب نشده و به CD ویندوز احتیاج داره. کد پیج از ابتدا هست و تنظیمات Registry هم درست اعمال میشه ولی نمایش درستی داده نمیشه چون سیستم توانایی نمایش متن RTL رو نداره. اگر شما دستی هم اون مقدار Registry رو تغییر بدید تنها روی سیستمی درست کار می کنه که از قبل اون امکانات RTL رو نصب کرده بوده.
و اکیدا هم توصیه می کنم خودتون دستی تنظیمات سیستم کاربر رو تغییر ندید، می توانید انجام بدید و کار هم می کنه، ولی این چیزی نیست که شما قرار باشه دستی مقدارش رو تغییر بدید، خود کاربر باید چنین تصمیمی بگیره.
 
با مشورت شما تا اینجا تصمیم گرفتم هنگام ساخت ستاپ برنامه با برقراری ارتباط با دی ال ال های ویندوز پنجره های مربوط به پیکره بندی شبکه و تنظیمات زبان را برای کاربر باز کنم و در یک فایل راهنمای پی دی اف با آموزش روش کار ازش بخوام خودش تنظیمات را انجام بده. ضمنا فایلهای مورد نیازی که ویندوز ایکس پی برای تنظیمات فارسی شدن سی دی ویندوز مطالبه میکنه هم براش تو یه پوشه میذارم تا اگه سی دی ویندوز نداشتش کارش راه بیافته. همچنین این فایلها را اینجا پیوست کردم تا کسی خواست استفاده بکنه.
 

پیوست ها

  • FarsiAdvanced.zip
    161.1 کیلوبایت · بازدیدها: 3

جدیدترین ارسال ها

بالا