Partager via


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.CultureInfo

    Spé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.Stream

    Un 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

SPWeb classe

SPWeb - Membres

Microsoft.SharePoint - Espace de noms

OverwriteTranslationsOnChange

ExportUserResources(CultureInfo, Boolean, Stream)

SPList.UserResources

SPWeb.UserResources