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
language
Tipo: System.Globalization.CultureInfoEspecifica el idioma de los recursos que se va a exportar. El idioma debe aparecer en la colección devuelta por la propiedad SupportedUICultures .
allResources
Tipo: System.Booleantrue 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.StreamEl 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 Sí, 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
Espacio de nombres Microsoft.SharePoint