Share via


SPWeb.ImportUserResources method

Importa recursos de usuário para o idioma especificado.

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

Syntax

'Declaração
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
    Type: System.Globalization.CultureInfo

    Especifica a cultura para a qual os recursos estão a ser importado. O valor deve ser uma das culturas na coleção retornada pela propriedade SupportedUICultures , mas ele não pode ser a cultura padrão para a interface do usuário do site, o valor retornado pela propriedade UICulture .

  • inputFile
    Type: System.IO.Stream

    Um fluxo de dados de recursos do usuário. Os dados devem estar em.Formato de arquivo resx.

Exceptions

Exception Condition
InvalidOperationException

Nenhum idioma alternativo está habilitado no site.

InvalidOperationException

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

InvalidOperationException

Não há suporte para o idioma do site, ou é o idioma padrão. Não é possível importar recursos para o idioma padrão de um site.

InvalidOperationException

O arquivo de entrada não pode ser importado porque o seu idioma não corresponde ao idioma especificado.

Comentários

Você pode chamar o método ExportUserResources para criar um arquivo de recurso para cada um dos idiomas suportados pelo site e, em seguida, permitir que 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.

Não é possível importar recursos para o idioma padrão do site. Novo texto para a interface de usuário é criado no idioma padrão e subseqüentemente é traduzido para idiomas alternativos. O texto do idioma padrão é usado como o valor do recurso para idiomas alternativos até que as traduções são fornecidas. Para obter mais informações, consulte a propriedade OverwriteTranslationsOnChange .

Examples

O exemplo a seguir é um aplicativo de console que procura por um arquivo de recurso com cultura específica para cada um dos idiomas alternativos suportados por um site. Se o aplicativo localiza um arquivo de recurso, ele 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

Ver também

Referência

SPWeb class

SPWeb members

Microsoft.SharePoint namespace

OverwriteTranslationsOnChange

ExportUserResources(CultureInfo, Boolean, Stream)

SPList.UserResources

SPWeb.UserResources