Partager via


SPWeb.ExportUserResources - Méthode

Exporte les ressources de l'utilisateur pour une langue donnée.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Sub ExportUserResources ( _
    language As CultureInfo, _
    allResources As Boolean, _
    outputFile As Stream _
)
'Utilisation
Dim instance As SPWeb
Dim language As CultureInfo
Dim allResources As Boolean
Dim outputFile As Stream

instance.ExportUserResources(language, _
    allResources, outputFile)
public void ExportUserResources(
    CultureInfo language,
    bool allResources,
    Stream outputFile
)

Paramètres

  • allResources
    Type : System.Boolean

    true pour inclure tout le texte spécifié par l'utilisateur, y compris le texte qui a été traduit ; false pour inclure uniquement le texte non traduit.

  • outputFile
    Type : System.IO.Stream

    Destination de ressources utilisateurs exportés.

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.

Remarques

Les ressources de l'utilisateur sont écrits dans le flux de données spécifié dans.Format de fichier resx. Pour plus d'informations, voir ressources .Format de fichier resx. Le texte qui n'a pas été traduit dans la langue spécifiée par le paramètre de langue est dans la langue par défaut pour le site Web. La langue par défaut d'un site est retournée par la propriété UICulture .

Avertissement

Code-behind de la page Exporter les traductions dans l'interface utilisateur appelle la méthode ExportUserResources . Toutefois, la logique impliquée par le paramètre allResources est exactement l'inverse de la logique impliquée par l'interface utilisateur, qui offre la possibilité d'Exporter uniquement le texte qui n'est pas traduit. Si vous choisissez Oui, code de la page passe false dans le paramètre allResources . Si vous choisissez non, code de la page passe true dans le paramètre allResources .

Les ressources de l'utilisateur qui exporte cette méthode incluent non seulement les ressources pour le site Web, mais aussi les ressources pour les listes du site. 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.

Exemples

L'exemple suivant est une application console qui énumère les langues prises en charge par un site Web et exporte non traduites des ressources pour chaque langue.

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)
                {
                    // Get the default language for the website.
                    int lcid = (int)web.Language;
                    CultureInfo defaultCulture = new CultureInfo(lcid);

                    // Export resources for all alternate languages supported by the website.
                    if (web.IsMultilingual)
                    {
                        string resxFileName;

                        IEnumerable<CultureInfo> cultures = web.SupportedUICultures;
                        foreach (CultureInfo culture in cultures)
                        {
                            if (culture.LCID == defaultCulture.LCID)
                                continue;
                            // Export only untranslated resources.
                            resxFileName = WriteResourceFile(web, culture.LCID, true);
                            Console.WriteLine("Resources for {0} exported to {1}.", culture.Name, resxFileName);
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.Read();
        }

        static string WriteResourceFile(SPWeb web, int lcid, bool onlyUntranslated)
        {
            CultureInfo ci = new CultureInfo(lcid);

            string fileName = web.Title + "." + ci.Name + ".resx";
            char[] invalidChars = Path.GetInvalidFileNameChars();
            foreach (char c in invalidChars)
            {
                fileName.Replace(c, '_');
            }

            FileStream fs = File.Create(fileName);
            web.ExportUserResources(ci, !onlyUntranslated, fs);
            fs.Close();
            
            return fileName;
        }
    }
}
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.OpenWeb()

                ' Get the default language for the website
                Dim lcid As Integer = CInt(web.Language)
                Dim defaultCulture As New CultureInfo(lcid)

                ' Export resources for all alternate languages supported by the website.
                If web.IsMultilingual Then
                    Dim resxFileName As String

                    Dim cultures As IEnumerable(Of CultureInfo) = web.SupportedUICultures
                    For Each culture As CultureInfo In cultures
                        If culture.LCID = defaultCulture.LCID Then
                            Continue For
                        End If
                        ' Export only untranslated resources.
                        resxFileName = WriteResourceFile(web, culture.LCID, True)
                        Console.WriteLine("Resources for {0} exported to {1}.", culture.Name, resxFileName)
                    Next
                End If

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

    Function WriteResourceFile(ByVal web As SPWeb, ByVal lcid As Integer, ByVal onlyUntranslated As Boolean) As String
        Dim ci As New CultureInfo(lcid)

        Dim fileName As String = web.Title + "." + ci.Name + ".resx"
        Dim invalidChars As Char() = Path.GetInvalidFileNameChars()
        For Each c As Char In invalidChars
            fileName.Replace(c, "_"c)
        Next

        Dim fs As FileStream = File.Create(fileName)
        web.ExportUserResources(ci, Not onlyUntranslated, fs)
        fs.Close()

        Return fileName
    End Function

End Module

Voir aussi

Référence

SPWeb classe

SPWeb - Membres

Microsoft.SharePoint - Espace de noms

ImportUserResources(CultureInfo, Stream)

SPList.UserResources

SPWeb.UserResources