Barra de ferramentas Google
API da Barra de ferramentas Google

Guia para personalizar botões na Barra de ferramentas Google 4 para o Internet Explorer

Este documento descreve como personalizar botões. Atualmente, os botões personalizados funcionam somente no Internet Explorer.

Sumário

Referência
  • Referência XML
  • Caracteres de escape
  • Referência de variáveis
  • Introdução

    O que é um botão personalizado?

    Um botão personalizado é um botão que você pode adicionar à Barra de ferramentas Google que pode ter capacidades personalizadas de navegação, pesquisa, envio e atualização. Fundamentalmente, um botão de pesquisa personalizado pode usar a maioria dos mecanismos de pesquisa de qualquer site, não apenas do Google.

    Um botão de pesquisa pode desempenhar qualquer uma das seguintes tarefas:

    • Direcionar o navegador para um site, como um favorito
    • Direcionar o navegador para um site e executar o mecanismo de pesquisa desse site, pesquisando o texto que o usuário digitou na caixa de pesquisa na barra de ferramentas. Por exemplo, um botão Wikipedia iria para wikipedia.org e pesquisaria o termo que você digitou. (ele pode direcionar o navegador para qualquer site específico do local com base na barra de ferramentas do local.)
    • Enviar o texto do navegador selecionado no momento para compor um novo e-mail, uma nova mensagem de texto ou uma postagem para um blog.
    • Atualizar o ícone do seu botão, a dica e a lista suspensa dos ícones e strings em um feed RRS

    Um botão personalizado pode ter os seguintes recursos de interface do usuário:

    • Um ícone representando o site que acessa ou a ação que desempenha (<icon>). Esse ícone pode ser atualizado em um feed RSS (<feed>)
    • Uma lista suspensa de ícones e strings (acessada ao clicar em um botão de seta para baixo) que pode ser atualizada em um feed RSS, como manchetes em um feed de notícias (<feed>)
    • Uma descrição da dica, que aparece momentaneamente quando o ponteiro do mouse é posicionado sobre o botão (<description>)
    • Um título que pode aparecer opcionalmente próximo ao botão (<title>)

    Além das propriedades dos recursos de interface do usuário citadas, um botão personalizado pode ter as seguintes propriedades (salvas em um arquivo XML) que desempenham as tarefas listadas acima:

    • Um URL para direcionar o navegador quando a caixa de pesquisa estiver vazia e você clicar no botão (<site>)
    • Um URL de pesquisa apontando para um site para o qual o navegador o direcionará e no qual pesquisará quando o botão for clicado com o termo de pesquisa na caixa de pesquisa (<search>)
    • Um URL de envio apontando para um site que o navegador direcionará e enviará o texto atualmente selecionado para (<send>)
    • Um URL de atualização, por meio do qual as atualizações do botão podem ser acessadas (<update>)

    A barra de ferramentas a seguir exibe exemplos de botões personalizados para Slashdot, Wikipedia e BBC (destacado). O botão BBC é um feed de notícias com uma lista suspensa de manchetes (conforme indicado pela seta para baixo).

    Como adicionar um botão personalizado

    Para adicionar ou gerenciar botões personalizados na Barra de ferramentas Google:

    • A maneira mais simples e comum para um usuário adicionar (instalar) um botão personalizado é clicar no botão diretamente no site de um editor e confirmar que deseja adicioná-lo. Você encontra uma lista desses botões na Galeria de botões da Barra de ferramentas Google. O editor utiliza um URL de comando especial que dá permissão ao usuário. Se o usuário não tiver a Barra de ferramentas Google instalada, o URL de comando vai para a página de download da barra de ferramentas.
    • A segunda maneira é Criar e adicionar automaticamente um botão de pesquisa personalizado, em que um usuário clica com o botão direito do mouse em uma caixa de pesquisa de entrada de texto.
    • A terceira maneira é editar um botão personalizado usando o editor avançado da Barra de ferramentas Google, disponível em Configurações > Opções > Botões personalizados (guia) > Editar > Usar o editor avançado.
    • A quarta maneira é Criar e instalar manualmente um botão personalizado.
    • A quinta maneira é para que os administradores de TI publiquem botões personalizados nas máquinas do Windows usando uma string de política de grupo para um URL com um arquivo XML, ou através da dissimulação do instalador para gravar um arquivo na seção de dados de aplicativo “Todos os Usuários” do sistema de arquivos do Windows.

    Como personalizar botões

    Criar e adicionar automaticamente um botão de pesquisa personalizado

    1. Abra o Internet Explorer para pesquisar a página para a qual deseja criar um botão personalizado.
      Exemplo: www.wikipedia.org

    2. Clique com o botão direito do mouse na caixa de pesquisa que você deseja usar, selecione “Gerar Pesquisa personalizada...”, e em seguida clique em “Adicionar”.

    Resultado: O botão personalizado está instalado e disponível para uso imediato.

    Nos bastidores, esse procedimento cria um arquivo XML do botão personalizado com um ícone e salva-o com um nome embaralhado em:

    C:\Documents and Settings\larry\Local Settings\Application Data\Google\Custom Buttons\

    Essa abordagem tem uma vantagem sobre a construção manual de um botão de pesquisa personalizado, já que é útil para os sites que usam solicitações de POST ou redirecionamentos nos seus sites que dificultam determinar o url-template.

    Arquivo XML do botão personalizado

    As propriedades e o comportamento de um botão personalizado são definidos em um arquivo XML com um <custombuttons> elemento cujo espaço do nome é determinado para "http://toolbar.google.com/custombuttons/" com um elemento <button> agrupado. O botão personalizado mais simples usa <site>, que define um link para um site. O XML seguinte produz um botão que, quando clicado, abre http://www.wikipedia.org na janela do navegador atual:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
    
      <button>
        <site>http://www.wikipedia.org</site>
      </button>
    </custombuttons>
    
    OBSERVAÇÃO – Não há problemas em inserir linhas novas e espaços em qualquer lugar das strings do URL no arquivo XML – a barra de ferramentas irá separá-los quando interpretar o arquivo. Isso significa que você precisa se certificar de que se seu URL precisar de espaços (você não vai querer que fiquem separados), os substituirá por "%20" (caso o navegador ainda não o tenha feito). Muitos dos exemplos seguintes exibem o URL digitado em duas linhas com uma linha nova no meio do URL, o que funciona perfeitamente.
    OBSERVAÇÃO – Ao longo dos exemplos nesse guia, somente a parte do código XML dentro do <button> elemento muda.

    Criar e instalar manualmente um botão personalizado

    Para instalar um botão personalizado na Barra de ferramentas Google:

    1. Crie um arquivo XML do botão conforme exibido nas seções anteriores (e posteriores).
    2. Salve o arquivo XML do botão em:

      C:\Documents and Settings\username\Local Settings\Application Data\Google\Custom Buttons\filename.xml

      onde estiver username é o seu nome do login do Windows e filename é o nome do arquivo que você escolher para o arquivo XML.

      Em nosso exemplo da Wikipedia, para o nome de login "larry", salve o arquivo XML do botão em:

      C:\Documents and Settings\larry\Local Settings\Application Data\Google\Custom Buttons\wikipedia.xml

    3. Em seguida, abra uma nova janela do Internet Explorer com a Barra de ferramentas Google 4.0 instalada. Um novo botão aparece com uma imagem de um ponto de interrogação, conforme exibido na captura de tela seguinte – clicar no ícone do ponto de interrogação vai para a Wikipedia.

    Adicionar um título de botão e uma dica

    Conforme exibido a seguir, use <title> para adicionar o título de um botão. O título pode aparecer à direita de um botão (Configurações > Opções > Mais > Marcadores de texto do botão > Todo o texto), e identificar o botão na lista de botão personalizado (Configurações > Opções > Botões Personalizados). Se seu botão fizer a pesquisa, o título deve ser exclusivo para todos os títulos do botão personalizado de pesquisa, já que também funciona como aquele nome do botão na caixa de pesquisa da Barra de ferramentas Google. (Por exemplo, o usuário pode ir para a caixa de pesquisa com Alt-G, pressionar seta para baixo para utilizar o menu suspenso do mecanismo de pesquisa, em seguida digitar "w" na caixa de pesquisa para selecionar o mecanismo de pesquisa "wikipedia".)

    Use <description> para adicionar uma dica.

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <site>http://www.wikipedia.org</site>
    
        <title>Wikipedia</title>
        <description>The Free Encyclopedia</description>
      </button>
    </custombuttons>
    

    Botão de pesquisa personalizado

    A Barra de ferramentas Google também permite que você crie um botão para executar a maioria dos mecanismos de pesquisa de qualquer site usando o termo que o usuário digitar na caixa de pesquisa da barra de ferramentas Os dois exemplos a seguir incluem um botão para pesquisar o wikipedia.org usando o mecanismo de pesquisa Wikipedia, e outro botão para pesquisar na Internet usando o mecanismo de pesquisa Google.

    Para fazer isso, adicione um elemento de pesquisa no formulário <search> url-template </search> para o arquivo XML do botão. Inclua um URL de consulta de pesquisa usando a variável {query} , conforme exibido nos seguintes exemplos. Ambas as consultas GET e POST são possíveis (especificadas usando o atributo method ) – GET é a configuração padrão. O URL deve ser http: ou https: baseado -- javascript: não é permitido. Três caracteres no modelo de url devem ser derivados: menor que (<), maior que (>), e “e” comercial (&).

    OBSERVAÇÃO – Um elemento <search> deve conter uma variável {query} ou o botão falhará ao exibir.

    Botão personalizado para pesquisa Wikipedia

    Por exemplo, para criar um botão para pesquisar no wikipedia.com usando o mecanismo de pesquisa Wikipedia, comece com a consulta mais simples do Wikipedia para qualquer termo, como “dog”: http://en.wikipedia.org/wiki/Special:Search?search=dog&fulltext=Search. Em vez de pesquisar o termo, o usuário digita em uma caixa de pesquisa na barra de ferramentas, substitui “dog” por "{query}" e escape o “e” comercial (&) conforme se segue:

    <search>http://en.wikipedia.org/wiki/Special:Search?search={query}&amp;fulltext=Search</search>
    
    

    Adicionando esse elemento de pesquisa ao botão anterior, obtemos:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <site>http://www.wikipedia.org</site>
    
        <title>Wikipedia</title>
        <description>The Free Encyclopedia</description>
        <search>http://en.wikipedia.org/wiki/Special:Search?search={query}&amp;fulltext=Search</search>
    
      </button>
    </custombuttons>
    

    Observe que o “e” comercial (&) no URL é derivado como "&amp;". As strings nos arquivos XML precisam de caracteres derivados de um “e” comercial (&), menor que (<) e maior que (>).

    Botão personalizado para pesquisa Google

    Para criar um botão para pesquisar na Internet usando o mecanismo de pesquisa Google, comece com a consulta mais simples do Google para qualquer termo, como “dog”: http://www.google.com/search?q=dog. Em seguida, substitua “dog” por "{query}" conforme se segue:

    <search>http://www.google.com/search?q={query}</search>
    

    Veja um exemplo:

    Pesquisa Slashdot

    <search>http://slashdot.org/search.pl?query={query}</search>
    

    Enviar uma ação de pesquisa como POST

    Para enviar ações de pesquisa como POST em vez de GET, inclua um atributo method="post" no elemento da pesquisa. Todas as informações depois do último ponto de interrogação '?' serão enviadas como dados de postagem na forma www-urlcodificado. É possível que um site use dados na forma codificada em vez de dados de url codificado, e ainda não suportamos isso. Também, é possível enviar parâmetros CGI e dados de postagem ao mesmo tempo -- para fazer isso, use dois símbolos de ponto de interrogação '?'.

    A pesquisa Onion

    Este exemplo usa um método de postagem para enviar dados de postagem (destacados):

    <search method="post">http://www.theonion.com/content/search/node
            ?edit%5Bkeys%5D={query}</search>
    

    Atualizar um botão personalizado

    O URL de download que você usa para hospedar o arquivo XML para o botão passa a ser o ID exclusivo do botão para atualizar o botão. Se uma segunda tentativa for feita para fazer o download de um botão do mesmo URL, a barra de ferramentas oferecerá somente a substituição do antigo, e não a adição de um novo.

    Das cinco maneiras para adicionar um botão, a primeira e a última sabem automaticamente de onde as atualizações do botão devem partir, e qualquer valor <update> gravado no arquivo XML é ignorado. Para as três maneiras intermediárias, você pode especificar o elemento <update> no arquivo XML para especificar onde o botão deve procurar suas atualizações.

    <update>http://buttons.com/updated_button.xml</update>
    

    Opções de botão

    Um botão pode especificar uma string de opção definida localmente usando a tag <option> que o usuário pode alterar facilmente na caixa de diálogo das configurações na barra de ferramentas. Isso é útil, por exemplo, no caso de um botão de clima especificar o CEP ou um botão de ação especificar um símbolo registrador. Por exemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Weather</title>
        <option>
    
          <title>Zip code</title>
          <description>Enter a US zip code.  For example, 94043 is Mountain View, CA</description>
          <default>94043</default>
        </option>
    
        <site>http://www.google.com/search?q=weather+{option1}</site>
      </button>
    </custombuttons>
    

    É necessário dar um título para a opção. A configuração padrão e a descrição não são necessárias. Use a variável {option1} dentro de qualquer especificação do modelo do url para inserir o texto do usuário.

    Não há validação ou sobra de espaço em branco da entrada nesse momento, e a variável {option1} derivará seja o que for que o usuário digitou usando uma escape de parâmetro utf-8 e cgi, exatamente como uma caixa de edição de texto em um envio de formulário faria.

    Incluir o URL atual

    Além de enviar a consulta da pesquisa, você também pode especificar o URL atual que o navegador exibe de três maneiras diferentes: {url} com codificação, {url.noescape} sem codificação, ou {url.host} apenas o site.

    Este exemplo usa {url.noescape} para enviar o URL atual archive.org para procurar uma versão mais antiga da página atual -- archive.org exige um URL não derivado:

    <site>http://web.archive.org/web/*/{url.noescape}*</site>
    

    O exemplo seguinte fará a mesma pesquisa archive.org , mas usando {url}:

    <site method="post">http://www.archive.org/searchresults.php?search={url}&amp;mediatype=mediatype&amp;Submit=Submit</site>
    

    E se você quiser usar o mecanismo de pesquisa Google para pesquisar dentro do site atual, use {url.host} -- é um atalho potente, mas não está disponível através do site do Google.

    <search>http://www.google.com/search?q=site:{url.host}+{query}</search>
    

    Incluir o sufixo de domínio do Google

    A Barra de ferramentas Google tem uma variável {domain} para obter o domínio, como com ou co.uk. O domínio da pesquisa pode ser encontrado na Barra de ferramentas Google em Configurações > Opções > guia Pesquisar > Usar site do Google – é a string seguindo o termo "google." .

    Você deve usar a variável {domain} em vez de codificar a string do domínio. Então, uma pesquisa Google deve ser escrita realmente como:

    <search>http://www.google.{domain}/search?q={query}</search>
    

    Enviar o texto selecionado pelo usuário

    Você também pode permitir que um botão personalizado envie uma parte do texto comum que pode ser selecionado na página da web pelo usuário. Isso poderia ser útil para um serviço de tradução, ou talvez um aplicativo de blog ou mensagem. Um ícone de texto pequeno aparece no ícone do botão personalizado quando o texto for selecionado.

    Essa operação exige o elemento <send> . O URL alvo da <send> operação pode ser diferente do alvo do <search>. A tag <send> deve incluir a variável {selection}, que retorna ao texto comum selecionado atualmente no navegador:

    <send>http://www.google.com/search?hl=en&amp;lr=&amp;q=define%3A+{selection}</send>
    

    Os botões personalizados com operações de envio também aparecerão no menu de contexto do botão direito do mouse do navegador quando o texto for selecionado.

    Testar se há ou não uma variável

    À medida que a barra de ferramentas evolui, mais variáveis do URL podem ser implementadas. Para fornecer uma compatibilidade recíproca com essas novas variáveis, a sintaxe {a?b:c} estará disponível em todos os parsers que reconhecem o botão personalizado, com a seguinte semântica:

    {param_to_be_tested?use this text if the param is implemented:use this text if not}
    

    Em resumo, permite que o autor de um botão personalizado avançado use com segurança um novo recurso, e permite a compatibilidade com parsers antigos que não conhecem esse novo recurso. Por exemplo, suponha que a variável {locale} foi introduzida. Um modelo do URL como esse poderia ser usado para garantir que as barras de ferramentas antigas não sejam afetadas:

    <site>http://www.google.com/{locale??hl={locale}}</site>
    

    Se a barra de ferramentas suportar a variável {locale}, poderia expandir para:

    <site>http://www.google.com/?hl=en</site>
    

    Se não estiver, então:

    <site>http://www.google.com/</site>
    

    Você pode agrupar expressões {a?b:c} de até 10 níveis de profundidade desde que o agrupamento ocorra depois de "?". Está correto:

    <site>http://www.google.com/{locale??hl={domain?{domain}:{query}}}</site>
    
    

    Também deve ser observado que toda vez que uma escape for usada e não for reconhecida, o parser substituirá uma string vazia. Então Hell{blah}o World. aparecerá como Hello World. E se houver um número desequilibrado de caracteres de chaves '{' ou '}', ou qualquer outro problema de análise, todo o URL simplesmente reajustará para uma string vazia.

    Como fazer ícones bonitos

    A maioria dos ícones que são usados como ícones favoritos também podem ser usados como ícones de um botão personalizado. Isso inclui imagens em BMP, ICO, GIF, e JPEG em 16x16. Você só precisa codificá-los no texto ASCII usando a codificação de base64. Há muitos sites na Internet que farão a codificação para você -- por exemplo, este. Nesse site, use o botão "Browse..." (Navegar) para selecionar o arquivo que você deseja codificar, em seguida clique no botão "Convert the source data" (Converter dados da fonte) para iniciar a codificação. Javascript e PHP também têm comandos de uma linha única para a codificação de base64.

    Aqui está um ícone do Gmail na base64 -- use um elemento <icon> :

        <icon mode="base64" type="image/x-icon">
    AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ONr/ODja/6en+f+np/n/p6f5/6en+f+np/n/p6f5
    /6en+f+np/n/p6f5/6en+f+np/n/p6f5/zg42v84ONr/ODja/zg42v/i4v//////////////////
    /////////////////////////////////////+Li//84ONr/ODja/zg42v84ONr/p6f5/+Li////
    /////////////////////////////////////////+Li//+np/n/ODja/zg42v84ONr/ODja/+Li
    //+np/n/4uL/////////////gYHy/4GB8v///////////+Li//+np/n/4uL//zg42v84ONr/ODja
    /zg42v//////4uL//6en+f+2tv//gYHy/1pa6f9aWun/gYHy/7a2//+np/n/4uL///////84ONr/
    ODja/zg42v84ONr///////////+2tv//gYHy/1pa6f84ONr/ODja/1pa6f+BgfL/trb/////////
    ////ODja/zg42v84ONr/ODja////////////gYHy/1pa6f84ONr/trb//7a2//84ONr/Wlrp/4GB
    8v///////////zg42v84ONr/ODja/zg42v//////gYHy/1pa6f84ONr/trb/////////////trb/
    /zg42v9aWun/gYHy//////84ONr/ODja/zg42v84ONr/gYHy/1pa6f84ONr/trb/////////////
    //////////+2tv//ODja/1pa6f+BgfL/ODja/zg42v84ONr/ODja/zg42v84ONr/trb/////////
    /////////////////////////7a2//84ONr/ODja/zg42v84ONr/ODja/zg42v84ONr/gYHy/6en
    +f+np/n/p6f5/6en+f+np/n/p6f5/6en+f+np/n/gYHy/zg42v84ONr/ODja/wAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAD//wAA//8AAA==
        </icon>
    

    Os ícones do botão personalizado podem ser maiores do que 16x16, mas a barra de ferramentas os diminuirá para 16x16, então além de serem maiores do que o necessário, não parecerão tão bonitos como se você os tivesse diminuído usando um editor de imagem de alta qualidade.

    Os ícones mais bonitos são aqueles que usam 24 bits de cor (RGB) e 8 bits de alfa, e são salvos como ícones RGBA com estilo XP. Você pode salvar o ícone como um PNG 16x16 com transparência alfa, convertê-lo em um ícone 16x16 de estilo XP (usando um programa como o IconWorkshop), e então fazer a codificação de base64. Os arquivos PNG não são suportados diretamente, uma vez que o Windows como padrão não suporta arquivos PNG sem fazer um link em muitas outras coisas.

    A razão pela qual você precisa usar um canal alfa é porque a cor de fundo da barra de ferramentas de todos não terá o mesmo cinza, prata ou bege que você selecionar. O Windows XP permite que os usuários personalizem o esquema de suas cores, incluindo os fundos da barra de ferramentas. Você pode obter uma aproximação fazendo um ícone quadrado que não possui partes transparentes, mas não são tão interessantes. Os canais alfa de uma cor só, como imagens GIF, terão bordas externas arredondadas com aparência granulada comparados com um ícone com mistura de alfa construído adequadamente, como os da Barra de ferramentas Google ou o próprio Internet Explorer.

    Ícones de auto-atualização e dicas

    Uma das coisas mais interessantes que um botão personalizado pode fazer é atualizar a imagem do seu próprio botão e a dica em um servidor remoto em intervalos específicos. Utiliza um feed RSS para fazer a atualização. Isso permite que um botão seja usado como um dispositivo de notificação, ou como um ícone de status (por exemplo, o clima, ou o que você puder imaginar). Um botão também pode ter um menu suspenso com itens individuais com texto ou ícones. Cada item do menu pode ter seu próprio URL dinâmico para lançar quando for clicado. Há exemplos na próxima seção.

    Adicionar um feed RSS

    Os feeds RSS usam o elemento <feed>. Veja abaixo um exemplo de um feed de notícias da CNN:

    <feed refresh-interval="1800">http://rss.cnn.com/rss/cnn_topstories.rss</feed>
    

    O protocolo para obtenção desses feeds de atualização é Atom 1.0, Atom 0.3, RSS 2.0, ou RSS 1.0. Feeds padrão geralmente funcionarão.

    Utilizar um feed para atualizar o ícone do botão/dica

    Para atualizar o ícone na barra de ferramentas, ou na descrição da sua dica, de um feed, você precisa adicionar uma extensão específica da barra de ferramentas para RSS ou ATOM usando um espaço do nome. Veja abaixo um exemplo de um botão de anel de humor que é retirado de um feed:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Mood ring</title>
        <description>Your virtual mood ring</description>
    
        <site>http://www.google.com/search?q=mood+ring</site>
        <feed menu="false" refresh-interval="900">
              http://www.example.com/custombuttons/samples/feeds/mood</feed>
      </button>
    </custombuttons>
    
    

    Observe que especifica menu="false" para indicar que esse feed é usado somente para atualizar o ícone e a dica, e não para encher um menu de subitens suspenso.

    Se fosse designado em um servidor real, o resultado do feed se pareceria com isto:

    <?xml version='1.0'?>
    <feed xmlns='http://www.w3.org/2005/Atom' 
        xmlns:gtb='http://toolbar.google.com/custombuttons/'>
    <id>http://www.example.com/custombuttons/samples/feeds/mood</id>
    
    <title>Mood</title>
    <link href='http://www.google.com/search?q=+ring' />
    <link rel='self' 
        href='http://www.example.com/custombuttons/samples/feeds/mood' />
    <gtb:description>Bluegreen:
    Inner emotions charged, somewhat relaxed</gtb:description>
    <gtb:icon mode="base64" type="image/x-icon">
    AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
    AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAGAAAAHAAAAEAAAABhAAAAcwAAAHQAAABpAAAAVQAAAD4AAAApAAAAGAAAAAoAAAAD
    AAAAAQAAAAAAAAAAAAAAESZIXl4zdJvAXbHS8m3C3f9LnrrLFUtsmwILEX4AAABzAAAAYQAAAEcA
    AAAqAAAAEwAAAAcAAAACAAAAACs9RTNOjrDtW6nS/53u/f+n/P//hej//2bP/P9Fq93wHGaNrxEv
    O4kAAAB6AAAAXwAAADwAAAAfAAAADAAAAANihaWST6XK/0h/kcAdKCyWKTtAgVJ/kIhytNKse873
    9E+w6v9RuN39SXuJpgQHCIoAAAB2AAAAUQAAACsAAAAPb6nU7mK65v9jqs76KkNPqAUICJoAAACE
    AAAAaxUgJWBkrMiwsvv+//D+/v+y1NniIj1FnAAAAIgAAABcAAAALHS74PV1zPn/c835/1Oezv9N
    iq7vNVRjrxUiJ5kBAgORAQICh3uLjZz3+vr1+f///4PL5/wvVmusAAAAigAAAFNyu+TPdtL8/0Cp
    7v8ng8X/CFOH/ytpjv86gJ//R46z+Th6jsovVmCsd56pxNf2/f9TuPH/W7fs/ypGV6UAAAByf77Y
    r02y7P9Zwfb/puH3/y+AtP8jZ5f/KWKH/0p7hP+ZrVr/zcUt/9vMKf/bzSz/tsBP/3OzrP9kl7Pp
    AAAAgHGdpThatuT/0fn+//b///+V0uv/NICu/4mvfP/czjL/3M0v/9rMKP/dzzT/3c83/9vNLf/b
    zS//nrWA/gAAAIMAMzMFbrrd2d/+///5////t+n6/4q6nf/czzX/3tA+/97QPf/czjP/3dA7/97R
    Qv/czjD/3M4z/9DHLPoAAAB/AAAAAWShtUix5+//5v7+/5Hf7//Bvjn/3M0v/9/SSP/g1FL/39RR
    /+DVWv/e0kf/3tFA/9zNL//bzCj/AAAAbwAAAAAAAAADcq7Fmpzo8f9rsL3/2ssl/93POf/f0kj/
    49pu/+ffhP/q45b/49pp/97SSv/czS//yb0q4wAAAE8AAAAAAAAAAF54hhNrq77BXpCj/7+7Of/c
    zjH/3tFH/+bdeP/w7cv/9PLa/+zlnf/g1VP/1so5/mBfJHsAAAArAAAAAAAAAAAAAAABa5GgIHWs
    t/dymG3/3tE//9/UUv/o4Ij/9PHT//v67P/v6a3/08xY/3uMX6UAAAAuAAAAEAAAAAAAAAAAAAAA
    AAAAAAKSvb9YSoWa+WyagP+wv2X/4NRO/+ngfv/m4Zf/rLeB+lpubIkAAAAlAAAADgAAAAMAAAAA
    AAAAAAAAAAAAAAAAAAAAAoqvuDxkkp2gYo+c51mHkv9lk5v/Y4eNtlBfaEgAAAAWAAAACQAAAAIA
    AAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAMAA
    AADgAAAA8AEAAA==
    </gtb:icon>
    
    </feed>
    

    O exemplo acima é um feed Atom 1.0, com o espaço do nome dos botões personalizados Google especificados como:

    xmlns:gtb='http://toolbar.google.com/custombuttons/'
    

    Para sobrepor uma dica que veio com o botão, especifique:

    <gtb:description> new-description </gtb:description>
    
    

    Para sobrepor o ícone que veio com o botão, especifique:

    <gtb:icon> icon-base64-code </gtb:icon>
    

    O script PHP que potencializa o sistema de análise de “humor” complexo se parece com:

    <?php
    
    header('Content-type: text/xml');
    
    switch(rand(1, 7)) {
      case 1:
        $icon = "amber.ico";
        $desc = "Amber:\nNervous, on edge, uncertain";
        break;
    
      case 2:
        $icon = "black.ico";
        $desc = "Black:\nTense, stressed, working too hard";
        break;
    
      case 3:
        $icon = "blue.ico";
        $desc = "Blue:\nComfortable, breeze, at rest, loveable";
        break;
    
      case 4:
        $icon = "bluegreen.ico";
        $desc = "Bluegreen:\nHeightened inner emotional state, moderately relaxed";
        break;
    
      case 5:
        $icon = "gray.ico";
        $desc = "Gray:\nAnxious, ill at ease, strained";
        break;
    
      case 6:
        $icon = "green.ico";
        $desc = "Green:\nSteady, stable, no emotional turmoil";
        brea;
    
      case 7:
        $icon = "purple.ico";
        $desc = "Dark Blue:\nImpassioned, delighted, whiff of romance";
        break;
    }
    
    $icon = base64_encode(file_get_contents($icon));
    
    echo "<?xml version='1.0'?>";
    echo "\n<feed xmlns='http://www.w3.org/2005/Atom' xmlns:gtb='http://toolbar.google.com/custombuttons/'>";
    echo "\n<id>http://www.example.com/custombuttons/samples/feeds/mood</id>";
    echo "\n<title>Mood</title>";
    echo "\n<link href='http://www.google.com/search?q=$mood+ring' />";
    echo "\n<link rel='self' href='http://www.example.com/custombuttons/samples/feeds/mood' />";
    echo "\n<gtb:description>$desc</gtb:description>";
    echo "\n<gtb:icon mode='base64' type='image/x-icon'>$icon</gtb:icon>";
    echo "\n</feed>";
    
    ?>
    
    

    Os ícones devem estar na mesma pasta que o script.

    Utilizar um feed para atualizar os ícones do botão e do menu suspenso

    Você também pode adicionar ícones baseados no servidor para os itens individuais no menu suspenso do feed. Veja abaixo um exemplo de um botão de clima que possui um feed com um menu suspenso (a configuração padrão), mas também especifique refresh-menuitem="false" para ocultar o item do menu de atualização sempre que uma conexão bem-sucedida for feita com o servidor. Isso proporciona uma aparência mais clara.

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Weather 94043</title>
        <description>Weather updates for Mountain View, CA</description>
    
        <site>http://www.google.com/search?q=weather+94043&num=1</site>
        <feed refresh-interval="3600" refresh-menuitem="false">
            http://www.example.com/custombuttons/samples/feeds/weather?zip=94043</feed>
      </button>
    
    </custombuttons>
    

    A seguir há uma amostra de como o feed de clima se parece, com um ícone personalizado próximo de cada item do menu no menu suspenso (com a maioria das coisas de base64 do ícone removidas para clareza). De acordo com o exemplo acima, seria visível em: http://www.example.com/custombuttons/samples/feeds/weather?zip=94043

    <?xml version='1.0'?>
    <feed xmlns='http://www.w3.org/2005/Atom' 
        xmlns:gtb='http://toolbar.google.com/custombuttons/'>
    <id>http://www.example.com/custombuttons/samples/feeds/weather</id>
    
    <title>Weather Mountain View, CA</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <link rel='self'
        href='http://www.example.com/custombuttons/samples/feeds/weather' />
    <gtb:description>Mountain View, CA
    63F Mostly Cloudy
    Humidity: 48%
    Wind: NW at 8 mph</gtb:description>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
    tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
    ... and so on...
    </gtb:icon>
    
    <entry>
    <title>Today: Mostly Cloudy 65 | 50</title>
    
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/0</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAEuc/Pz8/Fik/Ii00k9daZGPivLy8tbW1k2R0uvr6wZj3HSq0f/QMMfHx7a2
    tj2F0fu0EePj4yx81neUp4J/eKanphJq3IJtOGB3iI3C5BFt5B5XnWis7H2346jO5/6+IWKo8923
    ... and so on...
    </entry>
    
    <entry>
    <title>Thu:  66 | 51</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/1</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoAPcAAAAAAP///4WOwPT1+tDT3unr8sHG1ff5/6Wy0mZ8rGqAr3mJrJakxa+zvHSK
    tcDBw1R2slBql110njBXjztmqS9OfjtekTZWhGeJuoqctklLTgJYyQJQtQ9hzhRr3BZlzBVRoS1S
    ... and so on...
    </gtb:icon>
    
    </entry>
    
    <entry>
    <title>Fri:  67 | 51</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    <id>http://www.example.com/custombuttons/samples/feeds/weather/2</id>
    <gtb:icon mode='base64' type='image/x-icon'>
    
    R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
    Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
    ... and so on...
    </gtb:icon>
    </entry>
    <entry>
    <title>Sat:  67 | 50</title>
    <link href='http://www.google.com/search?q=weather+94043/' />
    
    <id>http://www.example.com/custombuttons/samples/feeds/weather/3</id>
    
    <gtb:icon mode='base64' type='image/x-icon'>
    R0lGODlhKAAoANUAAObm52ms7k2Q0Uuc/Fmk+v2zDoS01HOp0avP5tvb26CPXQZj3DqG14yLh05Y
    Yf/IKv/VN3mCiMPDw6SkpCt82GhxePz8/JG+2pd5NRZu3hBq3fb29rCAFrm5uSN549OWE4WltqHI
    ... and so on...
    </gtb:icon>
    </entry>
    </feed>
    

    Você pode usar o mesmo espaço do nome e descrição 'http://toolbar.google.com/custombuttons/' ou tags do ícone nos feeds RSS 1.0, RSS 2.0, Atom 1.0 e Atom 0.3 para os feeds da barra de ferramentas da mesma maneira.

    Diversos idiomas

    Um botão personalizado pode lidar com URLs, ícones e texto alternados para locais específicos da barra de ferramentas As duas maneiras para se fazer isso estão listadas abaixo – recomenda-se o primeiro método.

    Usar atributo local

    O método recomendado para criar uma lista de tags XML, cada uma usando um atributo locale="iso-name" com o iso-name para o local de interesse. Veja abaixo um exemplo de um botão com descrições e URLs em francês e espanhol alternados:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
      <button>
        <title>Wikipedia</title>
        <site>http://www.wikipedia.org</site>
    
        <site locale="fr">http://fr.wikipedia.org</site>
        <site locale="es">http://es.wikipedia.org</site>
        <description>The Free Encyclopedia</description>
    
        <description locale="fr">L'encyclopdie libre</description>
        <description locale="es">La enciclopedia libre</description>
      </button>
    </custombuttons>
    
    

    Se o local do idioma na barra de ferramentas atual não puder ser encontrado diretamente na tag XML, a primeira tag na lista acima é usada como a configuração padrão.

    Usar variável {locale}

    O método alternado é para usar a variável {locale} contida em um URL, como http://{locale}/wikipedia.org. Esse método funciona muito bem se o conjunto de locais que avalia mapear exatamente os diferentes sites disponíveis (que é o caso do Google.com). Contudo, para a maioria dos usuários, esse não será o caso. Pode haver um site em um determinado local que a Barra de ferramentas Google ainda não suporta. Por exemplo, ao escrever isso, enquanto a Wikipedia tem uma versão em polonês (http://pl.wikipedia.org), mas polonês (pl) não é um local nativo na barra de ferramentas, então os poloneses não serão capazes de acessar esse site. Ao contrário, a barra de ferramentas está disponível para o local do português do Brasil (pt-BR), mas a Wikipedia não tem um site para esse local determinado. Também, você pode misturar afirmações com o atributo locale e afirmações com a variável {locale} se for conveniente -- nesse caso, o primeiro atributo ainda seria a configuração padrão.

    Tabela do local do ISO

    Os locais na barra de ferramentas atualmente suportados são:

    ISO Local Idioma
    en Inglês
    da Dinamarquês
    de Alemão
    es Espanhol
    fi Finlandês
    fr Francês
    it Italiano
    ja Japonês
    ko Coreano
    nl Holandês
    no Norueguês
    pt-BR Português do Brasil
    ru Russo
    sv Sueco
    zh-CN Chinês (simplificado)
    zh-TW Chinês (tradicional)

    Hospedar um botão personalizado

    Onde hospedar seu botão

    Qual URL de download que você usa para hospedar o arquivo XML para o botão é muito importante, porque o URL passa a ser o ID exclusivo do botão para atualizar o botão. Se uma segunda tentativa for feita para fazer o download de um botão do mesmo URL, a barra de ferramentas oferecerá somente a substituição do antigo, e não a adição de um novo. Para obter mais informações, consulte Atualizar um Botão personalizado.

    Adicionar seu botão à Galeria de botões do Google

    Adicionar seu botão à Galeria de botões do Google é uma ótima maneira de fazer com que o mundo conheça seu novo botão. Seu arquivo XML já deve estar hospedado em algum lugar (a Galeria de botões fará um link diretamente com o arquivo) e o botão deve estar de acordo com nossas Diretrizes editoriais.

    Se você criou um botão para um site que seja seu, deve hospedar seu arquivo XML no mesmo domínio do seu site. Os botões na Galeria de botões do Google são marcados como "oficiais" se estiverem hospedados no mesmo domínio que o botão acessar. Assim, os usuários encontrarão o botão oficial para seu site com mais facilidade.

    Quando você tiver terminado, preencha o formulário de envio da Galeria de botões para que o Google conheça seu botão.

    Fazer um link com o botão do seu site

    Você pode disponibilizar seu botão no seu próprio site criando um link de instalação. Quando um usuário da Barra de ferramentas Google 4 clicar no link, estará pronto para instalar seu botão. Se o usuário não tiver uma versão compatível da Barra de ferramentas, o link irá para a página de download da Barra de ferramentas Google.

    Um desenvolvedor pode criar um link de instalação usando a seguinte sintaxe do URL:

    http://toolbar.google.com/buttons/add?url=url

    onde url aponta para o arquivo XML do botão personalizado. Por exemplo, há um link que instalaria um botão Slashdot.com :

    <a href="http://toolbar.google.com/buttons/add?url=http://www.slashdot.org/slashdot_button.xml">Add</a>

    O marcador desse link é Adicionar. Quando um usuário clicar nesse link, o botão Slashdot.com foi instalado na sua Barra de ferramentas Google.

    O URL do Google acima é basicamente um acionador para a barra de ferramentas instalar qualquer botão personalizado. Se o usuário não tiver uma versão compatível da barra de ferramentas, estará pronto para instalá-la. Quando a barra de ferramentas tiver sido instalada, o botão personalizado será adicionado automaticamente.

    Gerenciar o tráfego de feed

    Tráfego da web com feeds podem ser preocupantes. Um botão não deve apontar para seu feed em um servidor com banda larga baixa se você achar que se tornou popular e tem um tráfego pesado. O servidor pode ficar sobrecarregado com solicitações de atualização.

    O botão personalizado tem o seu próprio atributo de intervalo de atualização para feeds. A barra de ferramenta cumpre o período “Expirou" que o servidor fornece no cabeçalho HTTP. Essa configuração sobrepõe o intervalo de atualização do botão. Se o servidor estiver sobrecarregado, você poderia aumentar o período “Expirou” para reduzir a carga. Por exemplo, se um botão for ajustado para atualizar a cada hora, o período “Expirou” pode ser ajustado para todos os dias, o que reduziria em muito o tráfego (embora talvez limite as atualizações do botão).

    Veja abaixo um script PHP de amostra para ajustar o período Expires para uma semana no futuro:

    <?php
    $expires = gmdate("D, d M Y H:i:s", time() + 3600 * 24 * 7) . " GMT";
    Header("Expires: " . $expires);
    ?>
    

    Resposta HTTP de exemplo do servidor:

    HTTP/1.1 200 OK
    Date: Thu, 05 Jan 2006 23:39:54 GMT
    Server: Apache/2.0.47 (Red Hat Linux)
    Accept-Ranges: bytes
    X-Powered-By: PHP/4.3.2
    Expires: Thu, 12 Jan 2006 23:39:54 GMT
    Transfer-Encoding: chunked
    Content-Type: text/html
    

    Referência

    Referência XML

    Um arquivo XML do botão personalizado tem a seguinte estrutura:

    <?xml version="1.0" encoding="utf-8"?>
    <custombuttons xmlns="http://toolbar.google.com/custombuttons/">
    
      <button>
        <!-- XML elements -->
      </button>
    </custombuttons>
    

    Os seguintes elementos XML podem aparecer dentro de um elemento <button> . Qualquer elemento (exceto <update>) pode aparecer mais de uma vez, desde que cada um esteja designado para um local diferente.

    <title> texto </title>
    O título do botão de pesquisa personalizado que o usuário visualiza na lista de botões personalizados na (Configurações > Opções > Botões Personalizados) ou de forma opcional próximo ao botão. O valor deve ser exclusivo, já que também funcionará como a palavra-chave padrão se aparecer um tipo de pesquisa.
    Esse elemento suporta o mesmo locale atributo conforme <search> abaixo.
    Veja o <title> exemplo.
    <description> dicas </description>
    O texto da dica da pesquisa personalizada que o usuário visualizará se pairar com um mouse. Também é a descrição que o usuário visualiza depois de fazer o download do botão em um site.
    Esse elemento suporta o mesmo locale atributo conforme <search> abaixo.
    Veja o <description> exemplo.
    <site> url </site>
    URL opcional para navegar quando não houver um texto novo na caixa de pesquisa. O protocolo é restrito para http: e https: para segurança. As seguintes variáveis nesse URL serão expandidas: {domain}, {url}, {url.noescape}, {url.host}, e {locale}.
    O elemento <site> suporta o mesmo method e atributos locale conforme <search> abaixo.
    Veja o <site> exemplo.
    <search> modelo de url </search>
    O URL que o navegador direcionará e pesquisará quando o botão for clicado com um termo de pesquisa “novo” na caixa de pesquisa. ("Novo" significa que a caixa de pesquisa tem foco.) O URL deve ser http: ou https: baseado -- javascript: não é permitido. A variável {query} é exigida no modelo de pesquisa (e não é permitida em outros modelos de URL). Esse elemento é opcional e pode ser omitido se esse botão não estiver na lista do botão de pesquisa.
    O elemento de pesquisa pode especificar estes atributos:
    method="post"|"get"
    A configuração padrão é "get". Ajustar para "post" para usar postagem em vez de obtenção ao enviar dados na forma codificada do URL. O método de codificação deve ser aplicativo/x-www-forma-urlcodificado. Quando uma pesquisa é realizada, todo o texto depois do último ponto de interrogação '?' será enviado como dados de postagem.
    locale="en"|"da"|"de"|"es"|"fi"|"fr"|"it"|"ja"|"ko"|"nl"|"no"|"pt-BR"|"ru"|"sv"|"zh-CN"|"zh-TW"
    Especifica um local onde esse elemento pode suportar um URL alternado. Inclua o nome local do ISO, como locale="fr". Geralmente, você especificaria múltiplos elementos, cada um com seu próprio atributo local e URL alternado. (Quando esse atributo for usado com outros elementos XML, pode especificar um ícone ou texto diferente.) Veja os exemplos de locais e a tabela do local do ISO
    Veja o <search> exemplo.
    <send> modelo de url </send>
    O URL opcional que o navegador direcionará quando não houver texto na caixa de pesquisa e o usuário tiver selecionado a janela do navegador. A variável {selection} é exigida no modelo de envio (e não é permitida em outros modelos de URLs).
    O elemento <send> suporta o mesmo method, charset e locale atributos conforme <search> above.
    Veja o <send> exemplo.
    <icon> codificação de base64 </icon>
    Os bits reais de um arquivo .ico de estilo Windows, preferencialmente uma imagem RGBA de 32 bits 16x16 de estilo XP, que muitos sites usam como um arquivo .ico do ícone favorito. Como é um valor binário, deve ser codificado na base64. Se não houver ícone, uma configuração padrão deve ser escolhida. As imagens .ico alfa misturadas de estilo XP 16x16 são o formato preferido, mas também há suporte para ICO, JPG, BMP, e GIF regulares de tamanhos arbitrários que serão ajustados para 16x16. O ícone RGBA XP funcionará em todos os sistemas operacionais nos quais a Barra de ferramentas Google opera, então não há necessidade de criar uma alternância de cores de 256 ou 16. Não suporta PNG.
    Os atributos mode e type não são necessários, mas podem facilitar a edição em um editor XML que os interpretar:
    mode="base64"
    A codificação do ícone.
    type="image/x-icon"
    O tipo de imagem.
    Esse elemento suporta o mesmo atributo locale conforme <search> acima.
    Veja o <icon> exemplo.
    <feed> url </feed>
    Especifique um URL para um arquivo XML RSS 2.0 ou Atom Feed 0.3/1.0. Esse elemento acrescenta a capacidade de abrir um menu suspenso com títulos de feed RSS, descrições e links, similares aos favoritos Firefox RSS, que são atualizados automaticamente (e não inicializados pelo usuário). Esse elemento é opcional, e não será usado pela maioria das pesquisas personalizadas. As variáveis {domain} e {locale} também podem ser usadas no feed.
    Esse elemento pega estes atributos:
    menu="true"|"false"
    Ajuste para falso para ocultar o menu suspenso das entradas do feed. A configuração padrão é verdadeiro.
    refresh-interval="secs"
    Número de segundos de espera antes de recarregar o feed. A configuração padrão é 3600 (1 hora). A barra de ferramentas não atualizará mais de uma vez por minuto mesmo se esse valor for menor que 60.
    refresh-onclick="true"|"false"
    Ajuste para verdadeiro para obrigar uma recarga sempre que o usuário clicar no botão. A configuração padrão é falso.
    google-service="true"|"false"
    Ajuste para verdadeiro se for um serviço das contas do Google, o que significa que está disponível somente quando um usuário tiver se conectado no Google. Uma atualização acontece quando uma conexão for detectada e uma desconexão apaga os itens do menu.
    Esse elemento suporta o mesmo atributo locale conforme <search> acima.
    Veja o <feed> exemplo.
    <feed-icon> codificação de base64 </feed-icon>
    Um ícone alternado para exibir quando o feed tiver novos itens (mesmo formato de <icon>). Quando um usuário clicar em um botão, o ícone voltará ao ícone normal até o próximo feed. Um servidor do feed pode especificar um ícone diretamente na resposta Atom Feed ou RSS 2.0, nesse caso <feed-icon> ou <icon> terá prioridade o segundo.
    Esse elemento suporta o mesmo atributo locale conforme <search> acima.
    (Nenhum exemplo <feed-icon> está incluído, mas seria similar ao <icon> exemplo.)
    <feed-description> dicas </feed-description>:
    Uma descrição alternada para exibir na dica quando o feed tiver novos itens. Quando um usuário clicar em um botão, a descrição voltará à descrição normal até o próximo feed.
    Esse elemento suporta o mesmo atributo locale conforme <search> acima.
    (Nenhum exemplo <feed-description> está incluído, mas seria similar ao <description> exemplo.)
    <update> url </update>
    O URL de onde a definição desse botão foi feito o download, e de onde o botão de atualização obterá um arquivo XML de substituição se o usuário clicar no link para atualizar (Configurações > Opções > Botões personalizados > selecionar botão > Editar > Fazer download da última versão). Esse URL será sobrescrito pelo URL real que o botão fez o download nas instalações da web que não são provenientes do google.com. Esse é o único elemento no botão personalizado que não possui um atributo de local.
    Veja <update> example.
    <option> sub-elementos </option>
    Especifica uma string de opção definida localmente que o usuário pode alterar facilmente na caixa de diálogo das configurações na barra de ferramentas. Esse valor é retornado na variável {option1} . Esse elemento pode ter três sub-elementos, o primeiro deles é exigido:
    <title>
    O nome da opção. O usuário visualiza esse nome na caixa de diálogo das configurações da barra de ferramentas. Esse sub-elemento é exigido.
    <description>
    Uma descrição dessa opção. O usuário visualiza essa descrição. Cada opção pode ter várias descrições. Esse sub-elemento é opcional.
    <default>
    O valor da configuração padrão da tag {option1} . Esse valor é usado se o usuário não digitar nenhum valor. Esse sub-elemento é opcional.
    Veja o <option> exemplo.

    Caracteres de escape

    As strings nos arquivos XML (e arquivos HTML) precisam dos três caracteres derivados a seguir como as entidades do HTML exibidas:

    Caractere Derivar string
    & &amp;
    > &gt;
    < &lt;

    Referência de variáveis

    OBSERVAÇÃO – Há uma sintaxe condicional {a?b:c} para variáveis que fornecem compatibilidade recíproca. Para obter mais informações, consulte Testar Se Há ou Não uma Variável.

    As seguintes variáveis, ou parâmetros de escape, são usadas nos elementos listados no escopo especificado. Por exemplo, {query} só pode ser usado no elemento <search> .

    {query}
    Retorna à string que o usuário digitou na caixa de pesquisa na barra de ferramentas, com um sinal de mais '+' derivando nos espaços, escape de URL para caracteres de pontuação, e UTF-8 codificado para caracteres internacionais. Alguns sites podem precisar da consulta codificada em outro método além do UTF-8, como a codificação do caractere nativo do país -- por exemplo, shift-JIS para o Japão.
    Valor do exemplo: Se o usuário digitar "hello world" na caixa de pesquisa, a variável retornaria para "hello world"
    Escopo: <search> elemento
    Veja o {query} exemplo.
    {url}
    Retorna ao URL do campo de endereço do navegador, onde qualquer caractere que não for uma letra, número, ponto final (.) ou sublinhado (_) está codificado (derivado). Por exemplo, o sinal “arroba” (@) codifica para %40, e o espaço codifica para %20.
    Valor do exemplo: http%3A%2F%2Fwww.wikipedia.org (a versão codificada do http://www.wikipedia.org)
    Escopo: <search>, <site>, ou <send> elemento
    Veja o {url} exemplo.
    {url.host}
    Retorna à string do site.
    Valor do exemplo: www.google.com
    Escopo: <search>, <site>, ou <send> elemento
    Veja o {url.host} exemplo.
    {url.noescape}
    Retorna ao texto literal do URL, exatamente como aparece no campo de endereço do navegador, sem mais nenhuma codificação.
    Valor do exemplo: http://www.wikipedia.org
    Escopo: <search>, <site>, ou <send> elemento
    Veja o {url.noescape} exemplo.
    {domain}
    Retorna ao domínio de pesquisa principal do Google para aquela barra de ferramentas. Ou seja, retorna ao domínio correspondente aos resultados da pesquisa, e não ao domínio em que o usuário está
    Valores do exemplo: com e co.uk
    Escopo: <search>, <site>, <send>, ou <feed> elemento
    Veja o {domain} exemplo.
    {locale}
    Retorna ao local do ISO da barra de ferramentas.
    Valores do exemplo: en, es, e pt-BR
    Escopo: <search>, <site>, ou <send> elemento
    Veja o {locale} exemplo.
    {selection}
    Retorna ao texto comum selecionado atualmente na janela do navegador atual. Está codificado em utf-8, ou seja, o que for que o atributo charset especificar, e é cgi-derivado. Se o método de codificação não for postagem, o texto pode estar truncado.
    Valor do exemplo: Se o usuário selecionar "hello world" em negrito no navegador, essa variável retornaria para o "hello world" comum
    Escopo: <send> elemento
    Veja o {selection} exemplo.
    {option1}
    Retorna ao valor especificado pelo usuário do elemento <option> . Essa variável deve ser posicionada em um URL. (Aliás, essa variável é a opção1 nomeada no caso de haver a necessidade de adicionar outras opções no futuro.)
    Valor do exemplo: Se o usuário especificar um CEP nas configurações da barra de ferramentas do botão personalizado, essa variável retornaria para aquele valor, como "94043", como parte de um URL.
    Escopo: Deve ir para um URL em <search>, <site>, <send>, ou <feed> elemento
    Veja o {option1} exemplo.