PDA

View Full Version : دو زبانه کردن نرم افزار



ali_abbasi22145
سه شنبه 09 اسفند 1384, 15:23 عصر
سلام
1-من برای دو زبانه کردن نرم افزار می خواهم یک Option بگذارم اگر کاربر English را انتخاب کرد همه Caption ها انگلیسی و اگر Farsi را انتخاب کرد همه Caption ها فارسی شود. یعنی چیزی شبیه این که فارسی انتخاب کرد شود:

lable1.caption:='ذخیره';
.....................................

یا انگلیسی انتخاب کرد شود.

lable1.caption:='Save';
آیا این روش خوب است یا راه حل دیگری بدون استفاده از کامپوننت برای اینکار است؟

2-آیا دستوری است که کل فونتهای یک فرم tahoma شود با تمام اجزای آن شامل: caption ,edit,DBEdit ,... که داخل فرم هستند؟

mzjahromi
سه شنبه 09 اسفند 1384, 15:49 عصر
سلام
1-من برای دو زبانه کردن نرم افزار می خواهم یک Option بگذارم اگر کاربر English را انتخاب کرد همه Caption ها انگلیسی و اگر Farsi را انتخاب کرد همه Caption ها فارسی شود. یعنی چیزی شبیه این که فارسی انتخاب کرد شود:

lable1.caption:='ذخیره';
.....................................

یا انگلیسی انتخاب کرد شود.

lable1.caption:='Save';
آیا این روش خوب است یا راه حل دیگری بدون استفاده از کامپوننت برای اینکار است؟

ResourceDLL Wizard تو این زمینه به شما کمک زیادی میکنه و روش کارش هم اینه که هر زبونی که پیش فرض ویندوزت باشه نرم افزارت با همون میاد بالا. حالا با یه کلکهائی هم میشه کاری کرد که با هر زبونی خواستی بیاد بالا. ولی اون کاری که گفتید،بعید میدونم(اینکه در زمان اجرا تمام Captionها رو عوض کنه)

-آیا دستوری است که کل فونتهای یک فرم tahoma شود با تمام اجزای آن شامل: caption ,edit,DBEdit ,... که داخل فرم هستند؟

اگر ParentFont همه کامپوننتها True باشن کافیه فونت فرمت رو عوض کنی. اونوقت همه شون عوض میشن.این خاصیت به طور پیش فرض True هست ولی اگه فونت یک کامپوننت رو عوض کنی False میشه

babak869
سه شنبه 09 اسفند 1384, 19:28 عصر
میتونی از برنامه TsiLang شرکت SiComponent's یا برنامه SML Pack شرکت Suni Soft استفاده کنی :
http://www.sunisoft.com
http://www.siComponents.com

Ehsansh
چهارشنبه 10 اسفند 1384, 17:51 عصر
یک راه ساده که من خودم ازش استفاده میکنم استفاده از فایلهای ini هست. تمام داده های متنی برنامه رو میریزم تو فایل ini و بصورت داینامیک اونها رو لود میکنم. خیلی راحته فقط مشکلش اینه که کاربر میتونه متنهای شما رو تغییر بده که زیاد همه مهم نیست.

babak869
چهارشنبه 10 اسفند 1384, 19:56 عصر
یک راه ساده که من خودم ازش استفاده میکنم استفاده از فایلهای ini هست. تمام داده های متنی برنامه رو میریزم تو فایل ini و بصورت داینامیک اونها رو لود میکنم. خیلی راحته فقط مشکلش اینه که کاربر میتونه متنهای شما رو تغییر بده که زیاد همه مهم نیست.

دقیقا اکثر برنامه های Multi Language هم از این روش استفاده میکنند

ali_abbasi22145
پنج شنبه 11 اسفند 1384, 10:00 صبح
یک راه ساده که من خودم ازش استفاده میکنم استفاده از فایلهای ini هست. تمام داده های متنی برنامه رو میریزم تو فایل ini و بصورت داینامیک اونها رو لود میکنم. خیلی راحته فقط مشکلش اینه که کاربر میتونه متنهای شما رو تغییر بده که زیاد همه مهم نیست.

سلام
من روش شما را می خواهم و جالب است. حال چگونه از فایل ini استفاده کنم؟
لطفا توضیح بیشتری بدهید.

Ehsansh
شنبه 13 اسفند 1384, 16:23 عصر
var F:TIniFile;
begin
F:=TIniFile.Create('c:\Test.ini');
F.WriteString('Section','Key','Value');

