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.CultureInfoEspecifica 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.StreamUna 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
Espacio de nombres Microsoft.SharePoint