היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.

עמודה קול ASP.NET תמיכה

כדי להתאים אישית את עמודה זו לצרכים שלך, אנו מזמינים אותך להגיש את הרעיונות שלך אודות נושאים המעניינים אותך ואת הנושאים שברצונך לראות נדונו בעתיד מאמרים במאגר הידע ועמודות קול תמיכה. באפשרותך לשלוח רעיונות ומשוב שלך באמצעות טופס שאל עבור אותו . הוא גם קישור לטופס בחלק התחתון של עמודה זו.

מבוא

ברוך הבא! זהו Sukesh Khare עם צוות תמיכה למפתחים של Microsoft ASP.NET. זו הפעם הראשונה אני כבר נכתבו על עמודה קול תמיכה. אשמח עריכת עמודות כאלה יותר בחודשים קדימה.

עבור עמודה של חודש זה, אני עומד לדיון בנושאים גלובליזציה ב- Active Server Pages (ASP) וב -ASP.NET, את הבעיות אנו פנים ב- ASP, כיצד דברים השתנו ב- ASP.NET 1 x ומהו עם ASP.NET 2.0 בחזית גלובליזציה.

הערה אם תגיע על-פני מונח שאינך מבין, ראה את הסעיף מילון מונחים בחלק התחתון של עמודה זו.

בעיות גלובליזציה ב- ASP

לפני ASP.NET, לא היה ללא תמיכה מובנית עבור הפיתוח של יישומים עבור משתמשים כלליים. במהלך הפיתוח המוקדם של ASP, מפתחים כגון בעצמי נמצא רק מפוזרים תמיכה עבור גלובליזציה ב מערכות הפעלה, דפדפנים, ASPs ומערכות עורפיות. עם זאת, אנו לעתים רחוקות התייחסות כל קישוריות אוטומטיים על-פני יישומים אלה. למרבה המזל, אנו הבין מושגים כגון ערכות תווים, דפי קוד, הדפדפן שפות וגופנים שבו אנו עלול לנצל עבור הפיתוח של יישומים עבור משתמשים כלליים.

זה יהיה קשה מדי להפריד בין קטגוריות גלובליזציה כל בעיות אלה של לנו ב- ASP.NET הראו. במקום זאת, פרט סידרה של מושגים הקשורים למגוון של בעיות אלה.

ערכות תו ו קידודים

ידוע לנו כל התווים על מסך המחשב שלנו הם רק סדרה של בתים. ניתן ליצור ותורגמו הסידרה בית בכל מספר של דרכים. אם הפענוח משתמש קידוד שונה מזה מערך הבתים נוצר באמצעות הקידוד, הפענוח יוצג כ פסולת. ערכות תווים (charsets) הם קידוד תבניות המשמשות בדרך כלל על-ידי דפדפנים. המאפיין Codepage ישימה יותר עבור המרות מצד השרת, היא פשוט טבלת המרה המציין כיצד תווים מקודדים.

דפדפנים לקדד את הנתונים post טופס לפי ערכת התווים הנוכחית. אם ערכת התווים הנוכחית הוא "windows-1256", לאחר מכן השידור בית לשרת גם מקודד כמספר "windows-1256."

כאשר מפורש על ASP, אוספים הטופס ואת שהשיטה לא לבנות עד הם מוזכרים בקוד. כאשר הם נמצאים שנבנה, נתוני מחרוזת מומרים ל- Unicode לפי הקידוד הנוכחי. (כברירת מחדל, ASP ו- ASP.NET לעבד תוכן על-ידי שימוש בתבנית Unicode). חשוב מאוד להגדיר את הקידוד הנכון לפני הפנייה האוספים; אחרת, ייצוג Unicode בזיכרון לא תהיה נכונה.

כדי להגדיר את קידוד של, השתמש Session.Codepage או Response.Codepage. Response.Codepage זמינה רק בגירסאות Microsoft Internet Information Services (IIS) 5.1 או גרסה מאוחרת יותר. לקבלת מידע אודות ערכי המספרים השלמים (המקבילים לערכת תווים) כי אנו להגדיר מאפיינים אלה כדי, בקר באתר האינטרנט הבא של Microsoft:

זיהוי ערכת תווים
http://msdn2.microsoft.com/en-us/library/Aa752010.aspxלדוגמה, כדי לקבוע את הקידוד עבור השפה הערבית, השתמש בקוד הבא:

Session.Codepage = 1256