اگر کامل متوجه نشدید بفرمایید تا مثال کامل بگم.

Sabeghi
دوشنبه 22 اسفند 1384, 21:22 عصر
من با ini اصلا بلد نیستم کار کنم اگر برای شما امکان دارد نمونه برنامه ای که حالت فارسی و لاتین رو ساپورت کنه رو برای دانلود در سایت قرار بدید.
با تشکر

Ehsansh
سه شنبه 23 اسفند 1384, 07:16 صبح
دوست عزیز شما پست بالا رو نگاه میکردین متوجه میشدید:


uses iniFiles;
var F:TIniFile;
begin
F:=TIniFile.Create('c:\Test.ini');
F.WriteString('Section','Key','Value');

oخط اول فایل Test.ini رو ایجاد میکنه و در خط دوم در قسمتی به نام Section کلیدی به نامه Key و مقداری به نامه Value ایجاد میکنه.
باید یک بار اجرا کنید تا متوجه بشید.
امیدوارم کمکت کنه.
اگه سئوالی بود بازم بگو...

Sabeghi
سه شنبه 23 اسفند 1384, 11:12 صبح
خوب این چه کمکی به من در رابطه با چند زبانه میکنه
مثلا یک لیبل رو چطوری میتونم در حالت انتخاب فارسی با عنوان فارسی نمایش بدهم و درحالت انگلیسی انگلیسی نمایش دهم
اگر امکان داره این موضوع رو توضیح دهید.

Ehsansh
سه شنبه 23 اسفند 1384, 13:26 عصر
توفایل ini مشخص میکنی در Section فارسی مقدار مثلا منوی New رو میدی "جدید" و در Section انگلیسی مقدار New رو میدی "New" و در Section آلمانی و ....
زمانی که کاربر زبان رو انتخاب کرد باید همه Section مو رد نظر رو لود کنی و روی فرم و کامپوننتهات قرار بدی.
این حتما کمکت میکنه.
سئوالی بود بگو.

Ehsansh
سه شنبه 23 اسفند 1384, 17:58 عصر
اینم یه مثال برای آقای عباسی:
اول روی دکمه Save Farsi و Save English کلیک کنید تا فایل این دو زبان رو براتون ایجاد کنه.
سپس با هربار کلیک بر روی Change Language میتونید زبان رو تغییر بدید.
پس از اون هم برید سورس رو ببینید تا متوجه بشید قضیه از چه قراره.
http://www.shirzadi.org/old_site/Files/MultiLanguageProgram.rar
امیدوارم کمکتون کنه.
موفق باشید.

Mahmood_M
سه شنبه 23 اسفند 1384, 18:48 عصر
توفایل ini مشخص میکنی در Section فارسی مقدار مثلا منوی New رو میدی "جدید" و در Section انگلیسی مقدار New رو میدی "New" و در Section آلمانی و ....
زمانی که کاربر زبان رو انتخاب کرد باید همه Section مو رد نظر رو لود کنی و روی فرم و کامپوننتهات قرار بدی.
این حتما کمکت میکنه.
سئوالی بود بگو.

آقا احسان آیا با این روش می شه پیغامها رو هم تغییر داد؟ ( فکر نکنم بشه ) !! ...

Sabeghi
چهارشنبه 24 اسفند 1384, 09:07 صبح
اقا احسان با سلام
ممنون از سورسی که گذاشتید فقط یه مشکلی هست اونم اینه که دانلود نمیشه
اگر لینک رو چک کنید ممنون میشم.
در ضمن در رابطه با گفته اقا محمود من هم همین سوال رو دارم برای پیامها باید چکاری انجام داد
البته یک روش اینه که در یک فرم یکسری Label قرار بدیم و از اونها برای پیامها استفاده کنیم اما ایا راه بهتری هم هست ؟

با تشکر

Ehsansh
چهارشنبه 24 اسفند 1384, 10:12 صبح
آقا از بابت لینک شرمندم. دیشب رو هاستم کار میکردم احتمالا جابجاش کردم.
همین امروز درستش میکنم.
چه پیغمای منظورته؟
پیغامها رو هم میشه فارسی کرد.
پیام ها هم رشته هستند. چه فرقی میکنه؟

Ehsansh
چهارشنبه 24 اسفند 1384, 10:15 صبح
لینک هم درست شد.
فعلا در این آدرس هست.
کار روی سایتم که تموم شد به آدرس قبلی میره.
http://www.shirzadi.org/old_site/Fil...ageProgram.rar