SPWeb.ImportUserResources - Méthode
Importe des ressources de l'utilisateur pour la langue spécifiée.
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Sub ImportUserResources ( _
language As CultureInfo, _
inputFile As Stream _
)
'Utilisation
Dim instance As SPWeb
Dim language As CultureInfo
Dim inputFile As Stream
instance.ImportUserResources(language, _
inputFile)
public void ImportUserResources(
CultureInfo language,
Stream inputFile
)
Paramètres
language
Type : System.Globalization.CultureInfoSpécifie la culture pour laquelle les ressources sont importés. La valeur doit être une des cultures dans la collection retournée par la propriété SupportedUICultures , mais il ne peut pas être la culture par défaut pour l'interface utilisateur du site Web, la valeur retournée par la propriété UICulture .
inputFile
Type : System.IO.StreamUn flux de données avec les données de l'utilisateur. Les données doivent être dans.Format de fichier resx.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | Aucune langue de remplacement n'est activées sur le site. |
InvalidOperationException | La langue spécifiée n'est pas une des langues installées. |
InvalidOperationException | La langue n'est pas pris en charge par le site Web, soit il s'agit de la langue par défaut. Vous ne pouvez pas importer des ressources pour la langue par défaut d'un site Web. |
InvalidOperationException | Le fichier d'entrée ne peut pas être importé car sa langue ne correspond pas à la langue spécifiée. |
Remarques
Vous pouvez appeler la méthode ExportUserResources pour créer un fichier de ressources pour chacun des langages pris en charge par le site et ensuite donner les fichiers à une personne capable de traduire les chaînes qu'ils contiennent. Lorsque ce travail est terminé, vous pouvez appeler la méthode ImportUserResources pour importer les traductions, les rendant disponibles à l'interface utilisateur multilingue.
Vous ne pouvez pas importer des ressources pour la langue par défaut du site Web. Nouveau texte pour l'interface utilisateur est créé dans la langue par défaut et est traduit par la suite à d'autres langues. Le texte de la langue par défaut est utilisé en tant que la valeur de la ressource pour d'autres langues, jusqu'à ce que les traductions sont fournies. Pour plus d'informations, consultez la propriété OverwriteTranslationsOnChange .
Exemples
L'exemple suivant est une application console qui recherche un fichier de ressources spécifiques à la culture pour chacun des autres langages pris en charge par un site Web. Si l'application détecte un fichier de ressources, il les importe.
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using Microsoft.SharePoint;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.RootWeb)
{
if (web.IsMultilingual)
{
// Import resources for all alternate languages supported by the website.
IEnumerable<CultureInfo> cultures = web.SupportedUICultures;
foreach (CultureInfo culture in cultures)
{
// Skip the default language.
if (culture == web.UICulture)
continue;
// Try to get a resource file for the current language.
FileInfo fi = GetResxFileInfo(Environment.CurrentDirectory, culture.Name);
if (fi == null)
continue;
// If a file exists, import it.
using (FileStream fs = fi.OpenRead())
{
Console.WriteLine("Importing from {0}", fi.Name);
web.ImportUserResources(culture, fs);
}
}
}
}
}
Console.Write("\nPress ENTER to continue....");
Console.Read();
}
static FileInfo GetResxFileInfo(string path, string cultureName)
{
DirectoryInfo di = new DirectoryInfo(path);
string searchPattern = String.Format("*.{0}.resx", cultureName);
FileInfo[] fi = di.GetFiles(searchPattern);
return fi.Length > 0 ? fi[0] : null;
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.IO
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As New SPSite("https://localhost")
Using web As SPWeb = site.RootWeb
If web.IsMultilingual Then
' Import resources for all alternate languages supported by the website.
Dim cultures As IEnumerable(Of CultureInfo) = web.SupportedUICultures
For Each culture As CultureInfo In cultures
' Skip the default language.
If culture Is web.UICulture Then
Continue For
End If
' Try to get a resource file for the current language.
Dim fi As FileInfo = GetResxFileInfo(Environment.CurrentDirectory, culture.Name)
If fi Is Nothing Then
Continue For
End If
' If a file exists, import it.
Using fs As FileStream = fi.OpenRead()
Console.WriteLine("Importing from {0}", fi.Name)
web.ImportUserResources(culture, fs)
End Using
Next
End If
End Using
End Using
Console.Write(vbCrLf & "Press ENTER to continue....")
Console.Read()
End Sub
Function GetResxFileInfo(ByVal path As String, ByVal cultureName As String) As FileInfo
Dim di As New DirectoryInfo(path)
Dim searchPattern As String = String.Format("*.{0}.resx", cultureName)
Dim fi As FileInfo() = di.GetFiles(searchPattern)
Return If(fi.Length > 0, fi(0), Nothing)
End Function
End Module
Voir aussi
Référence
Microsoft.SharePoint - Espace de noms