Response.Codepage ישפיע רק את התגובה הנוכחית. עם זאת, Session.Codepage ישפיע על כל התגובות שבוצעו על-ידי המשתמש הנוכחי. כאשר הקידוד מוגדרת על-ידי שימוש אחד ממאפיינים אלה אוספים הטופס ואת שהשיטה בנויים, שינוי זה באופן הקידוד הנוכחי גורמת השיטה Response.Write לשינוי צורה של Unicode בזיכרון כדי הקידוד הנוכחי. לקבלת מידע נוסף אודות נושא זה, בקר באתר האינטרנט של MSDN הבא:

הגדרת הקידוד עבור מחרוזת המרות (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxBottom-line כאשר מדובר בבעיות הקשורות ל- charsets ואת קידודי charset לקוח זה ולא codepage השרת צריך להתאים.

קבל שפות

אם מפתח ASP מעוניין לדעת אילו שפות משתמש הגדיר בדפדפן שלו, המפתח יכול להשתמש המשתנה Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") כדי למצוא את רשימת השפות שבהן המשתמש מבקש לקרוא את התגובה, (כגון באנגלית, גרמנית או ההודי) ואת סדר עדיפות אשר המשתמש ירצו לראות שפות אלה. ב- ASP.NET, מידע דומה נמצא במאפיין Request.UserLanguages כמערך.
לקבלת מידע נוסף אודות אופן השימוש במידע זה בקוד ASP, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

229690 כיצד להגדיר את מזהה האזור ASP לפי הגדרות השפה של הדפדפן

הצגת תווים מרובת בתים תו מגדיר ב- Internet Explorer

תבנית קידוד היחיד שיכול להציג ערכת תווים מרובי בתים הוא Unicode (UTF-8). עם UTF-8, אנו יכולים להציג קירילית, ההודי ויפנית הכל בדף אחד. אם לא תעשה שימוש UTF-8, אנו הצג אחת משפות אלה בלבד בכל פעם. כדי להגדיר בערכת התווים של הדפדפן, השתמש במאפיין Response.CharSet .

תווים מרובי בתים סטטי בדף

כדי להציג תווים מרובי בתים המאוחסנים ישירות בדף, אנו תחילה עליך לשמור את הדף עם קידוד ספציפי. UTF-8 יהיו הטובות ביותר, אך קידוד ספציפי (תואם את קידוד התווים) יפעלו גם.

שמירת קובץ ASP באמצעות Microsoft Visual InterDev אינו עוזר כאן, מאז Visual InterDev ניתן לשמור רק ב- ANSI באנגלית או Unicode. כל דף ASP נשמר Unicode אינו תומך ב- ASP.

ב- Microsoft Visual Studio .NET, באפשרותך לשמור קובץ קידוד כלשהו. קיימות שתי דרכים לביצוע פעולה זו. ברירת המחדל היא הדרך כדי לשמור את הקובץ באמצעות הקידוד הנוכחי עבור המשתמש. דרך נוספת לשמירת קובץ עם קידוד הוא כדלהלן:
בתפריט קובץ , לחץ על שמירת קובץ בשם. ב-
הדו-שיח ' שמירת קובץ בשם , לחץ על החץ הנפתח ב-
לחצן שמור . כאשר תלחץ על החץ, האפשרויות הן
שמור ושמור עם קידוד. בעת לחיצה
שמור עם קידוד, תיבת הדו-שיח מתקדם אפשרויות שמירה מופיעה בו באפשרותך לבחור את סוג הקידוד הרצוי להחלת מתוך רשימה של קידודי המותקנים במחשב.


הערה פעולה זו משנה את הקידוד עבור שמירה הפעולה, אך מיועד פעם אחת בלבד. הבא שמור יוגדר בחזרה לברירת המחדל.

כדי לשנות את קידוד ברירת המחדל, לחץ על אפשרויות מתקדמות לשמור על ה
תפריט קובץ . בתיבת הדו-שיח אפשרויות מתקדמות שמור , באפשרותך להגדיר את קידוד ברירת המחדל עבור שמירה של פעולות הקידוד של הבחירה שלך.

שיטות אלה קשורות כיצד לשמור את הקובץ בדיסק. עם זאת, כדי לשלוט הפלט עבור ASP, כתוצאה כבר נידון, עלינו להגדיר את Session.CodePage ואת המאפיינים Response.CharSet . עם IIS 5.1 וגירסאות מאוחרות יותר, אנו יכולים גם להשתמש במאפיין Response.CodePage .

קידוד ברירת מחדל בשרת

אזור ברירת המחדל ואת קידוד ברירת המחדל עבור הדף תלויים הגדרות הרישום עבור ה. משתמש ברירת המחדל. אנו יכולים למצוא את מפתח בינלאומיות בכל כוורת הרישום HKEY_USERS\. DEFAULT\Control Panel\International. אנו גם, באפשרותך לשנות את אופן הפעולה של האזור שנבחר על-ידי IIS. לקבלת מידע נוסף, עיין בסעיף "IIS 5.0" במאמר Knowledge Base הבאים:

306044 התנהגות של תבנית התאריך והשעה שונה כאשר גישה מ- Active Server Pages

אם יש למשתמש המחובר באותו האזור שהוגדר כ המפתח לעיל או ברירת המחדל של המערכת, הגדרת המשתמש קדימות.

דוגמה: אזור ברירת המחדל יש תאריך תבנית מוגדרת כמדפסת 11.1.2004, בזמן שהמשתמש המחובר (עם אותה קבוצה האזור) יש תבנית תאריך כ- 1/11/2004. ההגדרה 1/11/2004 ייכנסו לתוקף עבור ASP.

(עבור ASP.NET, זה עשוי להשתנות. בהתקנות מסוימות, תהיה למשתמש ASPNET פרופיל משלו אשר יוצג תחת HKEY_USERS בעת טעינתה. במקרים אחרים, הוא ישתמש. פרופיל ברירת מחדל. אנו משתמשים גם את תכונת הקידוד בהצהרה < % @ % >. יש להשתמש כאשר הקובץ נשמר עם קידוד אחר מכן ברירת המחדל, כגון קידוד 932 (יפנית)).

בעיות קידוד לעומת בעיות בהמרת גופן: מיהו מה?

לפעמים, ייתכן שתראה תו סימן שאלה (?) או תיבה בה תו אמורה להופיע.

בעיות בהמרת קידוד

כאשר תו מוחלף על-ידי תו סימן שאלה (?), זוהי אינדיקציה כי אירעה בעיית המרת קידוד. סימן השאלה (?) הוא תו המהווה ברירת מחדל עבור המרת קידוד ו למעשה פירושו שמערכת ההפעלה לא יודע כיצד לטפל ערך תו ולהמיר אותה. הוא מחליף את הערך תו עם סימן שאלה (?). משמעות הדבר עשויה להיות התו כולל ערך לא חוקי עבור הקידוד או הקידוד הדרוש עבור ההמרה אינו מותקן.

בעיות בהמרת גופן

כאשר תו מוחלף על-ידי תיבה, זוהי אינדיקציה כי אירעה בעיית ההמרה של הגופן. דבר זה מתרחש בצד הלקוח כאשר הלקוח לא מותקן הגופן הנכונים מותקנים לתצוגה נכונה של תו זה. לדוגמה, כאשר הוא תו מתוך charset ביפנית, הלקוח אינו כולל גופנים יפניים מותקן, תו בשפה היפנית מוצג כתיבה.

בשלב הבא, אני נדבר על אופן השינוי של דברים ב- ASP.NET 1. x, ואת האופן שבו שינויים אלה משפיעים על בעיות גלובליזציה בהקשר של ASP.NET.

בעיות גלובליזציה ב- ASP.NET 1. x:

ב- ASP.NET, שלושה דברים נפלאים שהוצגו:

  • התג < גלובליזציה > בקובץ web. config
    התג < גלובליזציה > יובילו אותנו – הרחק המושגים incoherent של קידודי ו- charsets, ומאפשר לנו לשלוט רוב המשתנים בתוך ASP.NET.

  • השמות System.Globalization
    השמות גלובליזציה מספק לנו העוצמה תוכניתית של טיפול גלובליזציה.

  • הרעיון של קבצי משאבים שופרה במידה רבה.
    אנו לא להתמודד עם קבצי משאבים באופן שבו אנו המשמש ב- ASP. כעת, קבצי המשאבים הן בצורה של קבצי XML כאשר אנו לעצב ולפתח אותם, הם קיימים כפי האוסף בזמן ריצה.

תג התצורה של גלובליזציה:

שתי הגדרות חשובות בתג הן כדלקמן:

<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />

להלן אזורים אחרים של הגדרות אפשריות:

fileEncoding

מציין את קידוד ברירת המחדל עבור .aspx,. asmx ו בניתוח מבנה קובץ קבצי. Unicode ו- UTF-8 קבצים שנשמרו עם הקידומת סמן סדר בתים (בחתימה) אפשרות לזהות באופן אוטומטי, ללא קשר לערך של fileEncoding.

תרבות

מציין את תרבות ברירת המחדל עבור עיבוד בקשות אינטרנט נכנסות (רלוונטי על שיטות של מחלקות ממרחב השמות System.Globalization).

uiCulture

מציין את תרבות ברירת המחדל לעיבוד חיפושי משאבים תלויי-אזור (הרכבות נלוות).

לקבלת מידע נוסף אודות מחרוזות תרבות (הערכים של התרבות ו- uiculture), בקר באתר האינטרנט הבא של Microsoft:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxהגדרות אלה מוחלות על-ידי ASP.NET לאחר השלמת התגובה, ולפני הבקשה נמסר ליישום שלך. עבור responseEncoding, המאגר שנוצרת כדי לאחסן את הפלט מוגדר קידוד זה. כל מה שעובר למאגר זה יקודדו בהתאם להגדרה כפי הכנסתה לתוך המאגר.

עבור requestEncoding, זמן הריצה לקרוא את הבקשה ולתרגם אותו בהתאם להגדרה בסעיף זה. זוהי הגדרה אשר יכולים לגרום לבעיות, עם זאת. הטבלה הבאה מציגה את הפריסה סיביות של רצף חוקי של UTF-8 בתים.

אם ערך תו יורד בסיבית ASCII 7 סטנדרטיים, ערך הבית אינו משתנה. אם הערך הוא מעל 127, להיות מנוסח לפי הכללים שלהלן. ערכת הסיביות מוביל מציג כמה תווים הם ברצף. כל בית לאחר הראשון חייב להתחיל הסיבית הראשון מוגדר כ- 1.

פריסת UTF-8 בתים:

בתים

bits

ייצוג

1

7

0vvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

זהו מהיכן מגיעים לבעיה. אם הדפדפן מקדדת את בקשת לפי קידוד של בית בודד (כגון iso-8859-1), הערכים מעל 127 לא יהיה חוקי לפי הפריסה לעיל. כאשר הם נקראים לתוך המאגר UTF-8, תווים לא חוקיים פשוט ששוחררו מהפלט.

שינויים הקידוד של זמן ריצה

באירוע Application_BeginRequest , אנו יכולים לשנות את הערך של requestEncoding ולגרום לו ייכנס לתוקף לפני לעבד את הבקשה. בתגובה, הוא אירוע Page_PreRender הסיכוי האחרון כדי לשנות את הקידוד של הפלט. גם הערה כי Response.Write ימקם תווים מאגר זה ברגע אנו קוראים אותו, לכן הקפד בעל ערכת הקידוד הנכון לפני השימוש ב- Response.Write.

הנתונים המקורי הוא שאינו Unicode: כיצד להפוך עדיין לפרש charsets מרובה הבתים של Internet Explorer?

אנו יכולים גם לבצע ASP.NET מתנהגים כמו ASP אם עלינו. כדי לבצע פעולה זו להתרחש, עלינו להגדיר את responseEncoding ואת requestEncoding windows-1252 (מלאה יותר קידוד מ- iso-8859-1), ולאחר מכן להשתמש במאפיין Response.Charset כדי להציג את הטקסט כראוי. פעולה זו פועלת מכיוון windows-1252 היא ערכת הקידוד של בית בודד, אינה משנה את כל הבתים שנוספו למאגר. לכן, תווים כפולי-בתים נשלחים כסדרה של בתים יחיד. אנו יכולים לאחר מכן להורות לאינטרנט אקספלורר כיצד לפרש את הבתים באמצעות המאפיין Response.Charset . תרחיש זה ייתכן שיהיה צורך אם הנתונים המקוריים אינם מאוחסנים כ- Unicode או UTF-8, כגון ערך החזרה מתוך אובייקט COM, או אם ברצונך לאחסן את הנתונים ב- Microsoft SQL Server ב- N שאינו שדה (כגון varchar).

בעיות גלובליזציה של SQL Server ו- ASP.NET

קלט נתוני Unicode בשרת SQL

היא הדרך הטובה ביותר לאחסן נתונים ב- SQL Server כדי לנצל Unicode. בכל פעם אנו משתמשים הוספה, עדכון, וכן הלאה, אם יש סיכוי אפילו הקטנה ביותר של נתוני Unicode, עלינו להוסיף N לפני הערך. פעולה זו מיידעת מסד הנתונים של הערך הוא Unicode. דוגמה טובה לכך היא האובייקטים של ADO. הם לעשות זאת באופן אוטומטי אם נשתמש האובייקט Recordset כדי להוסיף רשומות חדשות.

הבאה היא דוגמה:

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"

תאריך/שעה קלט לשרת SQL

בדרך כלל יש לנו את הידע אודות תרבות והאזור של התאריך/שעה כעת מפורש ביישום ASP.NET שלנו. עם זאת, בעת ופורץ ושליפת הנתונים תאריך/שעה ועד ממקורות חיצוניים, אנו מסתכן misinterpreting תבניות תאריך/שעה. הסיבה לכך היא לא תמיד באפשרותנו לערוב תרבות והאזור של המקור החיצוני יהיה כמו היישום שלנו. ב- SQL Server זה יכול להתממש באמצעות ' הנוכחית שפה' תכונה ב- connectionstring של החיבור נוצר למסד הנתונים SQL. אנו יכולים לספק את הגדרת השפה זהה ב- connectionstring כפי שהיא התרבות ביישום שלנו. הדבר מגן לנו מסיכון של misinterpretation, מכיוון שרת SQL תמיד מקבל ושולח נתונים ' תאריך/שעה בהסכמה עם ההגדרה שצוינה קודם.

שמות System.Globalization

מרחב שמות זה הוא הליבה של גלובליזציה ולוקליזציה ב- .NET Framework. המחלקה הראשי להשתמש במרחב שמות זה היא מחלקת CultureInfo . הוא מחזיק ספציפית לתרבות מידע, כגון תבנית תאריך/שעה, תבניות מספר, מידע השוואה ומידע טקסט. לקבלת מידע נוסף אודות המחלקה CultureInfo , בקר באתר האינטרנט של MSDN הבא:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

תרבויות נייטרלית לעומת תרבויות מסוימות

תרבות נייטרלית היא תרבות המשויך שפה, אך לא מדינה או אזור מסוימים. תרבות ספציפי משויך הן עם שפה ומדינה ספציפיים.

דוגמה: "דה" (תרבות נייטרלית) עבור השפה הגרמנית, אך הוא "de-AT" (תרבות ספציפי) עבור השפה הגרמנית כפי אותו זה מוקרא ב אוסטריה. אין אפשרות להשתמש תרבויות נייטרלי לעיצוב.

המודעות הנוכחי של הליך משנה ותרבות של .NET Framework מחלקות

כל מחלקות ופעולות בספריית .NET Framework שבו אנו מצפים הפלט יהיה תלוי-תרבות יש שני בהתנהגויות המובנות:

  • הם מאפשרים לנו לציין את הקוד תרבות בעת ויישם את הארגומנטים כך הפלט מבוסס על התרבות שצוינה. פעולה זו היא אופציונלית.

  • אם הדבר לא נענית (בדרך כלל זהו), המחלקות הם חכמה מספיק להשאיר את הסימון על מאפיין Thread.CurrentThread.CurrentCulture ועבודה בהתאם אשר.

אנו יכולים לשנות ערך מאפיין זה עם קוד הדומה להודעה הבאה:

    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci

בדוגמה זו קוד, "דה" מייצג השפה הגרמנית, ו- "AT" מייצג אוסטריה. לכן, במקרה זה, DateTime.Now(). ToString שיטת יחזיר את התאריך והשעה בתוך תבנית מקביל הדרך התאריך והשעה מבוטאים בשפה הגרמנית ב אוסטריה.

המסגרת מבטיח (כמפורט להלן) המאפיין CurrentCulture מאותחל תמיד:

  1. כל מה שהיא מוגדרת באופן תוכניתי.

  2. במקרה הוא לא במפורש מוגדר על-ידי למתכנת, המאפיין לאסוף מקבצי תצורה (התג < גלובליזציה >).

  3. אם המאפיין חסר, שהיא קיימת התרבות שבו פועל שרת האינטרנט. זהו בדרך כלל התרבות הנייטרלית המתאים לשפה של מערכת ההפעלה.

קבצי משאבים

כל .resx, .resource קבצים, וקבצים בעלי תכונת לבנות פעולה להגדיר למשאב מוטבע הנוספות של ASP.NET לפרוייקט ב- Visual Studio .NET, באופן אוטומטי עברו קומפילציה ואין מוטבע בתוך יישום הרכבה כחלק במניפסט שלו. באפשרותך גם לבצע פעולה זו באופן ידני באמצעות כלי השירות מחולל קובץ משאב (RESGEN) באמצעות שורת פקודה Visual Studio .NET. לקבלת מידע נוסף, בקר באתר האינטרנט של MSDN הבא:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxזהו רעיון כללי שהוא ישים בכל פעם אנו זקוקים לניהול משאבים יישום אשר אינם קשורים גלובליזציה. עם זאת, כאשר אנו מיישמים גלובליזציה, אנו צריכים להשתמש הרכבות נלוות.

הרכבות נלוות

ניתן להשתמש הרכבות נלוות בפרוייקט של ASP.NET כאשר אתה מוודא שהבאים מתקיימים:

  1. כל רכיבי ממשק המשתמש בכל קבצי aspx צריך להיות מצויד מזהה ו- runat = תכונות שרת.

  2. אנו ליצור קבצים נפרדים .resx. כל אחד חייב להתאים לתרבות כל שברצוננו היישום שלנו לתמיכה.

  3. אנו עליך להחליט שם פרטי נפוצים עבור כל הקבצים הללו עבור לדוגמה 'מחרוזות'.

  4. אנו תנו לקבצים נפרדים .resx עם .resx commonfirstname. languagecode-אזורמתן השמות הבאים של מוסכמה (לדוגמה: Strings.de-AT.resx, Strings.en GB.resx).

  5. יש לנו את קובץ המשאבים
    .resx commonfirstname(Strings.resx) הכולל את כל המחרוזות כפי אנו רוצים להציג במקרה ברירת המחדל.

  6. לכתוב קוד כדי להגדיר את המאפיין ' Thread.CurrentThread.CurrentUICulture ' כדי להתאים לו ויוכל התרבות של המשתמש.

  7. לכתוב קוד כדי לטעון את המשאבים באמצעות מחלקת אובייקט ResourceManager .

  8. לכתוב קוד כדי לחלץ מחרוזות מאובייקט שנטען והקצאתן לרכיבי ממשק משתמש.

כאשר יש לבצע שלבים אלה, Visual Studio.NET הידור Strings.resx ואת להטביע אותו לתוך ההרכבה יישום (MyGlobalizationTestProjectName.dll). עם זאת, עבור כל הקבצים האחרים של .resx, הוא ייצור קבצי dll נפרדות שאין להן קוד הפעלה, אך רק נתוני משאבים. אלה למעשה נקראים הרכבות נלוות. כמו כן, Visual Studio .NET מקומות אלה במבנה התיקיות הדומה להודעה הבאה:MyGlobalizationTestProjectName |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

ההבדל בין CurrentCulture ל- CurrentUICulture

בעוד השיטות של מחלקות במרחב השמות System.Globalization תלויים המאפיין Thread.CurrentThread.CurrentCulture כדי להעניק את הפלט שלהן, המחלקה אובייקט ResourceManager שטוען ההרכבה משאב תלוי במאפיין Thread.CurrentThread.CurrentUICulture כדי לטעון את ההרכבה הלוויין המתאימה. להלן דוגמה של קוד C# הוא:

using System.Globalization;using System.Threading;
using System.Resources;

//Load resources.
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e)

{

if (!IsPostBack)

{
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
}

}

הסדר שבו ASP.NET בוחר הרכבות נלוות:

כאשר תגדיר את הליך המשנה CurrentUICulture, ASP.NET בוחר באופן אוטומטי את המשאבים המתאימים, לפי הסדר הבא:

  • אם מסוג satellite נמצא עם תרבות תואמים, משמשים את המשאבים מ הרכבה זו.

  • אם מסוג satellite נמצא עם תרבות נייטראלי התואם את CurrentUICulture, משמשים שבמשאבים הרכבה זו.

  • אם לא נמצא ערך תואם עבור CurrentUICulture, משמשים את משאבי הנסיגה המאוחסנים בהרכבה הפעלה.

הערה זה מבוסס על תהליך נסיגה כללי יותר של המשאבים. לקבלת מידע נוסף, בקר באתר האינטרנט של MSDN הבא:

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

יצירה ידנית של הרכבות נלוות:

שימוש זה של הרכבות נלוות הוא בו Visual Studio .NET יצירת ההרכבות עצמו. Visual Studio .NET אינו שם חזק הרכבות נלוות כברירת מחדל, עם זאת. אם ברצונך לשנות אפשרויות אלה, יהיה עליך ליצור באופן ידני את הרכבות נלוות. לקבלת מידע נוסף, בקר באתר האינטרנט של MSDN הבא:

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx.

