Share via


del método SPWeb.ExportUserResources

Exporta los recursos de usuario para un idioma determinado.

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
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
    Tipo: System.Boolean

    true para incluir todos texto especificado por el usuario, incluido el texto que se ha traducido; false para incluir sólo texto sin traducir.

  • outputFile
    Tipo: System.IO.Stream

    El destino de los recursos de usuario exportado.

Excepciones

Excepción Condición
InvalidOperationException

No hay idiomas alternativos están habilitados en el sitio.

InvalidOperationException

El idioma especificado no es uno de los idiomas instalados.

InvalidOperationException

El idioma no es compatible con el sitio Web.

Comentarios

Los recursos de usuario se escriben en la secuencia especificada en.Formato de archivo resx. Para obtener más información, vea recursos en.Formato de archivo resx. El texto que no se ha traducido en el idioma especificado por el parámetro de idioma es el idioma predeterminado para el sitio Web. El idioma predeterminado de un sitio es devuelto por la propiedad UICulture .

Advertencia

Código subyacente en la página Exportar traducciones en la interfaz de usuario llama al método de ExportUserResources . Sin embargo, la lógica de implícito por el parámetro allResources es exactamente lo opuesto a la lógica de implícita en la interfaz de usuario, que ofrece la opción para Exportar sólo el texto que no se traduce. Si elige , el código de la página pasa false en el parámetro allResources . Si elige No, el código de la página pasa true en el parámetro allResources .

Los recursos de usuario que este método exporta incluyen no sólo los recursos para el sitio Web, sino también los recursos para las listas en el sitio. Puede llamar al método ExportUserResources para crear un archivo de recursos para cada uno de los idiomas admitidos por el sitio y proporcionará a una persona que puede traducir las cadenas que contienen los archivos. Una vez completado este trabajo, puede llamar al método de ImportUserResources para importar las traducciones para que estén disponibles para la interfaz de usuario multilingüe.

Ejemplos

En el siguiente ejemplo es una aplicación de consola que enumera los idiomas admitidos por un sitio Web y se exporta sin traducir los recursos 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

Vea también

Referencia

clase SPWeb

Miembros SPWeb

Espacio de nombres Microsoft.SharePoint

ImportUserResources(CultureInfo, Stream)

SPList.UserResources

SPWeb.UserResources