Demonstra Passo a passo: A localização de um aplicativo do SharePoint de Visual Studio

A localização de um aplicativo do SharePoint está substituindo suas seqüências de caracteres codificadas com expressões e instruções que recuperam valores de seqüência localizada de arquivos de recurso. Esta explicação passo a passo mostra como localizar todos os elementos da cadeia de caracteres de um aplicativo de página da Web do SharePoint.

Essa explicação passo a passo demonstra as seguintes tarefas:

  • Localizando o código.

  • Localizando a marcação ASPX.

  • Localizando um recurso.

Pré-requisitos

É necessário que os seguintes componentes no computador de desenvolvimento para concluir este passo a passo:

Conhecimento dos seguintes conceitos é útil, mas não necessário para concluir o passo a passo:

Localizando o código do SharePoint

Código de aplicativos do SharePoint geralmente contém seqüências de caracteres codificadas para UI de texto. Essas cadeias de caracteres podem ser localizadas, substituindo-os por chamadas para GetGlobalResourceObject. Inicie a explicação passo a passo, modificando a um projeto de Web part.

Para modificar o projeto de Web part

  1. Conclua os procedimentos descritos no tópico, Demonstra Passo a passo: Criar uma Web Part do SharePoint.

  2. Com a Web part projeto carregado no Visual Studio, adicione um Página de aplicativo o item de projeto para o projeto de Web part. Use o nome padrão, o ApplicationPage1.aspx.

  3. Adicionar um O arquivo de recursos o item de projeto para o projeto de Web part. Use o nome padrão, o Resource1.resx. O modelo de item de projeto do arquivo de recursos está localizado sob a pasta de modelos de item de projeto do idioma da Add New Item caixa de diálogo.

    O arquivo de recurso abre no Editor de recursos.

  4. No Editor de recursos, digite a seguinte seqüência de IDs e valores:

    ID de string

    Valor

    Seqüência1

    Caminho para o arquivo de dados do funcionário

    String2

    Local do arquivo XML que contém os dados do funcionário

    String3

    Mostrar gerentes apenas

    String4

    Mostra somente os funcionários são gerentes

    String5

    Mostrar todos os funcionários

    String6

    Lista de funcionários

    String7

    Exibir lista de funcionários

    String8

    Página de aplicativo

    String9

    Minha descrição de página de aplicativo

  5. Fazer uma cópia do Resource1.resx, clicando em seu nó em Solution Explorer e, em seguida, clicando em Copy na Editar menu.

  6. Clique no nó de parte da Web em Solution Explorer e, em seguida, clique em Colar sobre o Editar menu.

  7. O arquivo copiado com o botão direito e clique em Renomear. Nomeie o arquivo Resource1.ja JP.resx.

    Esse arquivo serve como o arquivo de recurso localizado de japonês posterior compilado em um assembly satélite e implantado no SharePoint.

  8. Abrir Resource1.ja JP.resx no Editor de recursos e acrescentar a palavra japonês na frente de cada valor.

    Por exemplo, "caminho ao funcionário arquivo de dados" torna-se "Caminho japonês para o arquivo de dados do funcionário". Em um cenário real localizado, essas cadeias de caracteres seriam usar caracteres japoneses.

  9. Alterar o O tipo de implantação propriedade dos Resource1.resx e JP.resx de Resource1.ja para AppGlobalResource.

    Isso faz com que os arquivos para implantar na pasta App_GlobalResources no servidor e o disponibiliza a todos os recursos ASP.NET-com base em projetos.

    ObservaçãoObservação

    A propriedade de tipo de implantação aparece somente para arquivos de recursos adicionados aos itens de projeto do SharePoint.

  10. Clique duas vezes em Package.package para abri-lo no Pacote Designer.

  11. Clique o Advanced botão, clique no Add e, em seguida, clique conjunto existente de adicionar.

    Isso abre o Adicionar Assembly existente caixa de diálogo.

  12. Construa o projeto para criar a DLL satélite localizada.

  13. No Adicionar Assembly existente caixa de diálogo, clique nas reticências (Elipse do designer do ASP.NET para dispositivos móveis) botão ao lado de Caminho de origem e localize o satélite localizado DLL.

    O arquivo do assembly está localizado no diretório do projeto em.. \bin\debug\ja-jp.

  14. Deixe o O destino de implantação opção como GlobalAssemblyCache.

  15. No local caixa, prepend uma cultura ID a pasta para o caminho do local. Neste exemplo, alterar o valor existente para jp JA\nome de parte da Web. resources.dll. Se o projeto tiver várias DLLs de satélite, repita essa etapa para cada DLL.

    Essa etapa é necessária porque um pacote não permite que dois arquivos com nomes idênticos na mesma pasta. Criando uma subpasta com base na cultura ID permite que ambos os arquivos sejam empacotados juntos.

  16. Quando tiver terminado, clique em OK para fechar a caixa de diálogo.

  17. Abra a página de código para a Web part e substituir o Using ou Includes instruções com o seguinte.

    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using System;
    using System.ComponentModel;
    using System.Data;
    using System.Resources;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    
  18. Substitua a existentes de declarações de variáveis e funções a seguir.

        private DataGrid grid;
            // Replaced: private static string verbText = "Show Managers Only";
            private static string verbText = HttpContext.GetGlobalResourceObject("Resource1", "String3").ToString();
            private Label errorMessage = new Label();
            protected string xmlFilePath;
    
            // Replaced: WedDisplayName and WebDescription attribute strings.
            [Personalizable(PersonalizationScope.Shared), WebBrowsable(true),
            LocalizedWebDisplayName("String1"),
            LocalizedWebDescription("String2")]
            public string DataFilePath
            {
                get
                {
                    return xmlFilePath;
                }
                set
                {
                    xmlFilePath = value;
                }
            }
    
            protected override void CreateChildControls()
            {
                // Define the grid control that displays employee data in the Web Part.
                grid = new DataGrid();
                grid.Width = Unit.Percentage(100);
                grid.GridLines = GridLines.Horizontal;
                grid.HeaderStyle.CssClass = "ms-vh2";
                grid.CellPadding = 2;
                grid.BorderWidth = Unit.Pixel(5);
                grid.HeaderStyle.Font.Bold = true;
                grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
    
                // Populate the grid control with data in the employee data file.
                try
                {
                    DataSet dataset = new DataSet();
                    dataset.ReadXml(xmlFilePath, XmlReadMode.InferSchema);
                    grid.DataSource = dataset;
                    grid.DataBind();
                }
                catch (Exception x)
                {
                    errorMessage.Text += x.Message;
                }
    
                // Add control to the controls collection of the Web Part.
                Controls.Add(grid);
                Controls.Add(errorMessage);
                base.CreateChildControls();
            }
    
            public override WebPartVerbCollection Verbs
            {
                get
                {
                    WebPartVerb customVerb = new WebPartVerb("Manager_Filter_Verb",
                        new WebPartEventHandler(CustomVerbEventHandler));
    
                    customVerb.Text = verbText;
                    // Replaced: Hard-coded description with localized string.
                    customVerb.Description = HttpContext.GetGlobalResourceObject("Resource1", "String4").ToString();
                    WebPartVerb[] newVerbs = new WebPartVerb[] { customVerb };
    
                    return new WebPartVerbCollection(base.Verbs, newVerbs);
                }
            }
    
            protected void CustomVerbEventHandler(object sender, WebPartEventArgs args)
            {
                int titleColumn = 2;
    
                foreach (DataGridItem item in grid.Items)
                {
                    if (item.Cells[titleColumn].Text != "Manager")
                    {
                        if (item.Visible == true)
                        {
                            item.Visible = false;
                        }
                        else
                        {
                            item.Visible = true;
                        }
                    }
    
                }
                // if (verbText == "Show Managers Only")
                if (verbText == HttpContext.GetGlobalResourceObject("Resource1", "String5").ToString())
                {
                    // verbText = "Show All Employees";
                    verbText = HttpContext.GetGlobalResourceObject("Resource1", "String5").ToString();
                }
                else
                {
                    // verbText = "Show Managers Only";
                    verbText = HttpContext.GetGlobalResourceObject("Resource1", "String3").ToString();
                }
            }
    
  19. Adicione as seguintes funções de novas.

    // Provide localized values for the WebDisplayName and WebDescription
    // attribute strings.
    public class LocalizedWebDisplayName : WebDisplayNameAttribute
    {
        public LocalizedWebDisplayName(string resId)
        {
            base.DisplayNameValue = FetchLocalizedString(resId);
        }
    
        string FetchLocalizedString(string resourceID)
        {
            // Use the ResourceManager to get the string from 
            // the resource file.
            ResourceManager rm = Resource1.ResourceManager;
            return rm.GetString(resourceID);
        }
    }
    
    public class LocalizedWebDescription : WebDescriptionAttribute
    {
        public LocalizedWebDescription(string resId)
        {
            base.DescriptionValue = FetchLocalizedString(resId);
        }
    
        string FetchLocalizedString(string resourceID)
        {
            // Use the ResourceManager to get the string from 
            // the resource file.
            ResourceManager rm = Resource1.ResourceManager;
            return rm.GetString(resourceID);
        }
    }
    
  20. Pressione F5 para criar e executar a solução.

  21. No SharePoint, clique em Mais opções sobre o Ações do Site guia para exibir o criar caixa de diálogo.

  22. No criar caixa de diálogo, clique em página na Filtrar por seção, clique Página de Web Parts no painel de itens instalados e, em seguida, clique o criar botão.

  23. No Nova página de Web Parts caixa de diálogo, digite um valor na nome caixa e clique o criar botão.

  24. Na página de Web Parts, clique em uma Web part para exibir a barra de ferramenta.

  25. Clique o personalizado pasta no categorias seção, selecione a Web part no Web Parts seção e, em seguida, clique o Add botão.

  26. Clique no botão drop-down para a Web part e, em seguida, clique em Editar Web Part para exibir a caixa de diálogo Propriedades da Web part.

  27. Expanda o Miscelânea seção, digite o caminho do arquivo data, clique em Aplicare em seguida, clique em OK.

  28. Depois que a grade de dados for exibida, clique no botão drop-down para a Web part novamente e observe que o verbo personalizado exibe no idioma padrão.

  29. No canto superior da página de Web Parts, clique na seta suspensa ao lado de seu nome. Se o pacote de idioma é instalado com êxito, há um comando denominado Selecione o idioma de exibição. Apontar para ela e, em seguida, clique em japonês no menu de contexto. (Se você instalou um pacote de idiomas diferentes, essa opção de idioma exibe aqui.)

    O texto na página é exibida no idioma selecionado.

  30. Clique no botão drop-down para a Web part e, em seguida, clique em Editar Web Part para exibir a caixa de diálogo Propriedades da Web part.

  31. Expanda o Miscelânea seção e observe as cadeias de caracteres como todos os visíveis no aplicativo são exibidos no idioma localizado. A etiqueta da caixa de propriedade personalizada, a dica de ferramenta para o controle e o verbo exibido no idioma localizado.

  32. Alternar o idioma de volta ao padrão e fechar a página do SharePoint.