מהו עם ASP.NET 2.0 בחזית גלובליזציה?

השימוש הנרחב של ASP.NET וסוגי הבעיות אנו רואים ביחס תכונות גלובליזציה ב- ASP.NET 2.0 עדיין מהווים חלק המרחק קדימה. עם זאת, זה יהיה טוב לקבל מבט קצר על איזה כיוון מתודולוגיית גלובליזציה ראש עבור יישומי אינטרנט.

תמיכה גלובליזציה ב- ASP.NET 2.0 עבר שינוי שורש ואת מפתחי אינטרנט שניתנו לך היכולת להפוך את ההתאמה לשפות אחרות של יישומי אינטרנט קלה כפי שהוא עבור יישומים מבוססי Windows. הבאה היא רשימה של תכונות שאינן היסוד של מתודולוגיית גלובליזציה ב- ASP.NET 2.0:

משאבים מסוג חזק בחלק הליבה של .NET Framework 2.0 מהדורה הוא תמיכה עבור משאבים מסוג חזק לספק למפתחים Intellisense ומפשטת את הקוד הדרוש כדי לגשת למשאבים בזמן ריצה.

עורך משאבי מנוהל Visual Studio .NET 2.0 כולל עורך משאב חדש עם תמיכה טובה יותר עבור יצירה וניהול של רשומות משאב כולל מחרוזות, תמונות, קבצים חיצוניים וסוגי מורכבים אחרים.

