PDA

View Full Version : آیا متدی برای چند زبانه بودن برنامه ها وجود دارد؟



taghavi
سه شنبه 31 شهریور 1383, 15:17 عصر
سلام دوستان
اگر بخواهیم یک برنامه بنویسیم که به زبانهای مختلفی گزارش بدهد یا داده دریافت کند
متد خاصی وجود دارد یا اینکه Caption های برنامه را به آن زبانها تغییر دهیم؟
باتشکر

ara_prg
سه شنبه 31 شهریور 1383, 16:24 عصر
یک راه آن استفاده از Language Resouce است. که برای این کا باید در دلفی 7 از گزینه



project -> laguages -> add

این کار را انجام دهی. پس از انجام این کار برنامه شما با توجه به زبان پیش فرض دستگاه کاربر Interface خود را Load خواهد کرد. :wink:

JavanSoft
سه شنبه 31 شهریور 1383, 21:55 عصر
درمورد فارسی من نتوانستم جواب بگیرم

_alish_
چهارشنبه 01 مهر 1383, 16:05 عصر
ببخشید لطف کنید بیشتر توضیح دهید چه کاربردی دارد راستش من استفاده نکردم و خیلی کنجکاو شدم
این فرمها را چگونه صدا کنیم ؟ لطفا یک برنامه کوچک و ساده آپلود کنید .
باز هم ممنون.

ara_prg
پنج شنبه 02 مهر 1383, 09:10 صبح
در واقع با استفاده از این روش شما فقط باید زبان های مختلف را به برنامه خود اضافه کنید و برای هر زبان باید در Resource اضافه شده دوباره Caption ها را بنویسید. بعد از این کار برنامه با توجه به تنظیمات Regional Setting و Default Language سیستم بصورت Automatic زبان مورد نیاز را Load می کند. به عنوان مثال اگر شما زبان فارسی را اضافه کنید یک پروژه با نام پروژه شما و پسوند far. به برنامه اضافه می شود. شما می توانید آن را از طرق Project Manager ببینید و Caption های موجود در فرم های آن را دوباره ویرایش کنید و در نهایت آن را Build کنید. حال اگر Default Language سیستم خود را به فارسی تغییر دهید برنامه بصورت خودکار فایل far. را load می کند و Interface جدید برنامه Load می شود. البته در این روش در صورتی که درInterface (تاکید می کنم فقط در صورتی که در Inteface) برنامه تغییری ایجاد کنید باید Recource زبان های اضافه شده را نیز Update کنید که این کار از طریق منو زیر انجام می شود.



project->languages->update resource dlls



بعد از هر بار Update نیز باید دوباره آن Resource را Build کنید تا dll جدید (مثلا yourprojectname.far) دوباره ایجاد شود.

:wink:

_alish_
شنبه 04 مهر 1383, 07:59 صبح
خیلی ممنونم.

بعد از این کار برنامه با توجه به تنظیمات Regional Setting وDefault Language سیستم بصورت Automatic زبان مورد نیاز را Load می کند.
یعنی با کلیدها ALT+Shift و تغییر زبان ، Resource هم تغییر می کنه ؟ چطوری با کد بین آنها سویچ کرد؟
ممنون

nasr
شنبه 04 مهر 1383, 10:04 صبح
سلام
من یه برنامه ای نوشته ام که حتما باید Langueg برابر با Farsi باشه
http://www.sgpco.com/temp/LnFarsi.gif

http://www.sgpco.com/temp/LnFarsi2.gif

این کار فرما یه برنامه دیگر هم داره که حتما باید موار بالا برابر با English باشه

من مواردی که شما فرموده بودید را به ترتیب زیر انجام دادم

http://www.sgpco.com/temp/01.gif

http://www.sgpco.com/temp/02.gif

http://www.sgpco.com/temp/03.gif

http://www.sgpco.com/temp/06.gif

http://www.sgpco.com/temp/07.gif

http://www.sgpco.com/temp/08.gif

http://www.sgpco.com/temp/09.gif

http://www.sgpco.com/temp/12.gif

حال Languege را برابر انگلیسی کردم
ولی هنگام اجرا در زبان انگلیسی حروف اشتباه نشان داده می شود
http://www.sgpco.com/temp/13.gif


ممنون میشم راهنمایی بفرمایید

JavanSoft
شنبه 04 مهر 1383, 11:47 صبح
عنی با کلیدها ALT+Shift و تغییر زبان ، Resource هم تغییر می کنه ؟
خیر