Localizando ASPX marcação

Você pode localizar a marcação em páginas ASPX e controles usando arquivos de recurso.

Para localizar a marcação de ASPX

  1. Clique duas vezes a página de aplicativo para exibir sua marcação.

  2. Adicionar um rótulo e um controle button para a página de aplicativo, substituindo o existente PlaceHolderMain seção com o seguinte:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Font-Size="Large" Text="<%$Resources:Resource1,String6%>"></asp:Label>
    <br />
    <br />
    <asp:Button ID="btn1" runat="server" onclick="btn1_Click" Text="<%$Resources:Resource1,String7%>"></asp:Button>
    </asp:Content>
    

    As seqüências de caracteres literais são substituídas com a expressão no formato <%$Resources:Nome do arquivo de recurso, seqüência de identificação%>. Essas expressões exibem as seqüências de caracteres de recurso localizado com base no idioma atual.

  3. Substituir o PageTitle e PageTitleInTitleArea seções com o seguinte:

    <asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
    <asp:Literal ID="Literal1" runat="server" Text="<%$Resources:Resource1, String8%>" />
    </asp:Content>
    <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
    <asp:Literal ID="Literal2" runat="server" Text="<%$Resources:Resource1, String9%>" />
    </asp:Content>
    

    As seqüências de caracteres literais são substituídas com a expressão no formato <asp:literal ID="Literal1" runat="server" Text="<%$Resources:Nome do arquivo de recurso, ID de String%>" />. Essas expressões exibem as seqüências de caracteres de recurso localizado com base no idioma atual.

  4. Selecione a página de aplicativo em Solution Explorer e, em seguida, clique em código na Exibir menu para exibir o código de página do aplicativo.

  5. Adicione o seguinte código.

    protected void btn1_Click(object sender, EventArgs e)
    {
        Response.Redirect("http://MyServer/MyPage.aspx", false);            
    }
    
  6. Pressione F5 para criar e executar a solução.

    A página de aplicativo aparece com seqüências de recursos padrão.

  7. No canto superior da página do aplicativo, clique na seta suspensa próxima ao seu nome e selecione o idioma localizado.

    O texto na página é exibida com seqüências de recurso localizado.

  8. Clique o Exibir lista de funcionários o botão para mostrar a página de Web Parts.

  9. Alternar o idioma de volta ao padrão e fechar a página do SharePoint.