הפקת המשאב עבור טופסי אינטרנט מפתחי Windows Forms שנהנית כבר את היתרונות אינטרנציונליזציה אוטומטית. Visual Studio .NET 2005 יתמוך כעת אינטרנציונליזציה מהירה על-ידי יוצר אוטומטית של משאבים עבור טופסי אינטרנט, בקרות משתמש ודפים ראשיים.

זמן ריצה תמיכה משופרת מופעים של אובייקט ResourceManager והם מנוהלים על-ידי זמן הריצה נגיש קוד השרת באמצעות ממשקי תיכנות לנגישים יותר.

ביטויים התאמה לשפות אחרות ביטויים הצהרתי מודרני עבור דפי אינטרנט תומך מיפוי ערכי משאב כדי לשלוט מאפיינים, מאפייני HTML או אזורי תוכן סטטי. ביטויים אלה הם גם להרחבה, מתן דרכים נוספות כדי לפקח על התהליך של צירוף תוכן מותאם לשפות אחרות פלט HTML.

בחירה אוטומטית של התרבות ניהול תרבות הבחירה עבור כל בקשה אינטרנט יכול להיות מקושרות באופן אוטומטי העדפות דפדפן.

מודל ספק משאבים מודל ספק משאב חדש מאפשרת למפתחים משאבי המחשב המארח במקורות נתונים חלופי כגון קבצים שטוחים וטבלאות מסד הנתונים, בעוד מודל תיכנות עבור גישה למשאבים אלה נשאר עקבי.

