Con questa classe helper si possono usare i file di risorse in qualsiasi Web Part o pagina all'interno di SharePoint 2007 (WSS3 - MOSS).

C#

using System;
using System.Collections.Generic;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;

namespace Sgart
{
    class Helper
    {
        private const string RESOURCEFILE = "SgartResourceTest";

        public static uint LangSiteTemplate
        {
            get  { return SPContext.Current.Web != null ? SPContext.Current.Web.Language : 1033;  }
        }

        public static uint LangLocale
        {
            get { return SPContext.Current.Web != null ? SPContext.Current.Web.RegionalSettings.LocaleId : 1033; }
        }

        public static string GetResource(string key)
        {
            return SPUtility.GetLocalizedString(
                string.Format("$Resources:{0}", key),
                RESOURCEFILE, LangLocale);
        }
    }
}
In questo caso il file di risorse si chiama SgartResourceTest.resx, costante RESOURCEFILE, e deve trovarsi nella cartella ...12\Resources , ovviamente si possono aggiungere altri file di risorse localizate (ad es. SgartResourceTest.it-IT.resx).
Per richiamare una risorsa è sufficiente invocare il metodo Helper.GetResource passando il nome della chiave nel file risorse.
Nell'esempio la lingua viene scelta in base alle impostazioni del regional setting del sito, proprietà LangLocal. E' possibile legare la localizzazione alla lingua del template di sito semplicemente usando la proprietà LangSiteTemplate:

C#

public static string GetResource(string key)
        {
            return SPUtility.GetLocalizedString(
                string.Format("$Resources:{0}", key),
                RESOURCEFILE, LangSiteTemplate);
        }
nel caso il file di risorse si trovasse in una sottocartella ad esempio ...12\Resources\MiaCartella\SgartResourceTest.resx la sintassi diventa:

SPUtility.GetLocalizedString("$Resources:nomeKey", "MiaCartella/SgartResourceTest", 1040)

Funziona anche con SharePoint 2010
Tags:
C#236 SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: