Compartir a través de


del método SPWeb.ImportUserResources

Importa recursos de usuario para el idioma especificado.

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

Sintaxis

'Declaración
Public Sub ImportUserResources ( _
    language As CultureInfo, _
    inputFile As Stream _
)
'Uso
Dim instance As SPWeb
Dim language As CultureInfo
Dim inputFile As Stream

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

Parámetros

  • language
    Tipo: System.Globalization.CultureInfo

    Especifica la referencia cultural para la que los recursos se van a importar. El valor debe ser una de las referencias culturales en la colección devuelta por la propiedad SupportedUICultures pero no puede ser la referencia cultural predeterminada para la interfaz de usuario del sitio Web, el valor devuelto por la propiedad UICulture .

  • inputFile
    Tipo: System.IO.Stream

    Una secuencia con los datos de recursos de usuario. Los datos deben estar en.Formato de archivo resx.

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

Ya sea el idioma no es compatible con el sitio Web, o es el idioma predeterminado. No se puede importar recursos para el idioma predeterminado de un sitio Web.

InvalidOperationException

No se puede importar el archivo de entrada porque su idioma no coincide con el idioma especificado.

Comentarios

Puede llamar al método ExportUserResources para crear un archivo de recursos para cada uno de los idiomas admitidos por el sitio y, a continuación, asignar los archivos a una persona que puede traducir las cadenas que contienen. 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.

No se puede importar recursos para el idioma predeterminado del sitio Web. El texto nuevo para la interfaz de usuario se crea en el idioma predeterminado y posteriormente se convierte en idiomas alternativos. El texto del idioma predeterminado se utiliza como el valor del recurso para idiomas alternativos hasta que se suministran las traducciones. Para obtener más información, vea la propiedad OverwriteTranslationsOnChange .

Ejemplos

En el siguiente ejemplo es una aplicación de consola que busca un archivo de recursos de referencias culturales específicas para cada uno de los idiomas alternativos admitidos por un sitio Web. Si la aplicación encuentra un archivo de recursos, importa.

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

Vea también

Referencia

clase SPWeb

Miembros SPWeb

Espacio de nombres Microsoft.SharePoint

OverwriteTranslationsOnChange

ExportUserResources(CultureInfo, Boolean, Stream)

SPList.UserResources

SPWeb.UserResources