לקבלת מידע נוסף אודות מתודולוגיית גלובליזציה ב- ASP.NET 2.0, בקר באתר האינטרנט של MSDN הבא:

תכונות ASP.NET 2.0 התאמה לשפות אחרות: חדשה הגישה ההתאמה לשפות אחרות של יישומי אינטרנט
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

מסקנה

זהו זה לעת עתה אודות בעיות גלובליזציה ב- ASP ו- ASP.NET. אני מקווה שמאמר זה יסייע ללקוחות כמה בעיות שלהם גלובליזציה ב- ASP ו- ASP.NET לפני שהם opt למחלקת התמיכה של Microsoft. תביא לסיום עם חשבתי הבאות:

"בכל מקום ובכל פיתוח, לחשוב על מיליוני אנשים שיכולים להעצים ברחבי העולם. ודא פתרונות שלך מוכן העולם! Microsoft כלים וטכנולוגיות להקל אינטרנציונליזציה."

אנו להתעדכן שוב בחודש הבא עם נושא מעניין אחר.

אני מודה לך על הזמן שלך.

לקבלת מידע נוסף אודות בעיות גלובליזציה ב- ASP ו- ASP.NET, עיין באתרי האינטרנט הבאים של Microsoft:

SetLocale ו- GetLocale ב- vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

