예제 #1
0
        public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
        {
            RouteValueDictionary translatedValues
                = values;

            // > Establecer {lang}
            if (!values.ContainsKey("lang"))
            {
                values.Add("lang", CultureInfo.CurrentCulture.Name);
            }
            else if ((string)values["lang"] != CultureInfo.CurrentCulture.Name)
            {
                values["lang"] = CultureInfo.CurrentCulture.Name;
            }

            // > Traducir valores de la Ruta
            foreach (KeyValuePair <string, object> pair in this.RouteValueTranslationProviders)
            {
                IRouteValueTranslationProvider translationProvider
                    = pair.Value as IRouteValueTranslationProvider;

                if (
                    translationProvider != null &&
                    translatedValues.ContainsKey(pair.Key)
                    )
                {
                    RouteValueTranslation translation =
                        translationProvider.TranslateToTranslatedValue(
                            translatedValues[pair.Key].ToString(),
                            CultureInfo.CurrentCulture
                            );

                    translatedValues[pair.Key]
                        = translation.TranslatedValue;
                }
            }

            return(base.GetVirtualPath(requestContext, translatedValues));
        }
예제 #2
0
        public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
        {
            if (values.ContainsKey("childAction") && (bool)values["childAction"] == true)
            {
                return(base.GetVirtualPath(requestContext, values));
            }

            RouteValueDictionary translatedValues = values;

            foreach (KeyValuePair <string, object> pair in this.RouteValueTranslationProviders)
            {
                IRouteValueTranslationProvider translationProvider = pair.Value as IRouteValueTranslationProvider;
                if (translationProvider != null && translatedValues.ContainsKey(pair.Key))
                {
                    RouteValueTranslation translation =
                        translationProvider.TranslateToTranslatedValue(
                            translatedValues[pair.Key].ToString(), CultureInfo.CurrentCulture);

                    translatedValues[pair.Key] = translation.TranslatedValue;
                }
            }
            return(base.GetVirtualPath(requestContext, translatedValues));
        }