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