I have managed to localize the view pages in my application but there are master pages which contain some strings.
It appears that the string contained in master pag
You should use a Global Resource file.
App_GlobalResources
asp.net folderPublic
My.Resources.Resource.MyText
(VB Syntax)To access resource from source code of master page:
<asp:Literal ID="Literal2" runat="server" Text="<%$ Resources:ResourcesFileName, ResourcesName%>" />
If you don't want to mess with the access modifier, you could make a helper to simplify the code you have to write in order to access the resource file, something like:
public static class LocalizationHelper
{
public static string Localize(this HtmlHelper helper, string key)
{
var resourceObject = helper.ViewContext.HttpContext.GetGlobalResourceObject("NameOfResourceFileClass", key);
if (resourceObject == null)
{
// i don't recommend throwing the Exception class, I'd define my own Exception type here
throw new Exception(String.Format("Resource key '{1}' could not be found in Resource class '{0}'","NameOfResourceFileClass", key));
}
return resourceObject.ToString();
}
}
Then in your .master...
<%= Html.Localize("NameOfResourceKey") %>