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


Метод SPWeb.ExportUserResources

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

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

Синтаксис

'Декларация
Public Sub ExportUserResources ( _
    language As CultureInfo, _
    allResources As Boolean, _
    outputFile As Stream _
)
'Применение
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
)

Параметры

  • language
    Тип: System.Globalization.CultureInfo

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

  • allResources
    Тип: System.Boolean

    true , чтобы включить все указанный пользователем текст, включая текст, который был переведен; false , чтобы включить только непереведенный текст.

  • outputFile
    Тип: System.IO.Stream

    Назначение ресурсов экспортированный пользователя.

Исключения

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

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

InvalidOperationException

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

InvalidOperationException

Язык не поддерживается веб-сайтом.

Замечания

Ресурсы пользователя записываются в указанный поток.Формат файла RESX. Дополнительные сведения содержатся в разделе Resources in .Resx File Format. Текст, который не переведен на язык, заданный параметром языка — на языке по умолчанию для веб-сайта. Язык по умолчанию для узла, возвращается в свойстве UICulture .

Предупреждение

Код страницы Экспорт переводов в пользовательском интерфейсе вызывается метод ExportUserResources . Однако логика неявно с помощью параметра allResources является противоречит логика выражается пользовательский интерфейс, который предоставляет возможность экспортировать только текст, не переводится. Если выбрать Да, код страницы проходит false в параметре allResources . Если выбрать Нет, код страницы передает true в параметре allResources .

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

Примеры

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

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

См. также

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

SPWeb класс

Элементы SPWeb

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

ImportUserResources(CultureInfo, Stream)

SPList.UserResources

SPWeb.UserResources