ورود

View Full Version : سوال: کد برای تغییر زبان و...



Shahramdindoust
شنبه 08 آذر 1399, 23:32 عصر
سلام <br>
من یک سوال درباره کدهای تغییر زبان سیستم دارم.<br>
در یک فایلی که در رویداد FORMLOAD آن میخام بنویسم اگر زبان سیستم فارسی هست تکست 1 را مساوی "سلام" و اگه زبان سیستم انگلیسیه اون رو مساوی "HELLO" قرار بده. ولی کار نمیکند

padide55
یک شنبه 09 آذر 1399, 13:44 عصر
سلام <br>
من یک سوال درباره کدهای تغییر زبان سیستم دارم.<br>
در یک فایلی که در رویداد FORMLOAD آن میخام بنویسم اگر زبان سیستم فارسی هست تکست 1 را مساوی "سلام" و اگه زبان سیستم انگلیسیه اون رو مساوی "HELLO" قرار بده. ولی کار نمیکند

سلام
کد تغیر زبان فارسی رو براتون پیدا کردم .نمونه رو ببینید.
ولی در شرط در هنگام لود برای سوال شما مشکل دارم .که مثلا کد 1033 اگر بود بنویسه hello و ..

parsa70
یک شنبه 09 آذر 1399, 13:48 عصر
سلام <br>
من یک سوال درباره کدهای تغییر زبان سیستم دارم.<br>
در یک فایلی که در رویداد FORMLOAD آن میخام بنویسم اگر زبان سیستم فارسی هست تکست 1 را مساوی "سلام" و اگه زبان سیستم انگلیسیه اون رو مساوی "HELLO" قرار بده. ولی کار نمیکند

کار جالبی هست اگه کار کنه
برای من که کیبوردم تا فورم لود میشه خود کار میشه انگلیسی
فقط اون موردی که نوشتی چرا قرمزه کد برنامه نویسید به خاطر ورژن آفیست هست که ۶۴ بیتیه

eb_1345
یک شنبه 09 آذر 1399, 14:41 عصر
سلام <br>
من یک سوال درباره کدهای تغییر زبان سیستم دارم.<br>
در یک فایلی که در رویداد FORMLOAD آن میخام بنویسم اگر زبان سیستم فارسی هست تکست 1 را مساوی "سلام" و اگه زبان سیستم انگلیسیه اون رو مساوی "HELLO" قرار بده. ولی کار نمیکند
سلام
نمونه ضمیمه رو بررسی کن !

eb_1345
یک شنبه 09 آذر 1399, 14:56 عصر
ضمناً کدهای نمونه رو برای اجرا در دو سیستم 32 و 64 بیتی اصلاح کردم

Shahramdindoust
یک شنبه 09 آذر 1399, 16:44 عصر
سلام
نمونه ضمیمه رو بررسی کن !
ممنونم
جسارتا فقط انگلیسیش میاد یعنی وقتی زبان سیستم en هستش عبارت hello ظاهر میشه ولی وقتی زبان فارسیه تکست باکس رو خالی نشون میده
میتونه ایراد بخاطر آفیسم باشه؟
یا اینکه انواع زبان فارسی داریم :مثل Persian standard keyboard ,Persian ,... ؟ همچنین بازهم کدهای قرمز که اتفاقا ارور هم نمیده نمیدونم دلیلش چیه
من فک کنم اگه سیستم 32 باشه هم خط های 64 رو قرمز کنه . باز هم ارور نده152545

Shahramdindoust
یک شنبه 09 آذر 1399, 16:46 عصر
سلام
کد تغیر زبان فارسی رو براتون پیدا کردم .نمونه رو ببینید.
ولی در شرط در هنگام لود برای سوال شما مشکل دارم .که مثلا کد 1033 اگر بود بنویسه hello و ..
بله برای لودش ایده ای ندارین؟

eb_1345
یک شنبه 09 آذر 1399, 17:10 عصر
ممنونم
جسارتا فقط انگلیسیش میاد یعنی وقتی زبان سیستم en هستش عبارت hello ظاهر میشه ولی وقتی زبان فارسیه تکست باکس رو خالی نشون میده
میتونه ایراد بخاطر آفیسم باشه؟
یا اینکه انواع زبان فارسی داریم :مثل Persian standard keyboard ,Persian ,... ؟ همچنین بازهم کدهای قرمز که اتفاقا ارور هم نمیده نمیدونم دلیلش چیه
من فک کنم اگه سیستم 32 باشه هم خط های 64 رو قرمز کنه . باز هم ارور نده
درنمونه جدید داخل فرم یک لیبل قرار دادم که نام زبان در آن نمایش داده میشود . در سیستم خودت امتحان کن ببین نام زبان فارسی با چه کلمه نمایش داده میشود و آن نام هم در قسمت شرط با OR اضافه کن
کدهای قرمز مربوط به سیستم 32 بیتی است و چون سیستم شما 64 بیتی است کدها بصورت قرمز نمایش میدهد .مشکلی نداره

Shahramdindoust
یک شنبه 09 آذر 1399, 23:34 عصر
متاسفانه باز هم جواب نداد تو لیبل نام persian (iran)که تو لیبل بود را با or به شرط اضافه کردم ولی باز هم وقتی فارسی هست تکست باکس اhello نشون میده با دو سه تا زبان فارسی مختلف امتحان کردم نشد زبان ها من :
152547

eb_1345
دوشنبه 10 آذر 1399, 00:17 صبح
متاسفانه باز هم جواب نداد تو لیبل نام persian (iran)که تو لیبل بود را با or به شرط اضافه کردم ولی باز هم وقتی فارسی هست تکست باکس اhello نشون میده با دو سه تا زبان فارسی مختلف امتحان کردم نشد زبان ها من :


اینمورد در ویندوز های مختلف باید بررسی شود که عبارت زبان کیبورد در تسکبار ویندوز به چه صورتی نمایش داده میشود .
حالا با این فرض که کلمه اول عبارت زبان فارسی و انگلیسی در سیستم های مختلف با هر ترکیبی Persian و English است باید کد شرطی به این صورت تغییر پیدا کند که اگر نام زبان از سمت چپ به تعداد 7 کارکتر مساوی Persian بود تکست باکس را مساوی «سلام» و اگر نام زبان از سمت چپ به تعداد 7 کارکتر مساوی English بود تکست باکس را مساوی «Hello» قرار دهد
نمونه جدید رو بررسی بفرما !

narpco
دوشنبه 10 آذر 1399, 10:10 صبح
سلام روز بخیر دوستان این بحث خیلی جذاب بود و بسیار ممنون از همه شما ویندوز من 8.1 هست و بدون مشکل کار کرد ......
حالا یک موردی هست که اگر امکانش باشه من ممنون میشم

میشه این توالی رو بصورت ماژول دراورد که بشه تو همه فرم ها ازش استفاده کرد

به این ترتیب که در هر فرم یک لیبل بالای فرم بزاریم و وضعیت زبان رو در لحظه در همون لیبل گزارش بده

مثلا بنویسه : زبان شما فارسی است---زبان شما انگلیسی است

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

بازم از شما ممنونم که وقت گذاشتین و این برنامه رو نوشتین ....خدا خیرتون بده

Shahramdindoust
دوشنبه 10 آذر 1399, 10:23 صبح
اینمورد در ویندوز های مختلف باید بررسی شود که عبارت زبان کیبورد در تسکبار ویندوز به چه صورتی نمایش داده میشود .
حالا با این فرض که کلمه اول عبارت زبان فارسی و انگلیسی در سیستم های مختلف با هر ترکیبی Persian و English است باید کد شرطی به این صورت تغییر پیدا کند که اگر نام زبان از سمت چپ به تعداد 7 کارکتر مساوی Persian بود تکست باکس را مساوی «سلام» و اگر نام زبان از سمت چپ به تعداد 7 کارکتر مساوی English بود تکست باکس را مساوی «Hello» قرار دهد
نمونه جدید رو بررسی بفرما !
عالیییییییییییییییییییییی ییییییییییییییییییییییییی ییییییییییییییییییییییییی ییییییییییییییییییییییییی ییییییییییییییییییی:تشویق:
very gooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooood
ببخشید روش دیگه ای برای تشکر یادم نیومد:قهقهه:
خیلی خوب بود

Shahramdindoust
دوشنبه 10 آذر 1399, 10:26 صبح
سلام روز بخیر دوستان این بحث خیلی جذاب بود و بسیار ممنون از همه شما ویندوز من 8.1 هست و بدون مشکل کار کرد ......
حالا یک موردی هست که اگر امکانش باشه من ممنون میشم

میشه این توالی رو بصورت ماژول دراورد که بشه تو همه فرم ها ازش استفاده کرد

به این ترتیب که در هر فرم یک لیبل بالای فرم بزاریم و وضعیت زبان رو در لحظه در همون لیبل گزارش بده

مثلا بنویسه : زبان شما فارسی است---زبان شما انگلیسی است

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

