Поделиться через


Метод SPWeb.ImportUserResources

Импортирует ресурсы пользователя для указанного языка.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Sub ImportUserResources ( _
    language As CultureInfo, _
    inputFile As Stream _
)
'Применение
Dim instance As SPWeb
Dim language As CultureInfo
Dim inputFile As Stream

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

Параметры

  • language
    Тип: System.Globalization.CultureInfo

    Задает язык и региональные параметры, для которых ресурсы должны импортироваться. Значение должно быть одним из языков и региональных параметров в коллекцию, возвращаемую свойством SupportedUICultures , но не может быть по умолчанию языка и региональных параметров для пользовательского интерфейса веб-узла, значение, возвращаемое свойством UICulture .

  • inputFile
    Тип: System.IO.Stream

    Поток с данными пользователя ресурса. Данные должны быть в.Формат файла RESX.

Исключения

Исключение Условие
InvalidOperationException

На сайте включены дополнительные языки.

InvalidOperationException

Указанный язык не является одним из установленных языков.

InvalidOperationException

Язык не поддерживается веб-сайтом, либо это язык по умолчанию. Не удается импортировать ресурсы для языка по умолчанию для веб-сайта.

InvalidOperationException

Входной файл невозможно импортировать, поскольку его язык не соответствует языку.

Замечания

Можно вызвать метод ExportUserResources , чтобы создать файл ресурсов для каждого из языков, поддерживаемых веб-узла и затем дайте тому, кто может осуществлять преобразование строки, которые содержат файлы. По завершении этой работы можно вызвать метод ImportUserResources для импорта переводов, делая их доступными для многоязыкового интерфейса пользователя.

Не удается импортировать ресурсы для языка по умолчанию для веб-сайта. Новый текст пользовательского интерфейса создается на языке по умолчанию и впоследствии переведен на дополнительные языки. Текст языка по умолчанию используется значение ресурса для дополнительные языки, пока переводы предоставляются. Свойство OverwriteTranslationsOnChange получения дополнительных сведений см.

Примеры

Следующий пример является консольным приложением, которое ищет файл ресурсов для определенного языка и региональных параметров, для каждого из альтернативных языков, поддерживаемых веб-сайта. Если приложение находит файл ресурсов, импортирует его.

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

См. также

Справочные материалы

SPWeb класс

Элементы SPWeb

Пространство имен Microsoft.SharePoint

OverwriteTranslationsOnChange

ExportUserResources(CultureInfo, Boolean, Stream)

SPList.UserResources

SPWeb.UserResources