לוקאליזציה ב-2.0 / WinForm

זורום

New member
לוקאליזציה ב-2.0 / WinForm

שלום, אני מעוניין להוסיף יכולת לוקאליזציה לאפליקציית WinForm בבניה. אשמח ל- 1. סקירה של השיטה לעשות זאת. לינקים למאמרים מפורטים יתקבלו בברכה. 2. התייחסות לנושא ה-BIDI. 3. כיצד אתם מתמודדים עם נושא מיקום הפקדים בחלון, מבחינת קלות הפיתוח? להבנתי, ניתן הרי לנהל בקובץ ה-RES גם את מיקום הפקדים, אולם זה נראה לי סיזיפי במהלך הפיתוח. יש טריקים/טיפים בנושא?
 

זורום

New member
=תמיכה בשפות שונות

תפריטים, הודעות למשתמש, כיוון המסך וכו'.
 

Justin Angel

New member
קה רפבולמה מואי צ'יקיטה?

בנושא שינוי מיקום הפקדים ב-winform - הנושא לא נתמך באופן אוטומטי ולא בתכנון בכלל. תוכל בקלות להרחיב את System.Windows.Forms.Form בכדי לתמוך באפשרות זו. בזמן טעינת הטופס תוכל לבדוק אם השפה שנטענת היא שפת RTL ואם כן להחליף את מיקום הפקד (שיקרא X) ברוחב המסך (Y) פחות מיקום הפקד. קרי, שינוי המיקום מ-X ל-Y-X. לעוד מידע על חוסר התמיכה של דוט נט בשפות RTL: Visual Studio .NET® With Arabic Language Support
 

זורום

New member
לצערי, הלינק לא עובד. בנוסף,

אשמח לתשובות לגבי סעיפים 1,2 - סקירה של השיטה של פיתוח עבור לוקאליזציות שונות בליווי דוגמאות קוד, שלא לומר QUICKSTARTS או LABS... אני פשוט לא מכיר את הנושא של עבודה עם ה-RES ובנוסף, הבנתי שב-2.0 היו שינויים. תודה.
 

TTTTIS

New member
תגובה

בגרסה 2 (למזלך) זה הרבה יותר פשוט ממה שחשבת. מה שאתה צריך לעשות הוא את הפעולות הבאות: ב-Context Menu של הפרוייקט שלך תלחץ על Add ואז על New Item. תבחר מהרשימה Resource File, תן לו שם (למשל Strings.resx) - זה יהיה קובץ ברירת המחדל (כלומר אם לא נבחרה שפה ספציפית). ותלחץ Add. תוסיף לו איזה key (למשל: String1 ואיזשהוא ערך). עכשיו, תוסיף עוד אחד כזה אבל תקרא לו Strings.he-IL.resx. השם הוא משמעותי ותיכך אסביר עליו. תוסיף לו את אותו ה-key אבל עם ערך בעברית, ותקמפל. עכשיו מתוך הקוד, תוכל לקבל את הערכים הרלוונטיים לפי השפה הנדרשת, לדוגמא:
string defaultValue = Strings.ResourceManager.GetString("String1"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("he-IL"); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("he-IL"); string hebrewValue = Strings.ResourceManager.GetString("String1"); string contextValue = Strings.ResourceManager.GetString("String1", new System.Globalization.CultureInfo("he-IL"));​
השמות שנותנים בדר"כ לקבצי resource מורכבים מה-base name (במקרה שלנו זה Strings) ומאפיין שפה (במקרה שלנו he-IL). רשימה של כל מאפייני השפות תמצא כאן.
 
למעלה