SPNavigationNode.TitleResource Property

Gets an object that represents the SPUserResource that can be used to get or set translations for the navigation node title.

Namespace:  Microsoft.SharePoint.Navigation
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online


Public ReadOnly Property TitleResource As SPUserResource
Dim instance As SPNavigationNode
Dim value As SPUserResource

value = instance.TitleResource
public SPUserResource TitleResource { get; }

Property Value

Type: Microsoft.SharePoint.SPUserResource
An object that contains the user resource that can used to get or set the translations for the navigation node title.


This property is the source for the string returned by the Title property, which returns TitleResource.Value. The value that is returned by this expression can vary depending on the value of the CurrentUICulture of the current thread. For more information, see the SPUserResource.Value property.


The following example is a console application that creates a new navigation node that links to the Announcements list and adds the node to the Quick Launch area of a Web site. The application then iterates through the list of languages supported by the Web site's multilingual user interface and code copies localized values from the Announcement list's TitleResource property to the node's TitleResource property.


If you have deployed resource files (.resx) with translations to support your application, then you do not need to set the TitleResource property as the example does. Instead, pass a resource expression to the SPNavigationNode constructor. For example, the following line of code constructs a node that links to the Announcements list:

SPNavigationNode newNode = new SPNavigationNode("$Resources:core,announceList", list.DefaultViewUrl);

In the string that is passed as the first argument, the character "$" indicates an expression, "Resources" indicates the type of expression, "core" is the name of a resource file and "announceList" is the name of the resource. Spaces are not allowed in resource expressions, so there is no space after the comma.

using System;
using System.Globalization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

namespace ConsoleApp
    class Program
        static void Main(string[] args)
            using (SPSite site = new SPSite("http://localhost"))
                using (SPWeb web = site.RootWeb)
                    web.QuickLaunchEnabled = true;
                    web.IsMultilingual = true;

                    SPList list = web.Lists.TryGetList("Announcements");
                    if (list != null)
                        // Create a navigation node pointing to the Announcements list.
                        SPNavigationNode newNode = new SPNavigationNode(list.Title, list.DefaultViewUrl);

                        // Add the node to the Quick Launch area.
                        SPNavigationNodeCollection quickLaunch = web.Navigation.QuickLaunch;

                        // Copy translations of the list's title to the user resource for the node's title.
                        string localizedTitle;
                        foreach (CultureInfo culture in web.SupportedUICultures)
                            localizedTitle = list.TitleResource.GetValueForUICulture(culture);
                            newNode.TitleResource.SetValueForUICulture(culture, localizedTitle);
            Console.Write("\nPress ENTER to continue....");
Imports System
Imports System.Globalization
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Navigation

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("http://localhost")
            Using web As SPWeb = site.OpenWeb()

                web.QuickLaunchEnabled = True
                web.IsMultilingual = True

                Dim list As SPList = web.Lists.TryGetList("Announcements")
                If list IsNot Nothing Then
                    ' Create a navigation node pointing to the Announcements list.
                    Dim newNode As New SPNavigationNode(list.Title, list.DefaultViewUrl)

                    ' Add the node to the Quick Launch area.
                    Dim quickLaunch As SPNavigationNodeCollection = web.Navigation.QuickLaunch

                    ' Copy translations of the list's title to the user resource for the node's title.
                    Dim localizedTitle As String
                    For Each culture As CultureInfo In web.SupportedUICultures
                        localizedTitle = list.TitleResource.GetValueForUICulture(culture)
                        newNode.TitleResource.SetValueForUICulture(culture, localizedTitle)
                End If

            End Using
        End Using
        Console.Write(vbCrLf & "Press ENTER to continue....")
    End Sub

End Module

See Also


SPNavigationNode Class

SPNavigationNode Members

Microsoft.SharePoint.Navigation Namespace