Основываясь на статье aspnet-mvc-интернационализации, я создал отдельный файл ресурсов для каждой локали. Я могу обрабатывать все виды и встроенный код. Но как я должен обрабатывать данные, указанные в файле XML?
<?xml version="1.0" encoding="utf-8" ?>
<items>
<item Text="@Resources.Home" NavigateUrl="~/Home">
<item Text="@Resources.Dashboard" NavigateUrl="~/Routing/Dashboard"/>
</item>
</items>
@Resources.Home не работает. Это где-то похоже на sitemap.
Я вышел с решением, чтобы иметь xml файл для каждой локали. А затем свяжите путь с классом помощника locale.
public static string GetPath()
{
var culture = Thread.CurrentThread.CurrentUICulture;
string letters = culture.TwoLetterISOLanguageName;
if (String.IsNullOrWhiteSpace(letters))
return String.Empty;
return HttpContext.Current.Server.MapPath(String.Format("~/App_Data/TopMenu.{0}.xml", letters));
}
Например, TopMenu.en.xml, TopMenu.es.xml
.BindToXML(CultureHelper.GetPath(), "/items/*"). GetHtml()