مشاهده دست آورد نظرسنجی: نظر شما راجع به اين روش

رای دهنده
32. شما نمی توانید در این رای گیری رای بدهید
  • عالي

    19 59.38%
  • خوب

    10 31.25%
  • متوسط

    0 0%
  • ضعيف

    3 9.38%
صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 55

نام تاپیک: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

  1. #1

    Wink ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام

    در اين تاپيك آموزش چند زبانه كردن برنامه از يك راه نسبتا ساده رو براتون شرح مي دم
    خيلي ها شايد فكر كنند اين كار، كار سختي هست ولي اصلا اينطوري نيست

    به صورت خلاصه در اين روش متون برنامه، ترجمه مي شود

    1 - همه كلمات و جملات رو در دو يا چند فيلد فارسي و انگليسي و عربي و ... در يك فايل متني يا بانك اطلاعاتي يادداشت كنيد
    2 - قبل از نمايش فرم ها، متن داخل اشياء رو با توجه به زبان انتخابي ترجمه كنيد

    مزايا :

    1 - به خاطر استفاده از بانك اطلاعاتي سرعت بالايي نيز دارد (البته ميشه از فايل متني يا ريسورس نيز استفاده كرد)
    2 - از تكرار ترجمه جملات و كلمات در فرمهاي مختلف جلوگيري خواهد شد
    3 - برنامه وابسته به اشياء فرم نبوده و به دلخواه مي توانيد تعداد كنترلهاي روي فرم را زياد و كم كنيد بدون اينكه نياز باشه به كد برنامه يا فايل ترجمه دست بزنيد

    يكسري مزاياي ديگه هم هست كه در پست شماره 55 همين تاپيك توضيح داده شده
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله vbhamed : پنج شنبه 14 شهریور 1392 در 10:26 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  2. #2

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    دوست عزيز من فکر مي کنم شما مي بايست يک کد براي هر يک از آبجکت هاي کل برنامه اختصاص مي داديد-منظورم در بانک اطلاعاتي هست (همانند ويندوز)

    و در زمان بارگذاري مقادير رو نسبت به کد آبجکت و زبان مورد نظر در بانک فراخواني کرده و نمايش دهيد

    فکر مي کنم کدتون مشکل داشته باشه چون من تست کردم کار نکرد

    البته منظورم از کد اينه که کد هر آبجکتو مي تونيم تو Tag اون کنترل بنويسيم



    ASP.NET MVC / Entity Framework / Design Pattern
    XCode Objective-C IOS Developer



  3. #3

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط mpmsoft مشاهده تاپیک
    دوست عزيز من فکر مي کنم شما مي بايست يک کد براي هر يک از آبجکت هاي کل برنامه اختصاص مي داديد-منظورم در بانک اطلاعاتي هست (همانند ويندوز)

    و در زمان بارگذاري مقادير رو نسبت به کد آبجکت و زبان مورد نظر در بانک فراخواني کرده و نمايش دهيد

    البته منظورم از کد اينه که کد هر آبجکتو مي تونيم تو Tag اون کنترل بنويسيم

    سلام

    اتفاقا مسئله همينه كه اين برنامه مي خواد اين كارهاي سخت انجام نشه
    با اين روش شما نياز نيست هيچ كار اضافه اي انجام بديد و خاصيت Tag رو هم اشغال كنيد
    فرض كنيد كسي يك برنامه نوشته با 20 تا فرم و در كل 300 عدد Object
    مي دونيد گذاشتن كد در تگ 300 شيء چه كار سختيه ؟
    ضمن اينكه بايد مواظب باشيد اشتباه هم نكنيد
    اما در اين روش فقط متن و ترجمه رو يادداشت مي كنيد
    حتي برداشت متنهاي استفاده شده در فرمها (منظور متن Label ها و Command ها و ...) هم با يك روال ساده و به صورت اتوماتيك به راحتي امكان پذير هست


    نقل قول نوشته شده توسط mpmsoft مشاهده تاپیک
    فکر مي کنم کدتون مشکل داشته باشه چون من تست کردم کار نکرد
    مشكل شما چي هست كه كار نكرد
    اين برنامه تست شده هست و من خودم از اون استفاده مي كنم
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  4. #4
    کاربر تازه وارد آواتار hamedMohammad
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    53

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    با سلام

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

  5. #5

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط hamedMohammad مشاهده تاپیک
    با سلام

    اشکال برنامه اینه که زبان ابجکت های فرم تغییر نمی کنن ! ولی برنامه exe شده درست کار میکنه .
    موفق باشید
    منظورتو از زبان آبجكتهاي فرم چيه ؟ نكنه در حالت طراحي رو مي گين يا حالت اجرا از درون ويژوال بيسيك

    در هر صورت هم از درون محيط و هم فايل Exe تست شده هستند
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  6. #6
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    در هر صورت هم از درون محيط و هم فايل Exe تست شده هستند
    سلام
    براي من هم در حالت طراحي وقتي برنامه رو اجرا مي كنم كار نمي كنه. به خاطر on errorي هست كه تو رويداد load وجود داره. وقتي on error رو برداريم اين خطا رو ميده:
    عکس های ضمیمه عکس های ضمیمه
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  7. #7
    کاربر تازه وارد آواتار hamedMohammad
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    53

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط vbhamed مشاهده تاپیک
    منظورتو از زبان آبجكتهاي فرم چيه ؟ نكنه در حالت طراحي رو مي گين يا حالت اجرا از درون ويژوال بيسيك

    در هر صورت هم از درون محيط و هم فايل Exe تست شده هستند
    سلام بر vbhamed عزیز

    منظورم اینه که فرض کن برنامه در حالت زبان انگلیسی باشه ، وقتی کامند باتون Persian را زدیم انتظار دازیم کاپشن کامندهای فرم فارسی بشن ولی این اتفاق نمی افته!
    راستی یه سوال ! فرم frmdata هنگام اجرای پروژه بکار گیری می شه؟ اگه جواب مثبته به چه شکل ؟

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

  8. #8

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    با سلام خدمت شما دوست عزيز كامند هاي برنامه ي شما وقتي فايل exe اش رو باز مي كني با وقتي كه با خود vb باز مي كني فرق دارد مي توني بگي چطور اين كار رو كردي
    متشكرم abulfazl

  9. #9

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط xxxxx_xxxxx مشاهده تاپیک
    سلام
    براي من هم در حالت طراحي وقتي برنامه رو اجرا مي كنم كار نمي كنه. به خاطر on errorي هست كه تو رويداد load وجود داره. وقتي on error رو برداريم اين خطا رو ميده:
    سلام

    براي رفع مشكل بايد سرويس پك 6 ويژوال استوديو رو نصب كنيد يا اينكه خاصيت Connect كنترل dta در فرم frmData رو به جاي Access2000، روي Access قرار بديد
    آخرین ویرایش به وسیله vbhamed : یک شنبه 11 اسفند 1387 در 01:05 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  10. #10

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط hamedMohammad مشاهده تاپیک
    سلام بر vbhamed عزیز

    منظورم اینه که فرض کن برنامه در حالت زبان انگلیسی باشه ، وقتی کامند باتون Persian را زدیم انتظار دازیم کاپشن کامندهای فرم فارسی بشن ولی این اتفاق نمی افته!
    راستی یه سوال ! فرم frmdata هنگام اجرای پروژه بکار گیری می شه؟ اگه جواب مثبته به چه شکل ؟

    ممنونم همیشه موفق باشی
    ---------------------------------------------------------
    حلول ماه ربیع الاول بر همه جهانیان مبارک باد
    سلام

    براي رفع مشكل پست 9# رو ببينيد


    راستی یه سوال ! فرم frmdata هنگام اجرای پروژه بکار گیری می شه؟ اگه جواب مثبته به چه شکل ؟

    سؤال خوبي كرديد، frmData براي اين هست كه اين برنامه ترجمه رو از طريق تابع Translate در ماژول انجام مي ده و اين تابع فرم مورد نظر رو به عنوان پارامتر مي گيره و عناوين اون رو ترجمه مي كنه و براي خواندن اطلاعات زبانها از بانك اطلاعاتي نيازمند كنترل Data اي هست كه هميشه در دسترس باشه كه در فرم frmData قرار داره
    اما اگر قرار باشه Data در هر فرم جداگانه قرار بگيره مصرف حافظه بيشتر، سرعت و انعطاف پذيري كمتري داريم
    آخرین ویرایش به وسیله vbhamed : یک شنبه 11 اسفند 1387 در 01:15 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  11. #11

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط abulfazl مشاهده تاپیک
    با سلام خدمت شما دوست عزيز كامند هاي برنامه ي شما وقتي فايل exe اش رو باز مي كني با وقتي كه با خود vb باز مي كني فرق دارد مي توني بگي چطور اين كار رو كردي
    متشكرم abulfazl
    سلام

    اين كار با اعمال استايل ويندوز بر روي برنامه انجام شده كه نمونه مثالهاش تو سايت هست

    تابع Api زير بايد فراخواني بشه


    Private Sub Form_Initialize()
    InitCommonControls
    End Sub


    ضمنا فايل MultiLanguage.exe.manifest بايد در پوشه برنامه وجود داشته باشه
    البته به جاي MultiLanguage.exe در نام بالا، اسم فايل Exe برنامه خودتون رو بزاريد
    آخرین ویرایش به وسیله vbhamed : جمعه 22 فروردین 1393 در 23:45 عصر
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  12. #12

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

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

    استفاده از tag رو به هیچ وجه توصیه نمی کنم. چون در خیلی از جاها نیاز به تغییر زبان دارید و آن جاها tag ندارید! به عنوان مثال هدرهای یک گرید رو به چه شکلی می خواهید فارسی بکنید؟ هدرها که tag ندارند!

    مطمئا موقعیت مکانی آبجکت فارسی و انگلیسی در فرم یکسان نخواهد بود. برای حل این مشکل چه پیشنهادی دارید؟
    آخرین ویرایش به وسیله jk : دوشنبه 12 اسفند 1387 در 11:35 صبح

  13. #13

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

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

    استفاده از tag رو به هیچ وجه توصیه نمی کنم. چون در خیلی از جاها نیاز به تغییر زبان دارید و آن جاها tag ندارید! به عنوان مثال هدرهای یک گرید رو به چه شکلی می خواهید فارسی بکنید؟ هدرها که tag ندارند!

    مطمئا موقعیت مکانی آبجکت فارسی و انگلیسی در فرم یکسان نخواهد بود. برای حل این مشکل چه پیشنهادی دارید؟
    سلام
    در اين روش هم از tag استفاده نشده است
    براي اشيائي هم كه خاصيت Caption يا Text ندارند (مثل گرايدهاي مختلف يا ...)
    برنامه قابل گسترش مي باشد، مثلا اگر از FlexGrid استفاده شده بود تابع Translate به شكل زير تعميم مي يابد


    With frmData.dta.Recordset

    For Each obj In frm.Controls

    If TypeOf obj Is VSFlexGrid Then

    ...

    End If


    به جاي ... فرض را بر اين مي گيريم كه Obj اسم يك FlexGrid هست و با اين نام تمام خواص و متدهاي FlexGrid قابل استفاده هستند، مثلا با خاصيت TextMatrix ميشه متن هدر رو عوض كرد

    Obj.TextMatrix(0,1) = "Test"
    آخرین ویرایش به وسیله vbhamed : پنج شنبه 14 شهریور 1392 در 10:07 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  14. #14
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    ممنون از برنامتون 2 تا سوال داشتم:
    يكي اينكه وقتي زبان برنامه رو تغيير ميديم اين تغييرات فقط روي همون فرم اصلي اجرا ميشه و روي بقيه فرم ها اعمال نميشه چي كار بايد بكنيم واسه بقيه فرم ها كه بعد از انتخاب زبان مورد نظر تمام فرم هاي پروژه روشون اعمال بشه.

    و يكي ديگه اينكه آيا ميشه متن پيغامها رو هم مطابق زبان مورد نظر در بياريم و يا اگه داخل برناممون يكي از ابزار هاي Codejock مثل CommandBar داشه باشيم چي.
    ممنون ميشم توضيح بديد.

  15. #15
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام

    جناب vbhamed ميشه توضيح بدين چطوري بايد تابع Translate رو تعميم بديم كه به Caption هاي يك RibbonBar و يا هيدرهاي يك VSFlexGrid دسترسي داشته باشيم و بتونيم اونارو تغيير بديم.

  16. #16
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط vbhamed مشاهده تاپیک
    سلام

    1 - به خاطر استفاده از بانك اطلاعاتي سرعت بالايي نيز دارد (البته ميشه از فايل متني يا ريسورس نيز استفاده كرد)
    سلام . استفاده از بانک اطلاعاتی به نظر من مناسب نیست . بهتر بود از فرمت های دیگه مثل ini و xml استفاده میکردید.

    استفاده از فایل های متنی مزایایی داره که ممکنه در مورد بانک اطلاعاتی صدق نکنه مثل. حجم بسیار پایین و ست کردن خیلی راحت .

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

    بنده در تمام پروژه های بزرگی که کار کردم اگه نیاز به چند زبانه بود از این فرمت ها استفاده کردم . تا الان کاربرهاش هم هیچ مشکلی در این زمینه نداشتند.

    یکی از بهترین روش های ini در IDM پیاده شده. در مورد ریسورس هم میتونم به CClearner اشاره کنم. که فکر کنم بایستی مثل Babylon یک تولز جدا برای ویرایش فایل هاش که به dll تغییر نام داده استفاده کرد.

  17. #17
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    دوستان عزيز لطفا بحث رو منحرف نكنيد .آقا من يك سوال پرسيدم از دوستان كسي ميدونه بايد چي كار كنم ؟.(پستهاي 14 و 15)
    دوست عزیز هدف ما منحرف کردن بحث نیست . ببینید وقتی میشه با روش های ایده آل تر MultiLanguage رو پیاده کرد حالا چرا از این روش .
    مسئله بعدی شما چطور به این نتیجه رسیدین که بحث داره منحرف میشه؟

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    ممنون از برنامتون 2 تا سوال داشتم:
    يكي اينكه وقتي زبان برنامه رو تغيير ميديم اين تغييرات فقط روي همون فرم اصلي اجرا ميشه و روي بقيه فرم ها اعمال نميشه چي كار بايد بكنيم واسه بقيه فرم ها كه بعد از انتخاب زبان مورد نظر تمام فرم هاي پروژه روشون اعمال بشه.

    و يكي ديگه اينكه آيا ميشه متن پيغامها رو هم مطابق زبان مورد نظر در بياريم و يا اگه داخل برناممون يكي از ابزار هاي Codejock مثل CommandBar داشه باشيم چي.
    ممنون ميشم توضيح بديد.
    در مورد سوال اول شما چون شما گفتی :
    Translate Me, CurrentLanguage, "English"

    که در واقع به اینجا اشاره داره:

    Public Sub Translate(frm As Form, FromLanguage As String, ToLanguage As String)

    سوال دومم :
    بله هم در مورد کدجاک و هم درمورد کادر پیام قابل پیاده سازی است
    آخرین ویرایش به وسیله vbhamed : جمعه 22 فروردین 1393 در 23:48 عصر

  18. #18
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    مسئله بعدی شما چطور به این نتیجه رسیدین که بحث داره منحرف میشه؟
    اونش مهم نيست مهم اينه كه درراستاي عنوان تاپيك بحث ادامه پيدا كنه نه خراب كردن گروه هاي برنامه نويسي.( البته من منظورم بيشتر متوجه جناب kooroushخان بود )

    بله هم در مورد کدجاک و هم درمورد کادر پیام قابل پیاده سازی است.


    البته اينو ميدونم و لي نميدونم چطوري بايد اين كار رو بكنم . راستش من يك برنامه دارم داخلش از VSFlexGrid و RibbonBar و چند تا ابزار ديگه استفاده كردم و احتياج به تغيير زبانم دارم كه بقيه ابزار هامو تونستم با برنامه اي كه داريم دربارش بحث ميكنيم تغيير بدم ولي در مورد اين 2 تا يعني Ribbon و Vs نتونستم .

    راهنمايي ميخام كه اگه مشكلي نيست همراه با مثال باشه.

    استفاده از فایل های متنی مزایایی داره که ممکنه در مورد بانک اطلاعاتی صدق نکنه مثل. حجم بسیار پایین و ست کردن خیلی راحت .


    در اين تاپيك يكي از دوستان لطف كرد برنامشو قرار داد بنظرم منظورتون بايد يك همچين چيزي باشه خوب بگين در مورد همين 2 ابزار كاربردي (Ribbon و Vs )چطوري بايد Caption ها و هيدر ها رو مطابق با زبان مورد نظر دربياريم.

  19. #19
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    اونش مهم نيست مهم اينه كه درراستاي عنوان تاپيك بحث ادامه پيدا كنه نه خراب كردن گروه هاي برنامه نويسي.
    در این مورد باید بگم که بنده همیشه سعی مینم قوانین رو رعایت کنم و فکر نکنم پست های من در تاپیک اصلا موردی داشته باشه.

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک

    البته اينو ميدونم و لي نميدونم چطوري بايد اين كار رو بكنم . راستش من يك برنامه دارم داخلش از VSFlexGrid و RibbonBar و چند تا ابزار ديگه استفاده كردم و احتياج به تغيير زبانم دارم كه بقيه ابزار هامو تونستم با برنامه اي كه داريم دربارش بحث ميكنيم تغيير بدم ولي در مورد اين 2 تا يعني Ribbon و Vs نتونستم .

    راهنمايي ميخام كه اگه مشكلي نيست همراه با مثال باشه.
    دوست عزیز خیلی وقته که دیگه از این زبان و از این کنترل استفاده نمیکنم . الان دقیق یادم نیست.
    ولی تا اون جایی که یادم مونده در مورد VSFlexGrid هدر ها ور که خیلی راحت میشد تغییر داد. نمیدونم شاید لینک زیر بتونه کمک کنه

    http://www.barnamenevis.org/at...5&d=1222246673


    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک

    در اين تاپيك يكي از دوستان لطف كرد برنامشو قرار داد بنظرم منظورتون بايد يك همچين چيزي باشه خوب بگين در مورد همين 2 ابزار كاربردي (Ribbon و Vs )چطوري بايد Caption ها و هيدر ها رو مطابق با زبان مورد نظر دربياريم.
    خیر منظورمو توی پست اولم در این تاپیک گفتم. این لینکی هم که شما گفتین اصلا برای برنامه های بزرگ که نیاز به بروزرسانی مداوم دارند به درد نمیخوره.. البته نمونه های ini تو این سایت زیاد هست . ولی xml رو نمیدونم
    اون مثال Lang1 که اصلا مالتی لنگج نیست ...
    اون دومی هم که با حلقه پیاده سازی شده مناسب نیست. ( البته بستگی به برنامتون داره )
    آخرین ویرایش به وسیله حمید محمودی : پنج شنبه 20 اسفند 1388 در 11:24 صبح

  20. #20

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام به همه و مخصوصا shahmahi
    بحث خوبي رو شروع كرديد به نظر من هم ذخيره زبان ها در بانك كار صحيحي نيست و بهتره در فايل هاي جداگانه مثل txt يا xml يا نظير اينها ذخيره بشن . البته اگه برنامه فرم و كنترل هاي زيادي نداره ميشه در بانك هم ذخيره بشه ولي اگر مثلا 150 تا فرم و كلي كنترل وجود داره بهتره در بانك ذخيره نشه .
    اگر از ريبون codejock استفاده كرديد كه خودش يه مثال براي مولتي لن داره كه اتفاقا با XML و Dll هم ساخته شده . موقع رجيستر كد جوك هم ازتون مي پرسه كه ميخواهيد به صورت اسكي رجيستر بشه يا يوني كد كه شما بايد يوني كد رو انتخاب كنيد . البته خودشون توضيح دادند كه يونيكد حافظه بيشتري رو اشغال مي كنه. البته مثالش براي ريبون نيست , اگه خواستي بگو بذارم
    آخرین ویرایش به وسیله unforgiven : پنج شنبه 20 اسفند 1388 در 12:02 عصر

  21. #21
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    خیر منظورمو توی پست اولم در این تاپیک گفتم. این لینکی هم که شما گفتین اصلا برای برنامه های بزرگ که نیاز به بروزرسانی مداوم دارند به درد نمیخوره.. البته نمونه های ini تو این سایت زیاد هست . ولی xml رو نمیدونم
    اون مثال Lang1 که اصلا مالتی لنگج نیست ...
    اون دومی هم که با حلقه پیاده سازی شده مناسب نیست. ( البته بستگی به برنامتون داره )
    من خيلي دوست دارم با تجربه هاي افراد مختلف آشنا بشم و استفاده كنم شما قبلا تو همين ضمينه كار كردين پس ميشه يك نمونه از برنامه هاي خودتون رو كه مناسب هست براي مولتي لنگويج رو اينجا ضميمه كنين تا من و بقيه دوستان هم استفاده كنيم. ممنون ميشم.

  22. #22
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    من خيلي دوست دارم با تجربه هاي افراد مختلف آشنا بشم و استفاده كنم شما قبلا تو همين ضمينه كار كردين پس ميشه يك نمونه از برنامه هاي خودتون رو كه مناسب هست براي مولتي لنگويج رو اينجا ضميمه كنين تا من و بقيه دوستان هم استفاده كنيم. ممنون ميشم.
    راستش من قبلا هم گفتم خیلی وقته که از VB6 استفاده نمیکنم. کد های که توسط گروه نرم افزاری ما برای مالتی لنگج استفاده میشوند همگی برای زبان های دیگه هست که اکثرا برپایه INI استفاده میشه. کاربران زیادی هم از برنامه های ما استفاده میکنند که تا حالا مشکلی نداشتند. در مورد مثال هم گفتم یه سرچ کنید نمونه هاش تو همین سایت هست . تو سایت های دیگه هم همین طور . البته این رو هم باید بگم که اکثرا مشکل دارند. همانطور که قبلا هم گفتم شما اگه از روش مالتی لنگج IDM استفاده بکنید بهترین گزینه برای برنامه هایتون خواهد بود


    موفق باشید.

  23. #23
    کاربر دائمی آواتار M.T.P
    تاریخ عضویت
    دی 1388
    محل زندگی
    Planet Earth
    پست
    1,769

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط dcamera مشاهده تاپیک
    راستش من قبلا هم گفتم خیلی وقته که از VB6 استفاده نمیکنم. کد های که توسط گروه نرم افزاری ما برای مالتی لنگج استفاده میشوند همگی برای زبان های دیگه هست که اکثرا برپایه INI استفاده میشه. کاربران زیادی هم از برنامه های ما استفاده میکنند که تا حالا مشکلی نداشتند. در مورد مثال هم گفتم یه سرچ کنید نمونه هاش تو همین سایت هست . تو سایت های دیگه هم همین طور . البته این رو هم باید بگم که اکثرا مشکل دارند. همانطور که قبلا هم گفتم شما اگه از روش مالتی لنگج IDM استفاده بکنید بهترین گزینه برای برنامه هایتون خواهد بود


    موفق باشید.
    دوست من dcamera اگه ایده ای نظری ، طرز فکر خاصی چیزی داری بفرما این بنده خدا کارش راه بیفته (هم کار ما رو و هم برنامه vbhamed بنده خدا رو بردی زیر ذره بین که چی؟!) من خودم میدونم اون دوتا برنامه کارایی 100درصد نداره ،،، ایشون(Shahmahi) خب انگار اون دوتا برنامه من(LAN1 LAN2) که همینطوری به ذهنم رسید به کارشون نیومد و صرفا به خاطر این بود که بتونن در مورد این مسئله فکر کنند.
    شاید اگه یه کم راجع بهش فکر کنیم بشه با دستکاری و تغییر ،، حال و هواشو عوض کرد و به یک روش ایده آل واسه تغییر زبان برنامه درآوردش....تا اینکه ازش انتقاد کنیم.

    تا جایی که من دیدم تمام برنامه های مهم دنیا مثلا(Office) که زبان فارسی هم واسش نصب میشه فقط نمای ظاهری (فرم ، منو ، پیغام و ...) رو فارسی میکنند و کاری با اطلاعات در حال تغییر و ترجمه مقادیر دیتابیس لود شده نداره ، اگه غیر از اینه یه نمونه معرفی کنید!
    راستی Shahmahi این جدولی که شما داری چه نوع اطلاعاتی رو توش لود میکنی؟

  24. #24
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط Persianlord مشاهده تاپیک
    هم کار ما رو و هم برنامه vbhamed بنده خدا رو بردی زیر ذره بین که چی؟!)
    هیچی. مگه نه اینکه فروم ها جایی برای تبادل نظر و تجربات برای همه است. من هم نظر و تجربه چنیدن ساله خودم رو گفتم. (کار و زحمت همه در هر حدی برای من مورد احترام است)

    نقل قول نوشته شده توسط Persianlord مشاهده تاپیک
    من خودم میدونم اون دوتا برنامه کارایی 100درصد نداره ،،،
    بله . من هم که چیزه دیگه ای نگفتم. اون lan1 که اصلا هیچی (البته با عرض پوزش). اون دومی هم با تغییراتی میشه بهترش کرد اما در کل خوب نیست.

    نقل قول نوشته شده توسط Persianlord مشاهده تاپیک
    ایشون(Shahmahi) خب انگار اون دوتا برنامه من(LAN1 LAN2) که همینطوری به ذهنم رسید به کارشون نیومد و صرفا به خاطر این بود که بتونن در مورد این مسئله فکر کنند.
    شاید اگه یه کم راجع بهش فکر کنیم بشه با دستکاری و تغییر ،، حال و هواشو عوض کرد و به یک روش ایده آل واسه تغییر زبان برنامه درآوردش....تا اینکه ازش انتقاد کنیم.
    در این مورد باید بگم که متاسفانه وقت کافی برای این کار در اختیار بنده نیست. وگرنه تغییر دادنش کار سختی نیست. در مورد انتقاد هم که گفتین بر میگرده به همین نوشته اولم. تو این پست.

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


    نقل قول نوشته شده توسط Persianlord مشاهده تاپیک
    دوست من dcamera اگه ایده ای نظری ، طرز فکر خاصی چیزی داری بفرما این بنده خدا کارش راه بیفته
    .من پست های قبلیم گفتم که. اما مثل اینکه نیاز به توضیح بیشتر داره. دوست عزیز ایده من اینه که از روش مالتی لنگج idm استفاده بشه ( که متاسفانه من کدی رو خصوصا با وی بی ندارم و ندیدم ... اما نزدیک به این روش مثال هاش هست)

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

    • استفاده از روش INI File
    • داشتن ID مخصوص در فایل متنی برای هر کنترل در برنامه که این کار باعث بالا رفتن قدرت انعطاف پذیری برنامه برای کامپایل های بعدی میشه.
    • دانلود آسان و سریع و ست کردن خیلی راحت در برنامه ولود شدن سریع
    • ترجمه کردن راحت فایل های لنگج توسط کاربران
    • قابلیت اضافه کردن هر نوع خصوصیات برای هر نوع کنترل یا متن که نیاز به نمایش داره.
    • و...

    البته ممکنه در مورد روش های دیگه مثل بانک یا ریسورس این موارد صدق کنه ولی همش باهم نه اینطور نیست

    یه نگاهی به IDM بندازین شاید بهتر بتونین منظور منو متوجه بشین. بنده روش های زیادی رو تست کردم و سر اخر به جوابی بهتر از این که باب میل کاربر هام باشه نرسیدم.

  25. #25
    کاربر دائمی آواتار M.T.P
    تاریخ عضویت
    دی 1388
    محل زندگی
    Planet Earth
    پست
    1,769

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط dcamera مشاهده تاپیک

    • استفاده از روش INI File
    • داشتن ID مخصوص در فایل متنی برای هر کنترل در برنامه که این کار باعث بالا رفتن قدرت انعطاف پذیری برنامه برای کامپایل های بعدی میشه.
    خب الان این شد یه چیزی
    اگه در هر خط از فایل متنی که من با روش دوم یعنی (LAN2) نوشتم اسم کنترل رو بنویسیم و در خط بعد متن اون رو و یه سرچ بزاریم هر جا اسم کنترل رو پیدا کرد خط بعدش رو به عنوان متن کنترل بگیره و بهش اعمال کنه ... چطوره؟

    مثلا به این شکل:
    CmdOK
    ok
    CmdCancel
    Cancel
    CmdEdit
    Edit
    CmdClose
    End

    البته این روش بازهم واسه ترجمه متون دیتابیس که معلوم نیست از چه نوع دیتایی هستن به درد نمیخوره و واسه تغییر زبان کنترل ها خوبه

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

  26. #26
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط Persianlord مشاهده تاپیک
    خب الان این شد یه چیزی
    اگه در هر خط از فایل متنی که من با روش دوم یعنی (LAN2) نوشتم اسم کنترل رو بنویسیم و در خط بعد متن اون رو و یه سرچ بزاریم هر جا اسم کنترل رو پیدا کرد خط بعدش رو به عنوان متن کنترل بگیره و بهش اعمال کنه ... چطوره؟

    مثلا به این شکل:
    CmdOK
    ok
    CmdCancel
    Cancel
    CmdEdit
    Edit
    CmdClose
    End

    البته این روش بازهم واسه ترجمه متون دیتابیس که معلوم نیست از چه نوع دیتایی هستن به درد نمیخوره و واسه تغییر زبان کنترل ها خوبه

    یا اینکه واسه خوانا شدن فایل متنی تو Tag هر کنترل شماره خطی که متن اون کنترل تو فایل هست رو بنویسیم... اینم به هرحال یه جورشه
    خیر منظور من این بود .(فایل زیر رو بعد از اکسترکت با notepad باز کنید )
    فکر نکنم دیگه نیاز به توضیح باشه
    فایل های ضمیمه فایل های ضمیمه

  27. #27
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    روش اینم حدودا یه چیزی در این مایه ها :

    موفق باشید
    عکس های ضمیمه عکس های ضمیمه

  28. #28
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    ایشون(Shahmahi) خب انگار اون دوتا برنامه من(LAN1 LAN2) که همینطوری به ذهنم رسیدبه کارشون نیومد و صرفا به خاطر این بود که بتونن در مورد این مسئله فکر کنند.
    دوست عزيز راستش من درباره برنامه هاي چند زبانه اطلاعات كمي دارم اولش برنامه شما رو ديدم يكم باهاش ور رفتم به كارم نيومد بعد برنامه جناب vbhamed رو ديدم تا حدي مشكلمو حل كرد يعني تونستم مشكلمو در باره هيدر هاي VSFlexGrid حل كنم و كار كرد بعد با توجه به بحث هايي كه شد برنامه زير رو پيدا كردم كه در واقع همون چيزيه كه جناب dcamera گفتن يعني INI File كه بعد از اين دوباره رفتم سر خونه اول ، بازم با vs و Ribbon مشكل پيدا كردم .

    لطفا درمورد برنامه زير راهنماييم كنيد كه چه كنم.
    راستی Shahmahi این جدولی که شما داری چه نوع اطلاعاتی رو توش لود میکنی؟
    يك سري لغت هستش هم به صورت فارسي و هم انگليسي كه در واقع لغت هاي يك ديكشنري هستن. البته اين تغيير زبان رو واسه ترجمه اين لغات نميخام استفاده كنم فقط Caption هاي Ribbon و هيدر Vs رو بتونم با برنامه زير يا هر برنامه ديگه تغيير بدم مشكلم حل شده.
    فایل های ضمیمه فایل های ضمیمه

  29. #29
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    نقل قول نوشته شده توسط shahmahi مشاهده تاپیک
    دوست عزيز با توجه به بحث هايي كه شد برنامه زير رو پيدا كردم كه در واقع همون چيزيه كه جناب dcamera گفتن
    خیر . فکر کنم شما دقیقا متوجه پست های من نشدید.

    فرض کنید که در یه پروژه ای چند فرم و چند صد کنترل وجود داره. و این پروژه به 50 زبون مختلف ترجمه شده. حالا شما بعد از اینکه چهار ورژن رو بیرون دادید و خاستید که ورژن 5می رو بیرون بدید و اسم یه کنترل رو در پروژه تون عوض کنید ( بنا به دلایلی ) باید توی تموم 50تا فایل لنگج اسم اون کنترل رو تغییر بدیدن. حالا این روش مناسبه؟!!! بهتر نبود فقط توی ماژول پروژتون یکبار اسم کنترل رو عوض میکردید!!!! تازه اینم در بهترین حالتشه
    آخرین ویرایش به وسیله حمید محمودی : پنج شنبه 20 اسفند 1388 در 21:05 عصر

  30. #30
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    بهتر نبود فقط توی ماژول پروژتون یکبار اسم کنترل رو عوض میکردید!!!!
    اين چيزي كه شما ميگين بنظرم درسته پروژه اي هم كه ضميمه كردم مال من نيست از اينترنت پيدا كردم . شما كه ايرادشو ميگين لطفا راه برطرف شدنشو هم كه ميگين همراه با كد باشه تا به نتيجه هم برسيم .


    يك سوال ديگه : من چطوري ميتونم Caption هاي يك RibbonBar و يا پيغامهايي كه داخل برنامم هستش رو به ماژولم بفهمونم .

  31. #31
    کاربر دائمی آواتار aryasoft2872
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    بیرجند
    پست
    399

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    با سلام راجع به زبان و استفاده از ریبون اگه بخوایم همزمان تغییر بدیم که کار سختی می شه و از خوصله افراد خارج ولی کاری که من توی parniyan pdf reader هم انجام دادم و در در ریبون هم کاربرد داشت این بود که اومدم یک پلاگین ساده ساختم تا باهاش اطلاعاتی رو که می خوام توی لیست باکس بریزه و بعدش ذخیره کنه و موقع لود برنامه لیست باکس رو توی یک فرمی که هیچوقت باز نمی شه گذاشتم و و از روی منوی مین هرچی رو می خواستم از اون لیست باکس با توجه به اندیس گرفتم دیگه نه مشکل سرعت هست نه مشکلات پایگاه داده ولی تنها مشکلی که وجود داره اینه که برای هر بار تغییر زبان برنامه باید ریستارت بشه ولی خیلی از برنامه های خارجی هم این مشکل رو دارن و اهمیتی نداره

  32. #32

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام

    جناب dcamera و shahmahi و بقيه دوستان

    من هم روشهاي چند زبانه ساختن برنامه هاي مختلف و معروف رو ديدم

    اگر ممكنه مزيتها و معايب اين روشي كه در اين تاپيك معرفي كردم رو بگيد.

    سرعت اجرا ؟
    سرعت چند زبانه كردن اوليه برنامه ؟
    انعطاف پذيري ؟
    پشتيباني از اشياء مختلف و قابليت تعميم ؟
    سرعت گسترش برنامه چند زبانه ؟

    من يك برنامه خيلي ساده نوشتم كه خودش متنها رو از تو فايل سورس برنامه در مياره و در صورتيكه تو بانك اطلاعاتي نباشه، اون رو اضافه مي كنه، فقط كافيه شما بانك رو باز و ترجمش رو بنويسي

    حالا ميشه بگين روشهايي كه شما معرفي كردين چه برتريها و چه عيبهايي نسبت به اين روش داره ؟
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  33. #33
    کاربر دائمی آواتار shahmahi
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    161

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    اگر ممكنه مزيتها و معايب اين روشي كه در اين تاپيك معرفي كردم رو بگيد.
    سلام
    مزايا شو كه خودتون توي تاپيك اول توضيح دادين حرفيم توش نيست فقط يك چيزي كه توي برنامه شما منو اذيت كرد فهموندن كپشنها به ماژولتون بود كه يكم سخت بود درباره VS كه بعد از كلي كلن جار رفتن تونستم هيدرهارو هر چند تا كه باشن رو با توجه به تابع Translate شما تغيير بدم ولي در مورد Ribbon كه اصلا نتونستم و براي tooltiptext هم اولش مشكل داشتم بعدش رفع شد و براي متن پيغام هايي كه تو برنامم بود هم نشد كه از برنامه شما استفاده كنم البته يكم به كم تجربه بودن منم برميگشت كه نتونستم از برنامه شما استفاده كنم .

    كه فكر كنم استفاده از همون فايلهاي Lng راحت تر از همه باشه من بعد از كلي جست و جو تونستم با استفاده از همين نوع فايلها كپشن تمام قسمتهايي رو كه لازم داشتم عوض كنم حتي نحوه RightToLeft و متن پيغامها رو با توجه به زبان انتخابي به راحتي تونستم تغيير بدم.
    در كل الگوريتمي كه استفاده كردين خيلي جالب بود ولي كار كردن باهاش بنظرم سخت اومد البته اين نظر منه.
    با سلام راجع به زبان و استفاده از ریبون اگه بخوایم همزمان تغییر بدیم که کار سختی می شه و از خوصله افراد خارج ولی کاری که من توی parniyan pdf reader هم انجام دادم و در در ریبون هم کاربرد داشت این بود که اومدم یک پلاگین ساده ساختم تا باهاش اطلاعاتی رو که می خوام توی لیست باکس بریزه و بعدش ذخیره کنه و موقع لود برنامه لیست باکس رو توی یک فرمی که هیچوقت باز نمی شه گذاشتم و و از روی منوی مین هرچی رو می خواستم از اون لیست باکس با توجه به اندیس گرفتم دیگه نه مشکل سرعت هست نه مشکلات پایگاه داده ولی تنها مشکلی که وجود داره اینه که برای هر بار تغییر زبان برنامه باید ریستارت بشه ولی خیلی از برنامه های خارجی هم این مشکل رو دارن و اهمیتی نداره
    در مورد ريبون هم راه حل ساده تري است كه من از همين استفاده كردم ميشه متن كپشنهاي ريبون رو در هنگاه لودشدن فرم مقدار دهي كرد به شكل زير :
    Private Sub CreateActions()
    CommandBars.EnableActions
    CommandBars.Actions.Add ID_FILE, "Caption", "ToolTipText", "DescriptionText", "File"
    End Sub

    ID_FILE = شماره آيدي كه توسط اون ميشه به تمام كپشنها دسترسي داشت
    بقيشم كه مشخصه ،كه يك بار به زبان فارسي مقدار دهي ميكنيد و يك بار هم به زبان ديگه كه مثلا انگليسي هستش متنها رو كامل ميكنيد بعد با توجه به انتخاب زبان توسط كاربر هر كدوم كه لازم بود رو فراخاني ميكنيد.

  34. #34

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام

    نمي دونم مشكلتون براي Ribbon و ساير اشياء چي بوده ولي يك راه كلي وجود داره كه بايد انجام بشه

    1 - متن مورد نظر كه قراره ترجمه بشه بايد به نحوي با يك آي دي مشخص بشه مثلا در خاصيت Tag و غيره يا از ايندكسش استفاده بشه

    2 - آي دي مورد نظر در فايل lng يا ini جستجو و پيدا بشه كه البته چون فايل متنيه، جستجو در اون با سرعت كمتري از ديتابيس انجام ميشه

    3 - متن جايگزين بشه

    اما در روش بالا فقط قسمت آخر رو داريم و جستجو هم كه به راحتي و با سرعت در ديتابيس انجام ميشه

    براي رشته هاي داخل برنامه هم مي تونيد يك Id تعريف كنيد و با يك روال فرضي زير رشته رو از بانك لود و نمايش بديد

    Function StringFromDatabase(Id as long) As String
    'load string from file with Id
    End Function


    فكر نمي كنم كار سختي باشه اين ها
    در صورتيكه در ساير روشها كار خيلي بيشتري بايد انجام بشه
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 اسفند 1393 در 00:02 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  35. #35
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال که 4 زبانه ----

    نقل قول نوشته شده توسط vbhamed مشاهده تاپیک
    من هم روشهاي چند زبانه ساختن برنامه هاي مختلف و معروف رو ديدم

    اگر ممكنه مزيتها و معايب اين روشي كه در اين تاپيك معرفي كردم رو بگيد.

    سرعت اجرا ؟
    سرعت چند زبانه كردن اوليه برنامه ؟
    انعطاف پذيري ؟
    پشتيباني از اشياء مختلف و قابليت تعميم ؟
    سرعت گسترش برنامه چند زبانه ؟

    من يك برنامه خيلي ساده نوشتم كه خودش متنها رو از تو فايل سورس برنامه در مياره و در صورتيكه تو بانك اطلاعاتي نباشه، اون رو اضافه مي كنه، فقط كافيه شما بانك رو باز و ترجمش رو بنويسي

    حالا ميشه بگين روشهايي كه شما معرفي كردين چه برتريها و چه عيبهايي نسبت به اين روش داره ؟
    سلام. همانطوری که قبلا هم اشاره کردم، استفاده از روش فایل متنی مزیت های بسیاری داره. شما که میگین روشهای چند زبانه برنامه های معروف رو دیده اید باید بهتر بدونین که روش بانک مناسب نیست . من به مزیت های روش بانک در چند زبانه کار ندارم. به نظر من هر یک از مواردی که الان میخام اشاره کنم میتونه باعث بشه برنامه ای که نوشتیم از نظر کاربر دور بشه. البته این رو هم باز قید میکنم که بستگی داره که منظور ما چه برنامه ای باشه. برنامه ای که ماهی چند بار آپدیت میشه و کاربران بسیار زیادی در سطح کشور داره و یا یه برنامه ساده...

    شما میکنین که استفاده از روش بانک برای برنامه نویس ساده هست و پیچیدگی رو میاره پایین و خیلی راحت میشه ازش استفاده کرد. اما به نظر من بهتره که نظرات کاربرانی که از نرم افزارهای ما کار کردند رو لحاظ کنیم و نه راحتی خودمونو... شاید این بحث مطرح بشه که خوب ما روش بانک رو استفاده کردیم و خیلی ها ( و اصلا همه) باهاش راحترن. اما به این هم باید توجه کرد که مثلا اگه بخایم یک آپدیت از همین فایل لنگج که کاربران ما دارن ازش استفاده میکنن بیرون بدیم . به همه بگیم (یا توی برناممون پیاده کنیم) هر میخاد تموم پک لنکج ها رو یه سره دانلود کنه .... بهتر نبود ورژن کنونی فایل لنگج رو با اونی که روی سرور هست بررسی کنیم و بعدش پیغام دانلود فقط همین فایل رو به کاربر بدیم. البته میشه با روش بانک هم این رو پیاده کرد ولی خوب باز اونم با پیاده سازیش بایستی یه کارایی کرد که دردسر داره و مشکلاتی رو بوجود میاره...

    مزایای روش فایل متنی رو من فکر کنم توی پست های قبلی خودم گفتم (خصوصا اون شکل که خیلی تابلوه ) از معایبش هم میتونم فقط به پیچیدگی ظاهری برای برنامه نویس در زمان پیاده سازی نرم افزار اشاره بکنم. بازهم میگم با روش مالتی لنگجی که توی IDM استفاده شده میشه هر نوع متنی رو برای هر نوع خصوصیات انواع کنترل و به طور کل هر نوع متنی که نیاز به نمایش داره با سرعت خیلی بیشتر از روش بانک استفاده بشه. که البته با بانک/ریسورس (جدا و یا پیوست شده) شاید بشه شبیه به فایل متنی پیاده بشه اما فکر نکنم بشه رضایت کاربر ها رو برای تموم حالات یک برنامه ایدال چند زبانه جلب کرد . این رو هم میگم من فقط تجربه کاریمو تو این چند سال برنامه نویسی بیان کردم و کاربرهای ما خیلی زیاد از این روش راضی هستند. ولی هر کسی هر روشی که دوست داره میتونه استفاده کنه حتی اون روش Lan1 دوستمون رو

    متاسفانه بنده دارم روی پروژههایی کار میکنم که تموم وقت منو گرفته و وقت کافی برای توضیح بیشتر رو ندارم

    موفق باشید

  36. #36

    Wink نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال که 4 زبانه ----

    سلام

    من به مزیت های روش بانک در چند زبانه کار ندارم.
    مگر ميشه موضوع به اين مهمي رو ناديده گرفت !

    شما میگین که استفاده از روش بانک برای برنامه نویس ساده هست و پیچیدگی رو میاره پایین و خیلی راحت میشه ازش استفاده کرد. اما به نظر من بهتره که نظرات کاربرانی که از نرم افزارهای ما کار کردند رو لحاظ کنیم و نه راحتی خودمونو...
    درسته كه ما گفتيم برنامه نويسها راحت تر مي تونن كار كنن، اما نگفتيم كار كاربران مشكل ميشه

    به نظر شما گذاشتن يك فرم با يك گرايد خيلي ساده كه به بانك وصله و فقط دو تا ستون داره و امكان ويرايش و اضافه كردن زبان رو به كاربر مي ده كار سختيه ؟

    اما به این هم باید توجه کرد که مثلا اگه بخایم یک آپدیت از همین فایل لنگج که کاربران ما دارن ازش استفاده میکنن بیرون بدیم . به همه بگیم (یا توی برناممون پیاده کنیم) هر میخاد تموم پک لنکج ها رو یه سره دانلود کنه .... بهتر نبود ورژن کنونی فایل لنگج رو با اونی که روی سرور هست بررسی کنیم و بعدش پیغام دانلود فقط همین فایل رو به کاربر بدیم. البته میشه با روش بانک هم این رو پیاده کرد ولی خوب باز اونم با پیاده سازیش بایستی یه کارایی کرد که دردسر داره و مشکلاتی رو بوجود میاره...
    اولا كه با بانك هم ميشه، ثانيا اگر براي هر زبان از يك ديتابيس استفاده نماييد، دانلود يك فايل ديتابيس 65 كيلوبايتي با اينترنت ذغالي هم راحته تازه اگر فشردش كنيد كه ميشه چند كيلوبايت

    بازهم میگم با روش مالتی لنگجی که توی IDM استفاده شده میشه هر نوع متنی رو برای هر نوع خصوصیات انواع کنترل و به طور کل هر نوع متنی که نیاز به نمایش داره با سرعت خیلی بیشتر از روش بانک استفاده بشه.
    هر نوع شي ئي كه با اين روش هم ميشه ولي دليلتون براي سرعت بيشتر چيه ؟

    هدف من از اين روش اينه كه خيلي راحت بتونيد برنامتون رو چند زبانه كنيد

    فرض كنيد يك برنامه حسابداري نوشتيد با 50 تا فرم و 1000 تا شي ء
    مي دونيد دادن 1000 تا Id و پياده سازي اونها چه زمان طولاني يي مي بره
    اينقدر كه اصلا خيلي ها منصرف ميشن، مخصوصا اگر از اول اينكار رو انجام نداده باشن

    بعدش فكر كنيد هر آپديتي روي فرمتون انجام بدين بايد فايلهاي زبان رو اصلاح كنيد

    ولي در اين روش، هر تغييري تو برنامتون بدين نياز به هيچ كار ديگه اي نيست
    فقط كلمات و جملات جديد رو به بانكتون اضافه كنيد
    آخرین ویرایش به وسیله vbhamed : پنج شنبه 14 شهریور 1392 در 10:16 صبح
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  37. #37
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام.

    مگر ميشه موضوع به اين مهمي رو ناديده گرفت !
    آره دیگه وقتی کاملا منظورمونو توی نوشته هامون نیاریم خوب برداشت هایی که ازش میشه ممنکه اونی نباشه که ما میخاستیم بگیم. منظورم از اون نوشته این بود که هر یکی از مشکلات و نقص هایی که در روش بانک هست ممکنه جلوی خوبی های این روش رو بگیره. بعد از همین جمله ای که شما در جوابش میگین نمیشه نادیش گرفت، بیان کردم که.

    درسته كه ما گفتيم برنامه نويسها راحت تر مي تونن كار كنن، اما نگفتيم كار كاربران مشكل ميشه. به نظر شما گذاشتن يك فرم با يك گرايد خيلي ساده كه به بانك وصله و فقط دو تا ستون داره و امكان ويرايش و اضافه كردن زبان رو به كاربر مي ده كار سختيه ؟
    نه به نظر من اینطور نیست که بخوایم مثلا برنامه ای رو که کاربرهامون دادیم اگه یه تولز جدا ویرایش متون لنگج بسازیم و بگیم از اون طریق اقدام کنن و یا بگیم با همین ACCESS بازش کنین ترجمش کنین کار سختی برای کاربران باشه. منظورم استفاده از روش خود بانک بود. همانطور که توی پست های اولم تو این تاپیک عرض کردم. به نطر بنده اگه بخوایم تمامی مزیت های و خاصیت یه برنامه مالتی لنکج رو پیاده بکنیم استفاده از روش فایل متنی بهتر است. به علاوه اگه دقت کنیم فایل متنی رو میشه از همین راهی که گفته شد هم ویرایش کرد و با اصلا با هر نوع ویرایشگر ساده ای مثل notepad و خیلی راحت تر از بانک

    اولا كه با بانك هم ميشه، ثانيا اگر براي هر زبان از يك ديتابيس استفاده نماييد، دانلود يك فايل ديتابيس 65 كيلوبايتي با اينترنت ذغالي هم راحته تازه اگر فشردش كنيد كه ميشه چند كيلوبايت
    بله . فکر کنم من هم گفتم میشه. این مطلبی هم که شما در مرود حجم میگین بله حجم فایل بانک خوب بعد از فشرده سازی خیلی ممکنه پایین بیاد . اما حجم فایل لنکج متنی همینجوریش در حد چند کیلو هست . اگه فشرده بشه (که نیازی نیست ) میشه در حد بایت.

    هدف من از اين روش اينه كه خيلي راحت بتونيد برنامتون رو چند زبانه كنيد.
    ولي در روش گفته شده شما هر تغييري تو برنامتون بدين نياز به هيچ كار ديگه اي نيست
    فقط كلمات و جملات جديد رو به بانكتون اضافه كنيد.

    فرض كنيد يك برنامه حسابداري نوشتيد با 50 تا فرم و 1000 تا شي ء
    مي دونيد دادن 1000 تا Id و پياده سازي اونها چه زمان طولاني يي مي بره
    اينقدر كه اصلا خيلي ها منصرف ميشن، مخصوصا اگر از اول اينكار رو انجام نداده باشن
    بله . من هم فکر کنم در خلال بحثی که با شما و دیگر دوستان داشتم بیان کردم که افراد برنامه نویس راحتر میتونن روش بانک رو پیاده کنن. خوب من بیان کردم که بستگی داره که بخوایم چه برنامه ای بنویسیم!! و در واقع چه افرادی اونو مینویسن.و تا چه حدی میخان برنامه رو بست بدن. همانطور که توی پست قبلی هم گفتم ( و شما هم الان گفتین ) پیچیدگی ظاهری در روش فایل متنی اجتناب ناپذیر است. ولی گروه برنامه نویسی متشکل از افراد مختلفی برای کارهای مختلف هستش که هر کدوم وظایف خودشونو باید انجام بدن. اونی که میخاد رهبری افراد رو برای پیشبرد پروژه جلو ببره بایستی مقدار بست دادن نرم افزاری رو که توی دستور کار گروه هست پیش بیینی کنه تا حداقل از دوباره کاری ها و بسیار مشکلات دیگه ای که ممکنه توی یه پروژه برزگ (مثل همون پایگاه داده و حسابداری که مثال زدین!) کمتر رخ بده. خوب مالتی لنکج در یه برنامه ای که در سطح ملی قراره منتشر بشه فکر کنم بدیهی هست که ابتداً بهش فکر بشه تا در حین پیشرفت پروژه مشکلی پیش نیاد. البته اگه توی vb از اول مالتی لنگج فکر بهش نشه و بعد از یه دفعه بخوایم باهاش به روش متنی استفاده کنیم خوب مشکلات خاص خودش رو داره. اما به نظر من خوب برنامه های خیلی بزرگ رو با وی بی 6 نمینویسن (به دلیل ضعف هایی که در برابر زبان های هم رده خودش داره )

    بعدش فكر كنيد هر آپديتي روي فرمتون انجام بدين بايد فايلهاي زبان رو اصلاح كنيد
    این مطلبی که شما میگین بستگی به نوع برنامه و برنامه نویس هاش داره. ما که تا حالا به مشکلی بر نخوردیم. درسته که اگه مثلا یه کنترل حذف بشه متنش توی تموم فایل های متنی هست . خوب توی بانک هم همینطوره . توی زبانی که ما کار میکنیم بدست آوردن لیست کنترل های جدید خیلی راحتره . به علاوه کامپوننت های زیادی با روش های بسیار ایده آل برای مالتی لنکج وجود داره. البته ما از روش خودمون استفاده میکنیم.

    هر نوع شي ئي كه با اين روش هم ميشه ولي دليلتون براي سرعت بيشتر چيه ؟
    بله من هم گفتم که اگه کار بشه روش بانک رو میشه به روش فایل متنی نزدیک کرد. در مورد سرعت هم بله اگه بخوایم روی کامپوتر خودمون که برنامه های سنگین رو خیلی راحت باز میکنه بسنجیم، سرعت فایل متنی و بانک حس نمیشه کرد. اما اگه روی کامپوتر هایی که رم و سی پی یو پایینی دارن( و امثالهم) امتحان بشه فکر کنم اون موقع بیشتر مشخص بشه. شاید این بحث مطرح بشه که امروزه کامپوتر ها همه سرعت بالایی در لود کردن برنامه های سنگین دارن اما به هر حال بایستی کمترین حافظه برای حالات یه اپلکیشن در حال اجرا از طرف برنامه نویس لحاظ بشه. و به علاوه هم روش بانک هم روش ریسورس (با ترکیب های مختلف ) در مقابل روش متنی که عرض کردم بصورت عملی تست شده اند و برای کاربران ما کارایی و راحتی کمتری رو داشته.

    در آخر هم راستش من الان که دارم این پست رو ریپلای میکنم هر چی فکر میکنم چیزی به خاطرم نمیاد که چه برنامه هایی مهم و معروفی الان از روش بانک استفاده میکنن؟؟

    موفق باشید

  38. #38
    کاربر تازه وارد آواتار mds_boy
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    گنبد کاووس
    پست
    94

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    از vbhamed عزیز ممنونم که این تاپیک رو ساخته، من هم تو فکرش بودم، و خیلی مفید بود و از برنامه خوبش هم ممنونم.
    اگه دوستانی که تجربه دارن در این زمینه، کمی راهنمایی کنن، نمونه مثالی از روشهای دیگه بزارین و .... .
    خودم دنباله این موضوع هستم، اگر مثالی یا مطلبی بدرد بخور دیدم در اینجا اضافه خواهم کرد.
    با تشکر.
    آخرین ویرایش به وسیله mds_boy : دوشنبه 15 شهریور 1389 در 20:38 عصر

  39. #39
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    www.gold-nevis.rzb.ir
    پست
    129

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    زبونش عوض نميشه...
    از vbhamed عزیز ممنونم که این تاپیک رو ساخته، من هم تو فکرش بودم، و خیلی مفید بود و از برنامه خوبش هم ممنونم.
    عالي بود واقعا!!!

  40. #40

    نقل قول: ---- آموزش ساخت برنامه چند زبانه با مثال 4 زبانه ----

    سلام دوستان
    من میخوام از این روش که دوست گرامی (vbhamed) ذکر کردند ، برای چند زبانه کردن نرم افزار استفاده کنم
    ولی میخوام فایل بانک اطلاعاتی توی ریسورس باشه
    چطور میتونم فایل بانک اطلاعاتی رو در ریسورس قرار بدم ؟؟
    ممنون میشم راهنمایی بفرمایید
    باتشکر از حسن توجه دوستان
    آخرین ویرایش به وسیله vbhamed : شنبه 04 اردیبهشت 1395 در 05:43 صبح

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •