/// <summary> /// Returns a standard Resx resource based on it's . delimited resourceset name /// </summary> /// <param name="varName">The name of the JavaScript variable to create</param> /// <param name="resourceSet">The name of the resource set /// /// Example: /// CodePasteMvc.Resources.Resources (~/Resources/Resources.resx in CodePasteMvc project) /// </param> /// <param name="localeId">IETF locale id (2 or 4 en or en-US or empty)</param> /// <param name="resourceType">ResDb or ResX</param> /// <returns></returns> public static string GetJavaScriptResourcesUrl(string varName, string resourceSet, string localeId = null, ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect) { if (localeId == null) { localeId = CultureInfo.CurrentUICulture.IetfLanguageTag; } if (resourceType == ResourceProviderTypes.AutoDetect) { if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded) { resourceType = ResourceProviderTypes.DbResourceProvider; } } StringBuilder sb = new StringBuilder(512); sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?"); sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}", resourceSet, localeId, varName, resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx"); sb.Append("&ResourceMode=1"); return(sb.ToString()); }
/// <summary> /// Inserts local resources into the current page. /// </summary> /// <param name="control">A control (typically) page needed to embed into the page</param> /// <param name="resourceSet">Name of the resourceSet to load</param> /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param> /// <param name="varName">Name of the variable generated</param> /// <param name="resourceType">Resx or DbResourceProvider (database)</param> /// <param name="includeControls">Determines whether control ids are included</param> public static void RegisterJavaScriptLocalResources(Control control, string varName, string localeId, string resourceSet, ResourceProviderTypes resourceType, bool includeControls) { string url = GetJavaScriptLocalResourcesUrl(varName, localeId, resourceSet, resourceType, includeControls); ClientScriptProxy.Current.RegisterClientScriptInclude(control, typeof(JavaScriptResourceHandler), url, ScriptRenderModes.Header); }
/// <summary> /// Embed global JavaScript resources into the page. /// /// This version returns resources of the active Resx or DB Resource Provider, /// includes no controls and uses the CurrentUICulture's locale id /// </summary> /// <param name="control">A control or page instance required to </param> /// <param name="varName">Name of the JavaScript object variable created</param> public static void RegisterJavaScriptLocalResources(Control control, string varName) { ResourceProviderTypes type = ResourceProviderTypes.AutoDetect; // translate current page path into resource path string resourceSet = WebUtils.GetAppRelativePath(); RegisterJavaScriptLocalResources(control, varName, CultureInfo.CurrentUICulture.IetfLanguageTag, resourceSet, type, false); }
/// <summary> /// Returns a URL to the JavaScriptResourceHandler.axd handler that retrieves /// normalized resources for a given resource set and localeId and creates /// a JavaScript object with the name specified. /// This function returns only the URL - you're responsible for embedding /// the URL into the page as a script tag to actually load the resources. /// </summary> /// <param name="varName"></param> /// <param name="resourceSet"></param> /// <param name="localeId"></param> /// <param name="resourceType"></param> /// <returns></returns> public static string GetJavaScriptGlobalResourcesUrl(string varName, string resourceSet, string localeId = null, ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect) { if (resourceType == ResourceProviderTypes.AutoDetect) { resourceType = ResourceProviderTypes.DbResourceProvider; } var sb = new StringBuilder(512); sb.Append("/JavaScriptResourceHandler.axd?"); sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}", resourceSet, localeId, varName, resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx"); sb.Append("&ResourceMode=1"); return(sb.ToString()); }
/// <summary> /// Inserts local resources into the current page. /// </summary> /// <param name="control">A control (typically) page needed to embed into the page</param> /// <param name="resourceSet">Name of the resourceSet to load</param> /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param> /// <param name="varName">Name of the variable generated</param> /// <param name="resourceType">Resx or DbResourceProvider (database)</param> /// <param name="includeControls">Determines whether control ids are included</param> public static string GetJavaScriptLocalResourcesUrl(string varName, string localeId, string resourceSet, ResourceProviderTypes resourceType, bool includeControls) { if (resourceType == ResourceProviderTypes.AutoDetect) { if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded) { resourceType = ResourceProviderTypes.DbResourceProvider; } } StringBuilder sb = new StringBuilder(512); sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?"); sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}&ResourceMode=0", resourceSet, localeId, varName, (resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx")); if (includeControls) { sb.Append("&IncludeControls=1"); } return(sb.ToString()); }
/// <summary> /// Returns a standard Resx resource based on it's . delimited resourceset name /// </summary> /// <param name="varName">The name of the JavaScript variable to create</param> /// <param name="resourceSet">The name of the resource set /// /// Example: /// CodePasteMvc.Resources.Resources (~/Resources/Resources.resx in CodePasteMvc project) /// </param> /// <param name="localeId">IETF locale id (2 or 4 en or en-US or empty)</param> /// <param name="resourceType">ResDb or ResX</param> /// <returns></returns> public static string GetJavaScriptResourcesUrl(string varName, string resourceSet, string localeId = null, ResourceProviderTypes resourceType = ResourceProviderTypes.AutoDetect) { if (localeId == null) localeId = CultureInfo.CurrentUICulture.IetfLanguageTag; if (resourceType == ResourceProviderTypes.AutoDetect) { if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded) resourceType = ResourceProviderTypes.DbResourceProvider; } StringBuilder sb = new StringBuilder(512); sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?"); sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}", resourceSet, localeId, varName, resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx"); sb.Append("&ResourceMode=1"); return sb.ToString(); }
/// <summary> /// Inserts local resources into the current page. /// </summary> /// <param name="control">A control (typically) page needed to embed into the page</param> /// <param name="resourceSet">Name of the resourceSet to load</param> /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param> /// <param name="varName">Name of the variable generated</param> /// <param name="resourceType">Resx or DbResourceProvider (database)</param> /// <param name="includeControls">Determines whether control ids are included</param> public static string GetJavaScriptLocalResourcesUrl(string varName, string localeId, string resourceSet, ResourceProviderTypes resourceType, bool includeControls) { if (resourceType == ResourceProviderTypes.AutoDetect) { if (DbSimpleResourceProvider.ProviderLoaded || DbResourceProvider.ProviderLoaded) resourceType = ResourceProviderTypes.DbResourceProvider; } StringBuilder sb = new StringBuilder(512); sb.Append(WebUtils.ResolveUrl("~/") + "JavaScriptResourceHandler.axd?"); sb.AppendFormat("ResourceSet={0}&LocaleId={1}&VarName={2}&ResourceType={3}&ResourceMode=0", resourceSet, localeId, varName, (resourceType == ResourceProviderTypes.DbResourceProvider ? "resdb" : "resx") ); if (includeControls) sb.Append("&IncludeControls=1"); return sb.ToString(); }
/// <summary> /// Inserts local resources into the current page. /// </summary> /// <param name="control">A control (typically) page needed to embed into the page</param> /// <param name="resourceSet">Name of the resourceSet to load</param> /// <param name="localeId">The Locale for which to load resources. Normalized from most specific to Invariant</param> /// <param name="varName">Name of the variable generated</param> /// <param name="resourceType">Resx or DbResourceProvider (database)</param> /// <param name="includeControls">Determines whether control ids are included</param> public static void RegisterJavaScriptLocalResources(Control control, string varName, string localeId, string resourceSet, ResourceProviderTypes resourceType, bool includeControls) { string url = GetJavaScriptLocalResourcesUrl(varName, localeId, resourceSet, resourceType, includeControls); ClientScriptProxy.Current.RegisterClientScriptInclude(control, typeof(JavaScriptResourceHandler), url, ScriptRenderModes.Header); }