الحصول على جميع الثقافات معتمد من جمعية الأقمار الصناعية
-
03-07-2019 - |
سؤال
وأنا باستخدام التجميع القمر الصناعي لاحتواء كافة الموارد توطين في C # التطبيق.
وماذا أحتاج إلى القيام به هو إنشاء قائمة في واجهة المستخدم الرسومية مع جميع اللغات المتوفرة موجود للتطبيق. هل هناك أي طريقة للحصول على معلومات حيوي؟
المحلول
وهذه الدالة تقوم بإرجاع مجموعة من كافة الثقافات المثبتة في المجلد App_GlobalResources - تغيير مسار البحث وفقا لاحتياجاتك. للثقافة ثابتة فإنها ترجع "لصناعة السيارات".
public static string[] GetInstalledCultures()
{
List<string> cultures = new List<string>();
foreach (string file in Directory.GetFiles(HttpContext.Current.Server.MapPath("/App_GlobalResources"), \\Change folder to search in if needed.
"*.resx", SearchOption.TopDirectoryOnly))
{
string name = file.Split('\\').Last();
name = name.Split('.')[1];
cultures.Add(name != "resx" ? name : "auto"); \\Change "auto" to something else like "en-US" if needed.
}
return cultures.ToArray();
}
ويمكنك أيضا استخدام هذا واحد لمزيد من الوظائف الحصول على الحالات CultureInfo الكامل:
public static CultureInfo[] GetInstalledCultures()
{
List<CultureInfo> cultures = new List<CultureInfo>();
foreach (string file in Directory.GetFiles(HttpContext.Current.Server.MapPath("/App_GlobalResources"), "*.resx", SearchOption.TopDirectoryOnly))
{
string name = file.Split('\\').Last();
name = name.Split('.')[1];
string culture = name != "resx" ? name : "en-US";
cultures.Add(new CultureInfo(culture));
}
return cultures.ToArray();
}
نصائح أخرى
كل جمعية الأقمار الصناعية للغة معينة يدعى نفسها ولكن يكمن في مجلد فرعي اسمه بعد ثقافة معينة على سبيل المثال الاب او الاب-CA. م>
ربما يمكنك استخدام هذه الحقيقة ومسح التسلسل الهرمي للمجلد لبناء تلك القائمة بشكل حيوي.
لا تنتمي إلى StackOverflow