Localizando recursos

Recursos têm um nome e uma descrição que aparece no SharePoint. Você pode localizar essas cadeias de caracteres usando os arquivos de recurso do recurso. Esses arquivos de recurso são separados dos outros arquivos de recurso do aplicativo.

Para localizar um recurso.

  1. Com o botão direito do Feature1Solution Explorer e, em seguida, clique em Adicionar recursos do recurso.

  2. No Add Resource caixa de diálogo, selecione a cultura padrão, Idioma invariável.

    Isso adiciona um arquivo denominado Resources. resx ao recurso que serve como o recurso de recurso padrão. O arquivo de recurso abre no Editor de recursos.

  3. No Editor de recursos, digite as identificações de seqüência de caracteres e valores a seguir:

    ID de string

    Valor

    Seqüência1

    Meu título de recurso

    String2

    Minha descrição do recurso

  4. Adicione outro arquivo de recurso do recurso, mas selecione uma cultura diferente, como, por exemplo, japonês (Japão).

    Isso adiciona um arquivo chamado JP.rex de Resources.ja para o recurso. Como os recursos de recurso exigem um identificador completo de cultura em seu nome, selecione a cultura ID na lista que especifica a cultura completo. Por exemplo, selecione japonês (Japão) em vez de japonês.

  5. Altere os valores de seqüência de caracteres no arquivo de recurso localizado para algo diferente daqueles em que o arquivo de recursos padrão.

  6. Clique duas vezes no arquivo de Feature1.feature para abri-lo no Recurso Designer.

  7. Substitua o texto na título caixa de $Resources: seqüência1.

  8. Substitua o texto na Descrição caixa de $Resources: String2.

  9. Pressione F5 para criar e executar a solução.

  10. Na página do SharePoint, clique em Configurações do Site sobre o Ações do Site guia.

  11. Clique o recursos do conjunto de sites link localizado em A administração do Site coleção.

  12. No canto superior da Administração do conjunto de sites de página, clique na seta suspensa próxima ao seu nome e selecione o idioma localizado. Título de recurso e descrição são exibidos com seqüências de recurso localizado.

  13. Alternar o idioma de volta ao padrão e fechar a página do SharePoint.

Consulte também

Tarefas

Como: Adicionar um arquivo de recurso

Outros recursos

Como: Localizar um recurso.

Como: Localize a marcação ASPX

Como: Localize o código