גלובליזציה שלב אחר שלב
http://msdn.microsoft.com/en-us/goglobal/bb688110

מעבר כללית: ההתאמה לשפות אחרות של יישומי אינטרנט דינאמית עם IIS 5.0 ו- SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

מעבר כללית: עיצוב אתר האינטרנט שלך המבוסס על ASP כדי לתמוך גלובליזציה
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 כיצד לגלות שפה לקוח שרת פעיל דפים דף ב- IIS
http://support.microsoft.com/?id=315616

אזור התרשים ID(LCID)
http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

שמות System.Globalization
http://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

התאמה לשפות אחרות באמצעות .NET Framework SDK ומשאבים
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

משאבים ביישומי ASP.NET
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

אלמנט התצורה של ASP.NET < גלובליזציה >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

עיצוב והנחיות יישום עבור לקוחות אינטרנט - גלובליזציה ולוקליזציה
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

הרשמי באתר של Microsoft – הפיתוח הכללית ופורטל מחשוב
http://msdn.microsoft.com/en-us/goglobal/bb688096

פיתוח יישומים מוכנים העולם
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

ארכיטקטורת גלובליזציה עבור ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx

ערכת הסבה ארגון - עבור פיתוח יישומי Microsoft ASP.NET מותאמים לשפות אחרות
http://msdn2.microsoft.com/en-us/library/aa479334.aspx