ara_prg
یک شنبه 05 مهر 1383, 11:09 صبح
یعنی با کلیدها ALT+Shift و تغییر زبان ، Resource هم تغییر می کنه


تغییر Default Language ویندوز موجب تغییر Resource برنامه می شود. درست مثل بعضی برنامه های Setup که اگر در ویندوزهای عربی اجرا شوند متون خود را به زبان عربی و اگر در ویندوز انگلیسی اجرا شوند به زبان انگلیسی نشان می دهند.


در جواب آقای nasr هم باید بگویم که شما در این روش باید Caption های فرم های اصلی برنامه را به زبان انگلیسی تعریف کنید و Caption های موجود در فرمهای جدید ( Farsi Resource ) را به زبان فارسی تغریف کنید. یعنی در Project Manager ابتدا برای YourProjectName.exe باید Caption تمامی فرمها را به زبان انگلیسی تبدیل و Save و Build کنید سپس اگر در Interface چیز جدیدی اضافه کرده اید Farsi Resouce خود را از منو


project->languages->update resource dlls


Update کنید و سپس برای YourProjectname.far باید Caption تمامی فرم ها را بصورت فارسی تعریف کنید و آن را Save و Build کنید.

حال اگر Default Language ویندوز انگلیسی باشد و شما برنامه را اجرا کنید برنامه با Interface انگلیسی اجرا می شود و اگر Default Language ویندوز فارسی باشد و شما برنامه را اجرا کنید برنامه با Interface فارسی اجرا خواهد شد.

:flower:

_alish_
یک شنبه 05 مهر 1383, 13:35 عصر
ممنون قسمت دوم سوالم در مورد سویچ کردن بود .
یعنی طبق گفته شما دیگر در ویندوز فارسی نمی شود به انگلیسی سویچ کرد.
آیا درست است یا راهی هم دارد؟
باز هم ممنونم :flower:

MSK
یک شنبه 05 مهر 1383, 21:03 عصر
حالا سوال دیگر این است که اگر بخواهیم به کاربر اجازه بدهیم در ابتدای برنامه یا در نیمه راه زبان برنامه را تغییر دهد چه باید بکنیم؟ :متفکر:

ara_prg
سه شنبه 07 مهر 1383, 11:13 صبح
اینم یک برنامه Multi Language کامل که روش تغییر زبان برنامه در زمان اجرا را نیز نشان می دهد.

تقدیم به همه دوستان :wink:

MSK
چهارشنبه 08 مهر 1383, 19:37 عصر
:flower:

jk
سه شنبه 28 تیر 1384, 09:31 صبح
http://www.barnamenevis.org/forum/showthread.php?t=23967

nasr
سه شنبه 04 بهمن 1384, 12:55 عصر
سلام
من چطور می تونم توی برنامه ای که تنظیمات ویندوز انگلیسی است . متون را فارسی نشون بدم

منظور Caption و عبارات موجود در ComboBox هاست

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

ممنون

nasr
شنبه 08 بهمن 1384, 08:52 صبح
سلام

من کارم به این جریان گیر کرده

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

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

ممنون

Touska
شنبه 08 بهمن 1384, 13:21 عصر
در جواب شما آقای nasr میتونید از یونیکد استفاده نمایید.

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

موفق باشید.

nasr
دوشنبه 10 بهمن 1384, 08:37 صبح
سلام

1- مشکل اینجاست که اگه من تنظیمات را به فارسی تبدیل کنم دیگه اون نرم افزار اصلی شرکت کار نمی کنه

2- چطور باید از یونیکد استفاده کنم.من تا حالا اینکار را نکردم لطفا راهنمایی کنید

تشکر

babak869
سه شنبه 11 بهمن 1384, 10:39 صبح
با سلام به همه دوستان
من تمام مراحل بالا رو انجام دادم و نتیجه هم گرفتم اما هیچ فایل Dll ای ساخته نشد و فقط یه دایرکتوری بنام Far به برنامه اضافه شد.یعنی زمانی که Regional روی زبان فارسی است فرم و تمام اجزا آن به زبان فارسی است و زمانی که روی انگلیسی تنظیم است فرم و کنترلها انگلیسی نمایش داده می شوندومن سوالم اینست که آیا در کار من اشکالی بوده که فایل Dll سخته نشده؟
با تشکر