PDA

View Full Version : تبدیل (Persian (Iran به fa-IR



shahab_ksh
چهارشنبه 23 آبان 1386, 20:56 عصر
با سلام

خروجی Page.Culture مقدار Persian (Iran) می باشد حال چطور این رو تبدیل به fa-IR کنم
بدون استفاده از If و روشهای امثال اون بلکه بصورت مستقیم

یا آیا تابعی برای بدست آوردن مثلا fa-IR وجود داره؟

لطفا نگید قبلا بحث شده چون نشده !

Behrouz_Rad
چهارشنبه 23 آبان 1386, 21:14 عصر
مشکلتو بگو...

shahab_ksh
چهارشنبه 23 آبان 1386, 22:06 عصر
فرض کنید یک سایت چند زبانه بخایم بسازیم اما نمیخام برای هر صفحه یه Resources داشته باشم بلکه هر زبان یه Resources فرض کنید برای فارسی Persian (Iran).resx
که وقتی صفحه باز شد بر حسب Page.Culture فایل مربوط به اون در



label_username.Text = HttpContext.GetGlobalResourceObject("Persian (Iran)", "username")


انتخاب شود ( از این راه استفاده میکنم به جای خودکار انتخاب شدن فایل Resources خودم روش کنترل داشته باشم )

اما با این روش از نوع کارکتر های بکار رفته در Persian (Iran).resx (به خاطر فضای خالی) ایراد میگیره میخاستم به جای Page.Culture یه تابع پیدا کنم که به جای برگشت Persian (Iran) مقدار fa-IR برگردونه که بتونم از این بجای نام فایل استفاده کنم

Behrouz_Rad
چهارشنبه 23 آبان 1386, 22:29 عصر
زیاد مهم نیست که If یا Switch داشته باشه یا نداشته باشه.
تست کن ببین میتونی با UrlEncode مشکل رو برطرف کنی.
مثلا ("(HttpUtility.UrlEncode("Persian (Iran
در این حالت شاید با تبدیل فاصله به % مشکل بر طرف بشه.

موفق باشید.

shahab_ksh
چهارشنبه 23 آبان 1386, 22:47 عصر
مثلا ("(HttpUtility.UrlEncode("Persian (Iran

نشد مرسی


اما دیدم بعد از Compile فایل Persian (Iran).resx بصورت Persian__Iran_ کامپایل شده
فهمیدم بجای کارکتر فضای خالی و ( و ) کارکتر _ رو جایگزین کرده !

بنابراین تابع رو بصورت


Page.Culture.ToString.Replace(" ", "_").Replace("(", "_").Replace(")", "_")


در اوردم مشکل حل شد



HttpContext.GetGlobalResourceObject(Page.Culture.T oString.Replace(" ", "_").Replace("(", "_").Replace(")", "_"), "username")