23.1.10

Variation Example

 

private string VariationExample()
        {
            ReadOnlyCollection<VariationLabel> spawnedLabels = Variations.Current.UserAccessibleLabels;
            if (spawnedLabels.Count > 0)
            {
                string sourceLabelUrl = string.Empty;
                Dictionary<string, string> cultureCodeToUrlMapping = new Dictionary<string, string>();
                Dictionary<string, string> cultureCodeStrippedToUrlMapping = new Dictionary<string, string>();
                foreach (VariationLabel label in spawnedLabels)
                {
                    if (label.IsSource)
                    {
                        sourceLabelUrl = label.TopWebUrl;
                    }
                    CultureInfo labelCultureInfo = this.GetLabelCultureInfo(label);
                    string labelCultureInfoName = labelCultureInfo.Name.ToUpperInvariant();
                    if (!cultureCodeToUrlMapping.ContainsKey(labelCultureInfoName) || label.IsSource)
                    {
                        cultureCodeToUrlMapping.Remove(labelCultureInfoName);
                        cultureCodeToUrlMapping.Add(labelCultureInfoName, label.TopWebUrl);
                        string strippedCode = labelCultureInfoName.Split('-')[0];
                        if (!cultureCodeStrippedToUrlMapping.ContainsKey(strippedCode) || label.IsSource)
                        {
                            cultureCodeStrippedToUrlMapping.Remove(strippedCode);
                            cultureCodeStrippedToUrlMapping.Add(strippedCode, label.TopWebUrl);
                        }
                    }
                }
            }
            return null;
        }
        private CultureInfo GetLabelCultureInfo(VariationLabel label)
        {
            if (PropertiesOnLabelToUse.Locale == this.propertyOnLabelToUse)
            {
                return new CultureInfo(Convert.ToInt32(label.Locale, CultureInfo.InvariantCulture));
            }
            else
            {
                return new CultureInfo(label.Language);
            }
        }

 

…\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\VariationsRootLanding.ascx

No comments:

Post a Comment