Microsoft טיפוגרפיה
http://www.microsoft.com/typography/default.mspx

839861 A System.Resources.MissingManifestResourceException חריגה מתרחשת כאשר אתה מנסה לגשת למשאב המותאמות לשפות אחרות

מילון מונחים

ANSI מסמל מכון התקנים הלאומי. בהקשר זה, שהוא מייצג קידוד ספציפי עבור ערכת שפה/תווים ספציפיים. בדרך כלל מתייחס הקידוד באנגלית (windows-1252).

ASCII ערכת הקידוד בית אחד (או 7 סיביות). רק את התווים בטווח 0-127 הן סטנדרטיות. מ- 128-255 הוא הרחבות של ASCII ולא חלק הרגילה. דוגמה לכך היא ההבדל בין הטווח העליון של התרשים OEM ASCII תרשים VB ASCII.

CharSet הגדרת בשימוש בעיקר עבור Internet Explorer והדפדפנים המורה לדפדפן כיצד לפרש את נתוני תווים. דוגמה: Response.charSet = "iso-8859-1".

קידוד טבלת המרה המציין כיצד תווים מקודדים (משמש בדרך כלל עבור שרתים).

גלובליזציה גלובליזציה היא תהליך של עיצוב ויצירה של יישום כך אפשרות לענות על דרישות ייחודיות של תרבות, אזור או הצרכים הלאומי ואת לשוני. במילים אחרות, תכנון יישום באופן כי הוא יכול להיות מותאם מאוחר יותר היא גלובליזציה.

אזור/תרבות השפה אזור ספציפי תבניות/העדפות כולל, תאריך ואת תבניות לוח שנה, תבניות שעה, תבניות מטבע, מארז, מיון ואת השוואת מחרוזות, תבניות כתובת, טלפון תבניות מספר, גדלי נייר, יחידת מידה, כתיבת כיוון, וכן הלאה.

מזהה האזור (LCID) ערך DWORD המציין את מזהה השפה ואת מזהה המיון. הוא יכול לשמש כדי לציין תבניות אזור מסוים לדוגמה תאריך/שעה וכן הלאה יש להשתמש בתבנית בהתאם לשם.

Localizability היכולת של יישום להצגת תוכן עבור השפה/האזור שנדרשה.

התאמה לשפות אחרות התאמה לשפות אחרות הוא התהליך של תרגום ממשק משתמש לתוך האזורים ו/או שפות ספציפיות.

ערכת תווים מרובי בתים תו להגדיר בו התווים מורכבים הבתים שניים או יותר, כגון יפנית. UTF-8 גם נופל תחת קטגוריה זו. (Unicode טכנית בקטגוריה זו, אך ב- Windows, יש לה קטגוריה משלו.)

Unicode ערכת קידוד של 2 בתים. Windows משתמש Unicode באופן פנימי. כל רכיבי ה-Api במיוחד עבור Unicode הם המסומן באמצעות "W" בסופה של שם הפונקציה. מוכר גם בשם char רחב; אין אפשרות להשתמש ישירות מתוך יישומי אינטרנט.

UTF-8 קידוד תווים שבו תו יכול להיות מיוצג על-ידי 1-6 בתים. ב- Windows, הטווח הוא 1-3 בתים. אין תמיכה תחת NT4 עבור יישומי אינטרנט.
לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

תמיכה UTF8 175392


ערכת תווים רחב כינוי עבור Unicode. מוכר גם בשם DBCS (ערכת תווים של שני בתים), UCS-2, UTF-16.

מאחר תמיד, למען הרגש חופשי ליצור רעיונות בנושאים שברצונך לשלוח בעתיד עמודות או במאגר הידע באמצעות ה
טופס שאל עבור אותו .

זקוק לעזרה נוספת?

הרחב את הכישורים שלך

סייר בהדרכה >

קבל תכונות חדשות לפני כולם

הצטרף ל- INSIDERS של MICROSOFT 365

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?

תודה על המשוב!

×