PDA

View Full Version : سوال: مشکل با متون فارسی در ویندوز XP:



BORHAN TEC
دوشنبه 25 مرداد 1389, 15:28 عصر
سلام به تمام دوستان برنامه نویس:قلب:
خوشحالم که بعد از ماهها تونستم باز هم به جمع دوستان برگردم (کنکوره دیگه، نمیشه کاریش کرد:چشمک:)

من برنامه ای نوشته ام که باید بدون توجه به نصب یا عدم نصب زبان فارسی روی سیستم مشتری باید بتواند پیام های فارسی را به درستی نمایش دهد. مشکل این جا است که اگر در ویندوز XP زبان فارسی نصب نشده باشد پیام ها را به درستی نمایش نمی دهد. در ضمن من از دلفی 2010 استفاده می کنم. در زیر هم عکسی در رابطه با این مشکل را قرار داده ام:

majidmir
دوشنبه 25 مرداد 1389, 16:25 عصر
سلام به نظر من بهترین و ساده ترین راه حل در این مواقع استفاده از عکسه ؟

pezhvakco
دوشنبه 25 مرداد 1389, 18:42 عصر
درود :

بدون توجه به نصب یا عدم نصب زبان فارسی روی سیستم مشتری باید بتواند پیام های فارسی را به درستی نمایش دهد
این کار یه کم با روند کار سیستم عامل در تناقضه چون برای نمایش حروف باید زمینه های اون مانند فونت وجود داشته باشه .
اگه نمی تونی تنظیمات زبان رو با خود برنامت انجام بدی، روشی که جناب majidmir (http://barnamenevis.org/forum/member.php?u=63457) گفت یک روش جالبه ...

بدرود .

vcldeveloper
دوشنبه 25 مرداد 1389, 22:30 عصر
در ضمن من از دلفی 2010 استفاده می کنم.
توی دلفی 2010 مشکلی با متن های فارسی نیست، حتی اگر در ویندوز شما فارسی نصب نباشه. مشکل شما از جای دیگه است، مثلا شاید فونتی که استفاده می کنید.

tdkhakpur
سه شنبه 26 مرداد 1389, 00:23 صبح
توی دلفی 2010 مشکلی با متن های فارسی نیست، حتی اگر در ویندوز شما فارسی نصب نباشه. مشکل شما از جای دیگه است،

با کدهای فارسی مشکلی نیست اما کنترلر فارسی ارتباطی به دلفی ندارد و سیستم عامل باید این کنترل را بصورت device drive در سرویسهای خودش بصورت نصب داشته باشد.
به نظرم kbdfa.dll این کار را در مورد کنترل فارسی برای ویندوز انجام میده.
اگر شما داخل ویندوزتان هنوز فارسی ساز نصب نیست ضمیمه زیر را امتحان کنید اگر عمل کرد اطلاع بدید.
ممنون

BORHAN TEC
شنبه 30 مرداد 1389, 12:35 عصر
توی دلفی 2010 مشکلی با متن های فارسی نیست، حتی اگر در ویندوز شما فارسی نصب نباشه. مشکل شما از جای دیگه است، مثلا شاید فونتی که استفاده می کنید.

مشکل از جای دیگری نیست. من از فونت Tahoma استفاده کردم که در هر ویندوزی وجود دارد. جالب است که بگویم این مشکل در ویندوز Seven وجود ندارد ولی در ویندوز XP وجود دارد. در ضمن مشکل از ویندوز هم نبود چون این برنامه را در کلکسیونی از ویندوز XP تست کردم و جواب نداد. طبق مستنوات ارایه شده توسط Embarcadero در دلفی 2009 به بعد نباید این مشکل وجود اشته باشد ولی من در عمل طور دیگری این موضوع را دیدم. در ضمن من از کامپوننت های پیش فرض دلفی استفاده کرده ام. به هر حال اگر دوستان راه حلی ارایه بدهن ممنون میشم. در ضمن من نمی توانم در این برنامه از عکس استفاده کنم چون در بسیاری از جاها از Hint فارسی استفاده کرده ام و ... !

vcldeveloper
شنبه 30 مرداد 1389, 19:34 عصر
با کدهای فارسی مشکلی نیست اما کنترلر فارسی ارتباطی به دلفی ندارد و سیستم عامل باید این کنترل را بصورت device drive در سرویسهای خودش بصورت نصب داشته باشد.
به نظرم kbdfa.dll این کار را در مورد کنترل فارسی برای ویندوز انجام میده.
این ربطی به مشکل مطرح شده در تاپیک نداره، فایلی هم که ذکر کردید، مربوط به ورود کارکتر فارسی از طریق کیبورد هست، در حالی که مشکل کاربر مربوط به نمایش کارکترهای فارسی هست، و فایل kbdfa.dll ارتباطی با نمایش کارکترهای فارسی نداره.


مشکل از جای دیگری نیست. من از فونت Tahoma استفاده کردم که در هر ویندوزی وجود دارد.
من شخصا تست کردم، و مشکلی وجود نداشت.
حدس میزنم مشکل شما از فونت باشه، دقت کنید که هر چند فونت هایی مثل Tahoma در همه ویندوزها وجود دارند، ولی یکسان نیستند! مثلا مجموعه Office بعضی از این فونت های استاندارد ویندوز را با نسخه های مدنظر خودش تعویض میکنه. می تونید محض اطمینان، فایل Tahoma را از روی یک سیستمی که به درستی متون را نمایش میده، کپی کنید و در سیستم مقصد نصب کنید.

نمایش متن فارسی ایجاد شده با دلفی 2010 در ویندوز XP انگلیسی مشکلی نداره، مگه اینکه یا خودتان در نوشتن برنامه مشکل داشته باشید و به درستی از یونیکد استفاده نکرده باشید، یا همون مشکل فونت را داشته باشید.

kamran_dev
جمعه 05 شهریور 1389, 17:46 عصر
این مشکل تنها برای دلفی 2010 هست.من نسخه 2009 رو نصب کردم مشکلی نداشت و مشکل از سیستم عامل نبود!
به نظرم تنظیمات خاصی باید روی دلفی 2010 ست بشه تا مشکل یونیکد برطرف شه.
و نکته دیگه: در دلفی 2010 زمانی که در قسمت تنظیمات version info زبان و local id رو روی فارسی تنظیم می کنیم تابع VerQueryValue که برای دریافت اطلاعات بخش version info هست کار نمی کنه.:متفکر:
کد زبان فارسی (042904E4 ) رو بهش پاس دادم.

BORHAN TEC
سه شنبه 09 شهریور 1389, 13:50 عصر
ن شخصا تست کردم، و مشکلی وجود نداشت.
حدس میزنم مشکل شما از فونت باشه، دقت کنید که هر چند فونت هایی مثل Tahoma در همه ویندوزها وجود دارند، ولی یکسان نیستند! مثلا مجموعه Office بعضی از این فونت های استاندارد ویندوز را با نسخه های مدنظر خودش تعویض میکنه. می تونید محض اطمینان، فایل Tahoma را از روی یک سیستمی که به درستی متون را نمایش میده، کپی کنید و در سیستم مقصد نصب کنید.

نمایش متن فارسی ایجاد شده با دلفی 2010 در ویندوز XP انگلیسی مشکلی نداره، مگه اینکه یا خودتان در نوشتن برنامه مشکل داشته باشید و به درستی از یونیکد استفاده نکرده باشید، یا همون مشکل فونت را داشته باشید.
آقای کشاورز ، آیا باید تنظیمات خاصی را انجام دهیم؟

vcldeveloper
سه شنبه 09 شهریور 1389, 18:55 عصر
آقای کشاورز ، آیا باید تنظیمات خاصی را انجام دهیم؟
نه. من یک ویندوز XP در ماشین مجازی داشتم که زبان مربوط به Non-unicode application اش فارسی بود. تمام گزینه های مربوط به زبان آن را از فارسی به انگلیسی تغییر دادم، و آن را ریست کردم، و یک برنامه با رابط کاربر فارسی را با دلفی 7 و دلفی 2010 کامپایل کردم، و فایل های اجرایی آنها را به آن ویندوز XP موجود در ماشین مجازی انتقال دادم. همانطور که انتظار داشتم، متون موجود در رابط کاربر برنامه نوشته شده با دلفی 7 تبدیل به علامت سوال شدند، و متون فارسی موجود در رابط کاربر برنامه نوشته شده با دلفی 2010 به شکل کاملا صحیح نمایش داده شدند.

BORHAN TEC
سه شنبه 09 شهریور 1389, 18:59 عصر
نه. من یک ویندوز XP در ماشین مجازی داشتم که زبان مربوط به Non-unicode application اش فارسی بود. تمام گزینه های مربوط به زبان آن را از فارسی به انگلیسی تغییر دادم، و آن را ریست کردم، و یک برنامه با رابط کاربر فارسی را با دلفی 7 و دلفی 2010 کامپایل کردم، و فایل های اجرایی آنها را به آن ویندوز XP موجود در ماشین مجازی انتقال دادم. همانطور که انتظار داشتم، متون موجود در رابط کاربر برنامه نوشته شده با دلفی 7 تبدیل به علامت سوال شدند، و متون فارسی موجود در رابط کاربر برنامه نوشته شده با دلفی 2010 به شکل کاملا صحیح نمایش داده شدند.
من هر کاری که می کنم موفق نمی شوم. آیا شما آپدیتهای دلفی را روی سیستمتان نصب کرده اید؟

vcldeveloper
سه شنبه 09 شهریور 1389, 19:22 عصر
من هر کاری که می کنم موفق نمی شوم. آیا شما آپدیتهای دلفی را روی سیستمتان نصب کرده اید؟
من هم با دلفی 2010 آپدیت شده، و هم آپدیت نشده، بررسی کردم.

kamran_dev
سه شنبه 09 شهریور 1389, 20:58 عصر
آقای کشاورز به نظر شما این مشکل مربوط به نسخه دلفی 2010 نیست؟
آیا این امکان وجود دارد که دلفی 2010 شما با نسخه ای که ما داریم تفاوت داشته باشد؟

دوستان مشاهده کننده این تاپیک ،اگر لطف کنید این مسئله را تست کرده و نتیجه را اعلام کنید بسیار سپاسگزاریم.
چون در حال حاضر برای چند تن از دوستان من و شاید تعدادی از برنامه نویسان دلفی همین سایت ، این مشکل بوجود آمده و در حال بررسی آن هستیم.

با تشکر.

gbg
چهارشنبه 10 شهریور 1389, 00:15 صبح
خب من تا حالا تست اینجوری نکردم
ولی اون زمانها که از اکس پس استفاده می کردم اسم فولدر ها و فایل های ورد و فارسی می نوشتم
وقتی که ویندوز رو کاملا از نو نصب می کردم تو اسم فایل ها این مشکل بوجود می اومد و بعد از فارسی کردن رفع میشه و نمایش فارسی درست می شد
بهتره آقای کشاورز فایل خودش رو برات بفرسته و اجرا کنی اونوقت می فهمی از ویندوز هستش یا نسخه دلفیت مشکل داره

kamran_dev
چهارشنبه 10 شهریور 1389, 02:56 صبح
خب من تا حالا تست اینجوری نکردم
ولی اون زمانها که از اکس پس استفاده می کردم اسم فولدر ها و فایل های ورد و فارسی می نوشتم
وقتی که ویندوز رو کاملا از نو نصب می کردم تو اسم فایل ها این مشکل بوجود می اومد و بعد از فارسی کردن رفع میشه و نمایش فارسی درست می شد



اگه پست های قبل رو مطالعه می کردید متوجه می شدید که من با دلفی 2009 تست کردم!
ارتباطی به ویندوز نداره.

vcldeveloper
چهارشنبه 10 شهریور 1389, 17:42 عصر
آیا این امکان وجود دارد که دلفی 2010 شما با نسخه ای که ما داریم تفاوت داشته باشد؟نه، چون من با دو نسخه دلفی 2010 چک کردم (نسخه RTMو نسخه مربوط به آپدیت 4 - 5) .


بهتره آقای کشاورز فایل خودش رو برات بفرسته و اجرا کنی اونوقت می فهمی از ویندوز هستش یا نسخه دلفیت مشکل داره فایل ضمیمه شده، یک برنامه ساده هستش که من در کلاس دلفیم از سورسش برای آموزش مسائل مختلف مربوط به شی گرایی استفاده می کنم. از همین فایل برای تست استفاده کردم، شما هم می تونید از همین استفاده کنید. این فایل با نسخه 14.0.3615.26342 دلفی 2010 کامپایل شده.

kamran_dev
چهارشنبه 10 شهریور 1389, 19:08 عصر
فایل شما رو تست کردم .فایل شما هم دچار مشکل می شه!:متفکر:

55187

vcldeveloper
پنج شنبه 11 شهریور 1389, 00:57 صبح
فایل شما رو تست کردم .فایل شما هم دچار مشکل می شه!
نه، مشکل از دلفی نیست. شما اگر برنامه فارسی نوشته شده با ویژوال استودیو 2010 را هم به ویندوز XP انگلیسی ببرید، این مسئله براش وجود داره (تصویر ضمیمه شده اول).
55203

پشتیبانی از کارکترهای یونیکد یک چیز هست، نمایش آنها یک چیز دیگه. در ویندوز XP، شما دو تنظیم برای فعال کردن زبان فارسی به عنوان زبان پیش فرض برای برنامه های غیر یونیکد دارید. یک تنظیم پشتیبانی از زبان های راست-به-چپ را نصب میکنه، و دیگری زبان فارسی را زبان پیش فرض برنامه های غیر یونیکد در نظر میگیره.

وقتی گفته میشه برنامه ایی یونیکد هست، یعنی دیگه به تنظیمات مربوط به زبان پیش فرض غیر یونیکد وابسته نیست. برای همین هم شما می بینید که کارکترها به درستی نمایش داده میشند، اما در ترکیب شان ویندوز مشکل داره. علتش هم این هست که به طور پیش فرض، ویندوز XP فایل های مربوط به نمایش راست-به-چپ را نصب نمیکنه، و این فایل ها باید توسط برنامه، یا توسط کاربر نصب بشند (تصویر ضمیمه شده دوم). این هم ربطی به دلفی یا ویژوال استودیو نداره، مربوط به ویندوز هست، و برای همه زبان های راست-به-چپ صادق هست.
55204

بعد از فعال کردن اون گزینه، برنامه یونیکد فارسی تولید شده با دلفی یا ویژوال استودیو یا هر ابزار دیگه، متون راست-به-چپ را به درستی نمایش میده (تصویر ضمیمه شده سوم).
55207