Usare i file di risorse nelle Web Part e nelle pagine di SharePoint
Con questa classe helper si possono usare i file di risorse in qualsiasi Web Part o pagina all'interno di SharePoint 2007 (WSS3 - MOSS).
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#
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);
}
}
}
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
SPUtility.GetLocalizedString("$Resources:nomeKey", "MiaCartella/SgartResourceTest", 1040)
Funziona anche con SharePoint 2010