SPWeb.ImportUserResources-Methode

Imports user resources for the specified language.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Sub ImportUserResources ( _
    language As CultureInfo, _
    inputFile As Stream _
)
'Usage
Dim instance As SPWeb
Dim language As CultureInfo
Dim inputFile As Stream

instance.ImportUserResources(language, _
    inputFile)
public void ImportUserResources(
    CultureInfo language,
    Stream inputFile
)

Parameter

  • language
    Typ: System.Globalization.CultureInfo

    Specifies the culture for which resources are to be imported. The value must be one of the cultures in the collection returned by the SupportedUICultures property but it cannot be the default culture for the website's user interface, the value returned by the UICulture property.

  • inputFile
    Typ: System.IO.Stream

    Ein Stream-Objekt mit der Benutzerdaten für die Ressource. Die Daten sein in.RESX-Dateiformat.

Ausnahmen

Ausnahme Bedingung
InvalidOperationException

Auf der Website sind keine alternativen Sprachen aktiviert.

InvalidOperationException

Die angegebene Sprache also keiner der installierten Sprachen.

InvalidOperationException

Entweder die Sprache wird von der Website nicht unterstützt, oder die Standardsprache ist. Ressourcen für die Standardsprache einer Website können nicht importiert werden.

InvalidOperationException

Die Eingabedatei kann nicht importiert werden, da die Sprache nicht die angegebene Sprache übereinstimmt.

Hinweise

Sie können die ExportUserResources -Methode zum Erstellen einer Ressourcendatei für jede Sprache unterstützt von der Website, und weisen Sie die Dateien an eine Person, die die Zeichenfolgen übersetzen kann, die darin enthaltenen aufrufen. Nachdem dieser Vorgang abgeschlossen ist, rufen die ImportUserResources -Methode zum Importieren der Übersetzungen, Sie an der mehrsprachigen Benutzeroberfläche verfügbar zu machen.

Ressourcen für die Standardsprache der Website können nicht importiert werden. Neue Text für die Benutzeroberfläche wird in der Standardsprache erstellt und wird anschließend auf alternative Sprachen übersetzt. Der Language Standardtext ist als der Ressourcenwert für alternative Sprachen erst dann verwendet Übersetzungen bereitgestellt werden. Weitere Informationen finden Sie unter der OverwriteTranslationsOnChange -Eigenschaft.

Beispiele

Im folgende Beispiel wird eine Konsolenanwendung, die für eine Ressourcendatei kulturspezifisch für jede der alternativen Sprachen unterstützt, die von einer Website aussieht. Wenn die Anwendung eine Ressourcendatei findet, importiert sie es an.

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

Siehe auch

Referenz

SPWeb Klasse

SPWeb-Member

Microsoft.SharePoint-Namespace

OverwriteTranslationsOnChange

ExportUserResources(CultureInfo, Boolean, Stream)

SPList.UserResources

SPWeb.UserResources