بازم از شما ممنونم که وقت گذاشتین و این برنامه رو نوشتین ....خدا خیرتون بده
اگه ماژول بشه که عالیه اونوقت این کدها رو قاطی کدهای همه ی فرمهامون نمیکنیم و لازم نیست تو هر فرمی کدهای تکراری کپی کنیم یه ماژول میسازیم خلاص
اون هم با تلاش اساتید ان شاء الله

atf1379
دوشنبه 10 آذر 1399, 10:38 صبح
اگه ماژول بشه که عالیه اونوقت این کدها رو قاطی کدهای همه ی فرمهامون نمیکنیم و لازم نیست تو هر فرمی کدهای تکراری کپی کنیم یه ماژول میسازیم خلاص
اون هم با تلاش اساتید ان شاء الله
فعلاً که تنها استاد تالار اکسس جناب eb_1345 (https://barnamenevis.org/member.php?424036-eb_1345) هستن که به اکثر تاپیک های مهم پاسخ های منطقی و کاربردی میدهن:تشویق::تشویق::تشویق:

eb_1345
دوشنبه 10 آذر 1399, 13:16 عصر
سلام روز بخیر دوستان این بحث خیلی جذاب بود و بسیار ممنون از همه شما ویندوز من 8.1 هست و بدون مشکل کار کرد ......
حالا یک موردی هست که اگر امکانش باشه من ممنون میشم

میشه این توالی رو بصورت ماژول دراورد که بشه تو همه فرم ها ازش استفاده کرد

به این ترتیب که در هر فرم یک لیبل بالای فرم بزاریم و وضعیت زبان رو در لحظه در همون لیبل گزارش بده

مثلا بنویسه : زبان شما فارسی است---زبان شما انگلیسی است

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

بازم از شما ممنونم که وقت گذاشتین و این برنامه رو نوشتین ....خدا خیرتون بده

سلام
خواسته شما در فایل ساده نمونه ضمیمه برآورد شده
در فایل ضمیمه یک فرم اصلی وجود دارد که منوهای برنامه در آن قرار دارد . در واقع این فرم بعنوان فرم مادر در طول زمان اجرای برنامه باز است و با بسته شدن آن برنامه بسته میشود . در رویداد تایمر این فرم ماژول مربوطه فراخوانی میشود . و در هر شرایط زبان سیستم را نمایش میدهد

narpco
دوشنبه 10 آذر 1399, 14:16 عصر
عالی... نفس شما گرم ..در همه امور برقرار ...باشید ...:تشویق::تشویق::تشویق::تشویق ::تشویق:

padide55
دوشنبه 10 آذر 1399, 21:47 عصر
سلام
خواسته شما در فایل ساده نمونه ضمیمه برآورد شده
در فایل ضمیمه یک فرم اصلی وجود دارد که منوهای برنامه در آن قرار دارد . در واقع این فرم بعنوان فرم مادر در طول زمان اجرای برنامه باز است و با بسته شدن آن برنامه بسته میشود . در رویداد تایمر این فرم ماژول مربوطه فراخوانی میشود . و در هر شرایط زبان سیستم را نمایش میدهد

بسیار عالی ......

Shahramdindoust
دوشنبه 10 آذر 1399, 23:01 عصر
سلام
خواسته شما در فایل ساده نمونه ضمیمه برآورد شده
در فایل ضمیمه یک فرم اصلی وجود دارد که منوهای برنامه در آن قرار دارد . در واقع این فرم بعنوان فرم مادر در طول زمان اجرای برنامه باز است و با بسته شدن آن برنامه بسته میشود . در رویداد تایمر این فرم ماژول مربوطه فراخوانی میشود . و در هر شرایط زبان سیستم را نمایش میدهد

کم هوشی من رو در درک موضوع ببخشید.سوال دارم: با این فایل که ساختید الان اون اتفاق (تغییر عبارت از سلام به hello همگام با تغییر زبان)، اگر ما بخواهیم اون اتفاق در چندین فرم بیوفته آیا فقط کدها رو در یک فرم بیاندازیم کافیه؟ فک کنم خوب منظورم رو نرسوندم. یعنی اگر ما فرم های مختلفی داشته باشیم و بخواهیم اتفاقاتی شبیه بالایی در هرکدوم مجزا و به اشکال مختلف بیوفته چطور؟ واسه همین گفتم ماژول بشه عالی میشه.

padide55
دوشنبه 10 آذر 1399, 23:11 عصر
قابل توجه
شما درزمان ورود داده ها بهتر این است که از عملکرد خود اکسس استفاده کنید .
در property هر فیلد .
در تب format. انتهای لیست .شما نوع زبان تایپ رو انتخاب میکنید .
در اون صورت .زبان سیستم هر چه باشد .به محض ورود به ان فیلد به زبان تنظیم شده تغییر میکنه .
و این مشکل زبان در فیلدها پیش نمیاد .
----------------
نوع دیگر در تایپ در فیلدها به اینصورت هست
در برنامه‌نویسی بعضی سایتها متوجه میشوید که به محض ورود پیغام میدهد که زبان سیستم خود را به انگلیسی تغییر دهید .
در این موارد .در رویداد keypress فیلدها کد داده شده که متن فارسی استاندارد شده با کی برد انگلیسی تایپ بشه .
----------------
و نکته این تاپیک
اینجا هدف مشاهده زبان سیستم هست و تغییر زبان به فارسی به‌محض ورود به فرم اصلی اتفاق میفته و دیگه نیاز به کد نویسی و اصلاح زبان format هر فیلد در تمام فیلدها و فرمها به منظور تایپ فارسی نخواهید داشت
حتی میشه بر اساس زبان سیستم فرمها رو‌جوری طراحی کرد که رنگ بک گراند فرم با تغییر زبان سیستم به رنگ مورد نظر تغییر کنه.
-----------------
نکته اخر.
با کد این تاپیک زبان سیستم از ابتدا تشخیص داده‌میشه و به محض باز شدن فرم اصلی به فارسی تغییر میکنه .
و حالا اگر زمان سیستم فارسی باشه .تا زمانی که تغییر داده نشده همچنان در تمام مراحل کار با سیستم ثابت میمونه . حتی اگر فرمهای دیگر هم باز بشه .
مگر اینکه با alt.shift و یا با کد در یک مرحله از ثبت داده ها مجدد زبان کی برد تغییر کنه .از اون مرحله به بعد هم به زبان تغییریافته‌ ثابت میمونه .
------

Shahramdindoust
دوشنبه 10 آذر 1399, 23:21 عصر
بذارین اینجوری بگم
فکر کنیم کاربران ما توصیه ها رو در بالای فرم ها میبینند و یا دستورالعمل هایی(در قالب لیبل یا تکست باکس) رو میبنند که باید در حین استفاده از فرم اون ها رو انجام بدن. فقط فرد کاربر در صفحه اصلی میخاد بگه که اون لیبل ها رو فارسی میخاد ببینه یا انگلسی. البته میشه فرم ها دوبار ساخت یه بار انگلیسی یه بار فارسی. ولی خیلی طولانی میشه هر بار هم که نمیشه اون کدها رو کپی کرد برای همین نیاز به ماژول دارم تا لازم نباشه اون کدها رو توی مثلا 150 تا فرم کپی کنم
و در یک کلام انگار میخای زبان برنامه و حتی اسم دکمه ها رو برای کاربر خارجی انگلیسی کنی مثلا دکمه "پرینت" بشه دکمه "print" و تکست باکس یا لیبل "لطفا نام خود را وارد کنید" بشه "please enter your name" بنابراین اگر فرد کاربر در صفحه اصلی زبان رو انگلیسی انتخاب کنه نه تنها زبان سیستم انگلیسی میشه لیبل ها و دکمه ها هم انگلیسی میشن ... البته نمیخام لیبل ها و دکمه ها رو دوبار بسازم که هر بار یکی visible بشه
سرتان را بدرد آوردم عذر تقصیر

padide55
دوشنبه 10 آذر 1399, 23:36 عصر
بذار اینجوری بگم
فکر کنیم کاربران ما توصیه ها رو در بالای فرم ها میبینند و یا دستورالعمل هایی(در قالب لیبل یا تکست باکس) رو میبنند که باید در حین استفاده از فرم اون ها رو انجام بدن. فقط فرد کاربر در صفحه اصلی میخاد بگه که اون لیبل ها رو فارسی میخاد ببینه یا انگلسی. البته میشه فرم ها دوبار ساخت یه بار انگلیسی یه بار فارسی. ولی خیلی طولانی میشه هر بار هم که نمیشه اون کدها رو کپی کرد برای همین نیاز به ماژول دارم تا لازم نباشه اون کدها رو توی مثلا 150 تا فرم کپی کنم
هر چند نوع زبان کی برد ارتباطی با نمایش فرم اصلی نداره و میشه در گوشه فرم اصلی فقط یک لیست باکس برای انتخاب زبان فرم قرار داد ولی
علی ایحالا در این تاپیک در ورود نوع زبان قابل مشاهده و تغییر شده
میشه بر اساس لیبل‌ فرم اصلی
فرمهای دیگه رو جوری تعریف کرد که لیبل فارسی و یا انگلیسی نمایش داده بشه.ولی باز هم کد در هر فرم میخواید که لیبل رو عوض کنه.و کدها طولانی میشه.
مگر اینکه لیبلها هم کد بندی باشه مثلا بجای label1 و ..
برای فارسی داشته باشیم lablefa1
و برای انگلیسی داشته باشیم lableen1
و الی اخر
و با یک کد در ورودی فرم همه لیبلها عوض بشه
با کد نویسی به روش for

تقریبا
به این صورت. اصل کد نویسی به عهده دوستان


Dim Counter As Integer

For Counter = 1 to n
if
اگر زبان فارسی بود
then
لیبلهای فارسی visible=true
else
لیبلهای انگلیسی visible=true
Next

یک همچین چیزی ...
Counter رو عدد سمت راست لیبلها در نظر میگیریم

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

eb_1345
دوشنبه 10 آذر 1399, 23:48 عصر
کم هوشی من رو در درک موضوع ببخشید.سوال دارم: با این فایل که ساختید الان اون اتفاق (تغییر عبارت از سلام به hello همگام با تغییر زبان)، اگر ما بخواهیم اون اتفاق در چندین فرم بیوفته آیا فقط کدها رو در یک فرم بیاندازیم کافیه؟ فک کنم خوب منظورم رو نرسوندم. یعنی اگر ما فرم های مختلفی داشته باشیم و بخواهیم اتفاقاتی شبیه بالایی در هرکدوم مجزا و به اشکال مختلف بیوفته چطور؟ واسه همین گفتم ماژول بشه عالی میشه.
کافیه دو خط کد زیر رو در رویداد Form_Timer هر فرم وارد کنید!


If Left(Form_FrmMain.lblCurrentsystemlanguage.Caption , 4) = "Çäá" Then Text1 = "Hello"
If Left(Form_FrmMain.lblCurrentsystemlanguage.Caption , 4) = "ÝÇÑÓ" Then Text1 = "ÓáÇã"

در کدهای فوق فرض شده text1 همان تکست باکسی است که قرار است کلمه hello یا سلام در آن نمایش داده شود.
ضمناً بلحاظ اینکه در اغلب موارد در تشخیص ی و ک فارسی و ی و ک عربی مشکل ایجاد میشود بنده از تابع left به تعداد 4 کارکتر اول که در آن حروف ی و ک وجود ندارد استفاده کرده ام.

padide55
سه شنبه 11 آذر 1399, 00:04 صبح
کافیه دو خط کد زیر رو در رویداد Form_Timer هر فرم وارد کنید!


If Left(Form_FrmMain.lblCurrentsystemlanguage.Caption , 4) = "Çäá" Then Text1 = "Hello"
If Left(Form_FrmMain.lblCurrentsystemlanguage.Caption , 4) = "ÝÇÑÓ" Then Text1 = "ÓáÇã"

در کدهای فوق فرض شده text1 همان تکست باکسی است که قرار است کلمه hello یا سلام در آن نمایش داده شود.
ضمناً بلحاظ اینکه در اغلب موارد در تشخیص ی و ک فارسی و ی و ک عربی مشکل ایجاد میشود بنده از تابع left به تعداد 4 کارکتر اول که در آن حروف ی و ک وجود ندارد استفاده کرده ام.

دقیقا همینه
به نظر من بهتره از تغییر متن به صورت سلام و hello اجتناب کنید و با visible کردن دو لیبل با متن سلام و hello مشکل رو‌حل کنید .
اینجوری با یک خط کد .کل لیبلهای فرم عوض میشه .
فارسی ها مخفی و انگلیسی ها قابل مشاهده.


با عرض پوزش مجدد
طبق نمونه
اگر لیبلها کد بندی و مرتب باشند .
فرم 1 را برای هر دو زبان فارسی و انگلیسی باز کنید و لیبلها را مشاهده کنید
حالا بجای نمایش متن لیبل بصورت helloو سلام
با visibleنمودن لیبل فارسی و انگلیسی.که هر فیلد دو لیبل داشته باشه .که مشکل ی و ک هم نداره
اینجا میتوان رنگ فیلدها و هر تغییری رو اعمال کرد .حتی فونت مورد نظر و......

ضمنا تغییر رنگ فرم اصلی بر اساس زبان -قابل اجرا برای تمام فرمها و هر مورد دیگه......

فقط یک لیست باکس کم داره که با اون بشه از بین زبان کیبردهای نصب شده بوسیله کد یک زبان را انتخاب نمود .

Shahramdindoust
سه شنبه 11 آذر 1399, 10:38 صبح
بذارین اینجوری بگم
فکر کنیم کاربران ما توصیه ها رو در بالای فرم ها میبینند و یا دستورالعمل هایی(در قالب لیبل یا تکست باکس) رو میبنند که باید در حین استفاده از فرم اون ها رو انجام بدن. فقط فرد کاربر در صفحه اصلی میخاد بگه که اون لیبل ها رو فارسی میخاد ببینه یا انگلسی. البته میشه فرم ها دوبار ساخت یه بار انگلیسی یه بار فارسی. ولی خیلی طولانی میشه هر بار هم که نمیشه اون کدها رو کپی کرد برای همین نیاز به ماژول دارم تا لازم نباشه اون کدها رو توی مثلا 150 تا فرم کپی کنم
و در یک کلام انگار میخای زبان برنامه و حتی اسم دکمه ها رو برای کاربر خارجی انگلیسی کنی مثلا دکمه "پرینت" بشه دکمه "print" و تکست باکس یا لیبل "لطفا نام خود را وارد کنید" بشه "please enter your name" بنابراین اگر فرد کاربر در صفحه اصلی زبان رو انگلیسی انتخاب کنه نه تنها زبان سیستم انگلیسی میشه لیبل ها و دکمه ها هم انگلیسی میشن ... البته نمیخام لیبل ها و دکمه ها رو دوبار بسازم که هر بار یکی visible بشه
سرتان را بدرد آوردم عذر تقصیر
لطفا اگه مقدوره برای پست شماره 20 تصمیم بگیرید بنظر من آخرش همونه که بشه زبان برنامه رو عوض کرد داستان که فقط یه hello و سلام نیست حتی اسم دکمه ها رو هم میخام انگلیسی کنم

padide55
سه شنبه 11 آذر 1399, 11:59 صبح
لطفا اگه مقدوره برای پست شماره 20 تصمیم بگیرید بنظر من آخرش همونه که بشه زبان برنامه رو عوض کرد داستان که فقط یه hello و سلام نیست حتی اسم دکمه ها رو هم میخام انگلیسی کنم

سلام مجدد
شما اگر صفحه اصلی زبان فارسی باشه فرم 1 رو باز کنید
اگر صفحه اول انگلیسی باشد هم فرم 1 رو باز کنید
لیبلها فارسی و انگلیسی میشه .
به همین روش باید عنوان کلیدها و .. رو عوض کنید .

ترکیبی از مخفی و اشکار نمودن لیبل
و تغییر لیبل استفاده کنید .
ولی اگر از تغییر لیبل استفاده کنید باید متن هر لیبل رو در فرم بنویسید و گیج کننده خواهد بود .
بهتره همون لیبل رو با فونت دلخواه ایجاد کنید و سپس مخفی و قابل مشاهده انجام بدین .

کدها رو هم به ترتیب شماره بندی کنید که با یک خط فرمول همه فارسی ها نمایش داده بشه و با یک خط فرمول همه انگلیسی ها .

eb_1345
سه شنبه 11 آذر 1399, 12:41 عصر
سلام <br>
من یک سوال درباره کدهای تغییر زبان سیستم دارم.<br>
در یک فایلی که در رویداد FORMLOAD آن میخام بنویسم اگر زبان سیستم فارسی هست تکست 1 را مساوی "سلام" و اگه زبان سیستم انگلیسیه اون رو مساوی "HELLO" قرار بده. ولی کار نمیکند



لطفا اگه مقدوره برای پست شماره 20 تصمیم بگیرید بنظر من آخرش همونه که بشه زبان برنامه رو عوض کرد داستان که فقط یه hello و سلام نیست حتی اسم دکمه ها رو هم میخام انگلیسی کنم

سلام
با ارائه نمونه پست 15 پاسخ سوال شما در این تاپیک داده شد .عنوان موضوع جدید مد نظر شما چند زبانه کردن برنامه است که خود مقوله دیگری است که برای پرداختن به آن نیاز به ایجاد تاپیک جدیدی با همین عنوان «چند زبانه کردن برنامه» میباشد.

eb_1345
سه شنبه 11 آذر 1399, 14:41 عصر
سلام
با ارائه نمونه پست 15 پاسخ سوال شما در این تاپیک داده شد .عنوان موضوع جدید مد نظر شما چند زبانه کردن برنامه است که خود مقوله دیگری است که برای پرداختن به آن نیاز به ایجاد تاپیک جدیدی با همین عنوان «چند زبانه کردن برنامه» میباشد.
در ارتباط با با دو زبانه یا چند زبانه کردن برنامه نمونه ای رو بطور آزمایشی تهیه کردم که فیلم (27 ثانیه ای ) اون رو در لینک زیر گذاشته ام
ضمناً با عرض پوزش از دوستان ، بنده به دالایلی (عمدتاً استقبال نکردن دوستان صرفاً نظارگر) زین پس تصمیم دارم سورس بعضی از نمونه کارها رو در اختیار نگذارم و صرفاً به ارائه فیلمی در خصوص نتیجه کار انجام شده اکتفا کنم .
https://s17.picofile.com/file/8415981284/MultiLanguage.mp4.html

ضمناً باید عرض کنم که اینکار فقط با چند خط کد نویسی در بخش ماژول ها و تهیه یک جدول حاوی کلمات انگلیسی و ترجمه فارسی آنها انجام شده .

Shahramdindoust
سه شنبه 11 آذر 1399, 15:15 عصر
در ارتباط با با دو زبانه یا چند زبانه کردن برنامه نمونه ای رو بطور آزمایشی تهیه کردم که فیلم (27 ثانیه ای ) اون رو در لینک زیر گذاشته ام
ضمناً با عرض پوزش از دوستان ، بنده به دالایلی (عمدتاً استقبال نکردن دوستان صرفاً نظارگر) زین پس تصمیم دارم سورس بعضی از نمونه کارها رو در اختیار نگذارم و صرفاً به ارائه فیلمی در خصوص نتیجه کار انجام شده اکتفا کنم .
https://s17.picofile.com/file/8415981284/MultiLanguage.mp4.html

ضمناً باید عرض کنم که اینکار فقط با چند خط کد نویسی در بخش ماژول ها و تهیه یک جدول حاوی کلمات انگلیسی و ترجمه فارسی آنها انجام شده .
شاید افرادی که فقط نظاره گر هستند مانند حضرتعالی استاد نیستد یا دارن تجربه کسب میکنن در ضمن با دیدن فیلم فقط "حسرتش" رو به دل ما میذارین:لبخند: ما از کجا بفهمیم شما چیکار کردین

Shahramdindoust
سه شنبه 11 آذر 1399, 15:18 عصر
حالا اگه میشه افتخار بفرمایید این فایل رو هم بذارین بی زحمت

eb_1345
چهارشنبه 12 آذر 1399, 15:52 عصر
حالا اگه میشه افتخار بفرمایید این فایل رو هم بذارین بی زحمت
خودتون متوجه شدین که تشبیه مناسب و جالبی در پست دیروزتون بکارنبردین پست رو ویرایش کردین . بنده دیروز درپاسخ پست شوخی گونه و در عین حال متلک آمیز شمامطالبی رو نوشتم ولی از ارسال اون صرفنظر کردم ,چون احساس کردم ممکن است مطالب برای بعضی دوستان باعث سوء تفاهم شود .
دوست بزرگوار! اگر واقعاً هدفت اینست که در زمینه برنامه نویسی به یک اشراف نسبی برسید باید تلاشتون رو مضاعف کنید.
توصیه میکنم چند وقتی با نمونه برنامه های ساده تر که کدهای پیچیده ای ندارند کار کنید .
در پست 26 به شما پیشنهاد دادم که موضوع مورد درخواست شما در ادامه توضیحات این تاپیک مربوط به موضوع چند زبانه کردن برنامه است که باید درتاپیک جدیدی مطرح کنید ولی ...
اون نمونه برنامه هم که ویدئو نحوه اجرایش رو قرار داده بودم از روی کنجکاوی خودم انجام دادم و قصد این بود که ذهن دوستانی که تمایل به راهنمائی شما دارند متوجه خواسته شما بکنم
موفق باشید

Shahramdindoust
چهارشنبه 12 آذر 1399, 16:19 عصر
خودتون متوجه شدین که تشبیه مناسب و جالبی در پست دیروزتون بکارنبردین پست رو ویرایش کردین . بنده دیروز درپاسخ پست شوخی گونه و در عین حال متلک آمیز شمامطالبی رو نوشتم ولی از ارسال اون صرفنظر کردم ,چون احساس کردم ممکن است مطالب برای بعضی دوستان باعث سوء تفاهم شود .
دوست بزرگوار! اگر واقعاً هدفت اینست که در زمینه برنامه نویسی به یک اشراف نسبی برسید باید تلاشتون رو مضاعف کنید.
توصیه میکنم چند وقتی با نمونه برنامه های ساده تر که کدهای پیچیده ای ندارند کار کنید .
در پست 26 به شما پیشنهاد دادم که موضوع مورد درخواست شما در ادامه توضیحات این تاپیک مربوط به موضوع چند زبانه کردن برنامه است که باید درتاپیک جدیدی مطرح کنید ولی ...
اون نمونه برنامه هم که ویدئو نحوه اجرایش رو قرار داده بودم از روی کنجکاوی خودم انجام دادم و قصد این بود که ذهن دوستانی که تمایل به راهنمائی شما دارند متوجه خواسته شما بکنم
موفق باشید
بله البته من کمی شوخ طبعم و در عین حال ساده حرف می زنم
عذر تقصیر و طلب حلالیت از حضرتعالی دارم

eb_1345
چهارشنبه 12 آذر 1399, 19:48 عصر
حالا اگه میشه افتخار بفرمایید این فایل رو هم بذارین بی زحمت
پیرو توضیحات پست 26 ، اگر تمایل داشتی یک تاپیک جدید با عنوان چند زبانه کردن برنامه ایجاد کنید که در آنجا روش کار توضیح داده شود

موفق باشید

Shahramdindoust
چهارشنبه 12 آذر 1399, 21:37 عصر
سپاسگذارم
راستی تایپیکی بنام keycode حروف خاص هم هست که استقبالی ازش نشد اگر کسی زحمت بکشه یک جوابی بده ممنون هستم
https://barnamenevis.org/showthread.php?563566-keycode-%D8%AD%D8%B1%D9%88%D9%81-%D8%AE%D8%A7%D8%B5

narpco
چهارشنبه 19 آذر 1399, 17:32 عصر
سلام
خواسته شما در فایل ساده نمونه ضمیمه برآورد شده
در فایل ضمیمه یک فرم اصلی وجود دارد که منوهای برنامه در آن قرار دارد . در واقع این فرم بعنوان فرم مادر در طول زمان اجرای برنامه باز است و با بسته شدن آن برنامه بسته میشود . در رویداد تایمر این فرم ماژول مربوطه فراخوانی میشود . و در هر شرایط زبان سیستم را نمایش میدهد



سلام روز بخیر ...این توالی تغییر زبان رو نمیشه طور دیگه ای نوشت که درگیر رویداد on timer نباشه ؟
مثلا کلیدها ترکیبی alt+shift رو درگیر کد کنیم یا چیزی شبیه به این --------ممنون

narpco
پنج شنبه 20 آذر 1399, 10:50 صبح
اگر بخواهیم بگوییم وقتی فرم فعال شد اتوماتیک زبان رو فارسی کن و پیام بده زبان شما فارسی شد چیکار باید بکنیم ؟
من چون دیدم این تاپیک در مورد تغییر زبان هست اینجا گفتم اگر لازم میدونید تاپیک جدا بزنیم ....

من تو برنامم فیلدی ندارم که انگلیسی باشه پس نیازی هم ندارم ...کاربر وقتی برنامه رو minimize کنه بره یکجای دیگه با زبان انگلیسی کار کنه و برگرده تو برنامه .....یا
از همون اول که برنامه رو باز می کنه اتوماتیک زبانش فارسی بشه ...و پیام بده فارسی شد ....////////////////////////////////ممنونم

eb_1345
پنج شنبه 20 آذر 1399, 11:14 صبح
اگر بخواهیم بگوییم وقتی فرم فعال شد اتوماتیک زبان رو فارسی کن و پیام بده زبان شما فارسی شد چیکار باید بکنیم ؟
من چون دیدم این تاپیک در مورد تغییر زبان هست اینجا گفتم اگر لازم میدونید تاپیک جدا بزنیم ....

من تو برنامم فیلدی ندارم که انگلیسی باشه پس نیازی هم ندارم ...کاربر وقتی برنامه رو minimize کنه بره یکجای دیگه با زبان انگلیسی کار کنه و برگرده تو برنامه .....یا
از همون اول که برنامه رو باز می کنه اتوماتیک زبانش فارسی بشه ...و پیام بده فارسی شد ....////////////////////////////////ممنونم

سلام
کد مربوط به تغییر زبان به فارسی یا انگلیسی در نمونه پست 2 ارائه شده .



#If Win64 Then
Private Declare PtrSafe Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
#Else
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
#End If



Private Sub Form_Activate()
Call ActivateKeyboardLayout(1065, 1)
End Sub