Share via


SPWeb.ExportUserResources method

Exporta recursos de usuário para um determinado idioma.

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

Syntax

'Declaração
Public Sub ExportUserResources ( _
    language As CultureInfo, _
    allResources As Boolean, _
    outputFile As Stream _
)
'Uso
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
)

Parâmetros

  • allResources
    Type: System.Boolean

    true para incluir todo o texto especificado pelo usuário, incluindo o texto traduzido; false para incluir somente texto não traduzido.

  • outputFile
    Type: System.IO.Stream

    O destino para recursos de usuário exportado.

Exceptions

Exception Condition
InvalidOperationException

Nenhum idioma alternativo está habilitado no site.

InvalidOperationException

O idioma especificado não é um dos idiomas instalados.

InvalidOperationException

O idioma não é suportado pelo site.

Comentários

Os recursos de usuário são gravados para o fluxo especificado em.Formato de arquivo resx. Para obter mais informações, consulte recursos de .Formato de arquivo resx. Texto que não foi traduzido para o idioma especificado pelo parâmetro de idioma é o idioma padrão para o site. O idioma padrão para um site é retornado pela propriedade UICulture .

Aviso

Code-behind da página Exportar traduções na interface do usuário chama o método ExportUserResources . No entanto, a lógica implicada pelo parâmetro allResources é exatamente o oposto da lógica do sugerido pela interface do usuário, que oferece a opção para exportar apenas o texto que não é convertido. Se você escolher Sim, o código de página passa false no parâmetro allResources . Se você escolher não, o código de página passa true no parâmetro allResources .

Os recursos do usuário que esse método exporta incluem não apenas recursos do site, mas também recursos para listas no site. Você pode chamar o método ExportUserResources para criar um arquivo de recurso para cada um dos idiomas suportados pelo site e, em seguida, fornecer os arquivos para alguém que pode converter as cadeias de caracteres que eles contêm. Quando esse trabalho for concluído, você pode chamar o método ImportUserResources para importar traduções, tornando-os disponíveis para a interface do usuário multilíngüe.

Examples

O exemplo a seguir é um aplicativo de console que enumera os idiomas com suporte por um site e exporta recursos não traduzidos para cada idioma.

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

Ver também

Referência

SPWeb class

SPWeb members

Microsoft.SharePoint namespace

ImportUserResources(CultureInfo, Stream)

SPList.UserResources

SPWeb.UserResources