<?xml version="1.0" encoding="utf-8"?>
<chapter id="desktop-integration" lang="pt-BR">
  <title>Integração com o ambiente de trabalho</title>
  
  <para>Há dois elementos para uma integração básica com o ambiente de usuário do GNOME. <orderedlist>
      <listitem><para>Coloque uma entrada para seu aplicativo no menu <guimenu>Aplicativos</guimenu>. Este é o mecanismo primário pelo qual os usuários descobrem e executam aplicativos.</para></listitem>
      <listitem><para>Caso seu aplicativo possa abrir e salvar arquivos, coloque uma entrada para esses tipos de arquivos no banco de dados do aplicativo e no banco de dados de tipos de documento (MIME). Isso permite que o gerenciador de arquivos e outros aplicativos automaticamente executem seu aplicativo quando encontram arquivos que seu aplicativo pode manipular.</para></listitem>
    </orderedlist> Não adicione lançadores ou outros ícones na área de trabalho quando seu aplicativo é instalado. A área de trabalho é o espaço do usuário, e é reservado para ícones que ele explicitamente solicite ou adicione.</para>
  <sect1 id="desktop-application-menu">
    <title>Colocando entradas no menu Aplicativos</title>
    
	<figure><title>O menu Aplicativos</title>
	  <mediaobject><imageobject><imagedata fileref="images/desktop-applications-menu.png" format="PNG" width="160" depth="365"/></imageobject> <imageobject><imagedata fileref="images/desktop-applications-menu.eps" format="EPS"/></imageobject> <textobject><phrase>Captura de tela do menu Aplicativos aberto no painel de menus do GNOME</phrase></textobject></mediaobject>
	</figure>
	
       <para>O menu <guimenu>Aplicativos</guimenu>, o qual aparece no painel no topo da tela por padrão, é o mecanismo primário pelo qual os usuários descobrem e executam aplicativos. Você coloca entradas nesse meno ao instalar um arquivo <filename>.desktop</filename> apropriado.</para>

    <para>O menu é arranjado em um conjunto de categorias, como Acessórios e Jogos. Aplicativos são colocados em categorias particulares pelo conjunto de palavras-chave que incluem em seu arquivo <filename>.desktop</filename>.</para>

	<itemizedlist><title>Diretrizes</title>
		<listitem><para>Atribua a seu aplicativo apenas uma categoria no menu <guimenu>Aplicativos</guimenu></para></listitem>

		<listitem><para>Para suítes de aplicativos que envolvem sub-aplicativos menores em uma única janela, como Evolution ou OpenOffice.org, adicione um item de menu para cada sub-aplicativo. Por exemplo, o e-mail, o calendário e a lista de tarefas no Evolution devem ter cada um seu próprio item no menu.</para></listitem>

	</itemizedlist>

	<para>Detalhes técnicos podem ser encontrados nas especificações de <ulink url="http://freedesktop.org/Standards/menu-spec">menu</ulink> e de <ulink url="http://www.freedesktop.org/Standards/desktop-entry-spec">entradas da área de trabalho</ulink> em freedesktop.org.</para>


    <sect2 id="menu-item-names">
      <title>Nomes dos itens de menu</title>


      <sect3 id="menu-item-functional-description">
	<title>Inclua uma descrição funcional no nome do menu</title>

	<para>No nome do item de menu, inclua uma descrição da funcionalidade além do próprio nome do aplicativo. Isso é especialmente útil para usuários novatos, e para usuários de sistemas onde inúmeros aplicativos estão instalados por padrão. Usuários são mais suscetíveis a encontrar seu aplicativo se o nome que aparece no menu inclui uma descrição de sua funcionalidade.</para>

	<para>Por exemplo, <ulink url="http://ist.mit.edu/services/consulting/usability">um teste de usuários do sistema Athena do MIT</ulink> revelou que usuários tiveram dificuldade de encontrar o gerenciador de arquivos porque não eram familiarizados com o nome "Nautilus". O item de menu não ajudou os usuários porque eles não associaram a palavra "Nautilus" com o conceito "gerenciador de arquivos". Esse é um exemplo de como não utilizar a linguagem do usuário. Veja <xref linkend="principles-match"/> para mais informações neste tópico.</para>


	    <example>
		<title>Incluindo descrições funcionais nos nomes do menu</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Item de menu original</entry>
				      <entry>Item de menu revisado</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Epiphany</entry>
					<entry>Navegador web Epiphany</entry>
				</row>
	  		</tbody>
         	</tgroup>
		</informaltable>
	</example>

      </sect3>

      <sect3>
	<title>Coloque apenas informações úteis no nome do menu</title>
	<para>Não inclua palavras como "GNOME", "Sistema de janelas X", "GTK+" ou outros detalhes da plataforma no nome do menu <guimenu>Aplicativos</guimenu>. O usuário provavelmente já sabe qual plataforma que estão usando, e caso não saibam, nomes de aplicativos não são o lugar correto para informá-lo.</para>
	<example>
		<title>Removendo informação não essencial do nome do menu</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Item de menu original</entry>
				      <entry>Item de menu revisado</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Visualizador de imagens do GNOME</entry>
					<entry>Visualizador de imagens</entry>
				</row>
				<row>
					<entry>Editor de blog em GTK</entry>
					<entry>Editor de blog</entry>
				</row>
	  		</tbody>
         	</tgroup>
		</informaltable>
	</example>

	<para>Não inclua detalhes técnicos quando o usuário não precisa conhecê-los, ou pode inferí-los do contexto. Evite jargão técnico a não ser que o aplicativo seja usado apenas por uma audiência técnica.</para>
	<para>Por exemplo, quando tanto um cliente e um servidor de algo são listados nos menus, remova a palavra "cliente" do nome do menu do cliente.</para>
	
	<example>
		<title>Removendo jargão técnico dos nomes do menu</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Item de menu original</entry>
				      <entry>Item de menu revisado</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Cliente de batalha naval do Gnome</entry>
					<entry>Batalha naval</entry>
				</row>
				<row>
					<entry>Servidor de batalha naval do Gnome</entry>
					<entry>Servidor multijogador de batalha naval</entry>
				</row>
				<row>
					<entry>Cliente de VideoLAN do Gnome</entry>
					<entry>Reprodutor multimídia VideoLAN</entry>
				</row>
	  		</tbody>
         	</tgroup>
		</informaltable>
	</example>

	<tip><title>Fornecendo a informação certa</title>
        <para>Tente imaginar quais palavras os usuários estarão procurando quando selecionarem seu aplicativo do menu <guimenu>Aplicativos</guimenu>. Esta é a informação que deve estar no nome do menu. Por exemplo, um usuário que deseja reproduzir um filme provavelmente não estará procurando pela palavra "cliente". Por outro lado, um usuário que deseja transmitir filmes de seu computador poderá estar procurando pela palavra "servidor". Evite pensar no menu de aplicativos como uma ontologia!</para></tip>
      </sect3>

      <sect3>
	<title>Formatos do nome de menu</title>
	<orderedlist>
	  
         <listitem>
	    <para>Caso o nome do seu aplicativo já seja descritivo de sua funcionalidade, e não apenas sugestivo, use o formato: <replaceable>Nome do aplicativo</replaceable></para>
	<example>
		<title>Usando o nome do aplicativo como o nome de menu</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Nome do aplicativo</entry>
				      <entry>Nome de menu</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Dicionário</entry>
					<entry>Dicionário</entry>
				</row>
				<row>
					<entry>Ferramenta de pesquisa</entry>
					<entry>Ferramenta de pesquisa</entry>
				</row>
	  		</tbody>
         	</tgroup>
		</informaltable>
        	</example>
          </listitem>

	  <listitem>
	    <para>Caso haja uma descrição funcional sucinta de seu aplicativo, use o formato: <replaceable>NomeDoAplicativo DescriçãoFuncional</replaceable></para>

	<example>
		<title>Usando descrições funcionais em nomes de menu</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Nome do aplicativo</entry>
				      <entry>Nome do item de meno</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>GIMP</entry>
					<entry>Editor de imagens GIMP</entry>
				</row>
				<row>
					<entry>Sub-aplicativo de e-mail do Evolution</entry>
					<entry>E-mail do Evolution</entry>
				</row>
				<row>
					<entry>AbiWord</entry>
					<entry>Processador de texto AbiWord</entry>
				</row>
				<row>
					<entry>Galeon</entry>
					<entry>Navegador web Galeon</entry>
				</row>
				<row>
					<entry>Gramps</entry>
					<entry>Genealogia Gramps</entry>
				</row>
				<row>
					<entry>AisleRiot</entry>
					<entry>Paciência AisleRiot</entry>
				</row>

	  		</tbody>
         	</tgroup>
		</informaltable>
	</example>


	  </listitem>

	  <listitem>
	    <para>Alguns aplicativos, particularmente jogos, não possuem uma descrição funcional apropriada (mas note que vários jogos possuem). Neste caso, use <replaceable>Nome do aplicativo</replaceable> como o nome de menu.</para>

	<example>
		<title>Usando o nome do aplicativo como nome de menu onde nenhuma descrição funcional existe</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Nome do aplicativo</entry>
				      <entry>Nome do item de meno</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Bomber Maze</entry>
					<entry>Bomber Maze</entry>
				</row>
	  		</tbody>
         	</tgroup>
		</informaltable>
	</example>

	  </listitem>

	</orderedlist>
      </sect3>
<!--
	<sect3>
	<title>Generic Name and Name</title>

        <para>There are two name types required for a menu item, a generic name and a proper name.  The menu item requires these two names to distinguish the applications when there are more than one of the same application type present and to simplify the item name when there is only one present.  If only one application of a generic name exists in the menu the application assumes the generic name, otherwise the proper name is displayed.</para>

	<example>
		<title>X-Chat .desktop file</title>
		 <programlisting>
	Name=X-Chat IRC
	GenericName=IRC
		 </programlisting>
	</example>

	<para>
	The generic name or GenericName, is a name describing only the applications functionality without the applications proper name.  This is the name to be displayed when there are no other applications of the same generic name present and should simply describe the pure functionality of the application without its actual name.
	</para>

	<para>
	A proper name or Name, is the displayed name of the application when there are more than one applications present with the same generic name.  This distinguishes the multiple generic names with the applications proper name.
	</para>

	<example>
		<title>GenericName and Name</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>GenericName</entry>
					<entry>Name</entry>
	   			</row>
			  </thead>
			  <tbody>
	     			<row>
					<entry>Web Browser</entry>
					<entry>Epiphany Web Browser</entry>
				</row>
	     			<row>
					<entry>Web Browser</entry>
					<entry>Mozilla Web Browser</entry>
				</row>
	     			<row>
					<entry>Word Processor</entry>
					<entry>AbiWord Word Processor</entry>
				</row>
	     			<row>
					<entry>Word Processor</entry>
					<entry>OpenOffice.org Word Processor</entry>
				</row>
	  		</tbody>
	         	</tgroup>
		</informaltable>
	</example>
	</sect3>
-->
    </sect2>
    <sect2 id="menu-item-tooltips">

      <title>Dicas de ferramenta do item de menu</title>

      <para>As dicas de ferramenta fornecem aos usuários informações suficientes para executar o aplicativo correto. Muitos usuários usam as dicas de ferramenta para explorar um ambiente novo.</para>
	<para>Forneça uma dica de ferramenta para cada item que você adicionar ao menu <guimenu>Aplicativos</guimenu>, seguindo estas diretrizes:</para>

	<itemizedlist><title>Diretrizes</title>
		<listitem><para>Expresse a dica de ferramenta por um verbo no imperativo, por exemplo "projete", "escreva" ou "cheque".</para></listitem>
		<listitem><para>Descreva as tarefas mais importantes que os usuários podem realizar com seu aplicativo.</para></listitem>
		<listitem><para>Embora dicas de ferramenta não devem ser prolixas, elas devem ser mais longas e descritivas que o nome do item.</para></listitem>
	</itemizedlist>

	<example>
		<title>Exemplos de dicas de ferramentas para aplicativos do GNOME</title>
		<informaltable frame="all">
			
			<tgroup cols="2" align="left">
			  <thead>
				<row>
		      			<entry>Aplicativo</entry>
				      <entry>Dica de ferramenta do item de menu</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>Mapa de caracteres</entry>
					<entry>Insira caracteres especiais nos documentos</entry>
				</row>

				<row>
					<entry>Memprof</entry>
					<entry>Verifique seus aplicativos por vazamentos de memória</entry>
				</row>
				<row>
					<entry>Same Gnome</entry>
					<entry>Organize longas cadeias de bolas com cores similares para eliminá-las</entry>
				</row>
				<row>
					<entry>Cliente de batalha naval do Gnome</entry>
					<entry>Encontre e afunde navios inimigos nesta versão em rede de batalha naval</entry>
				</row>
	  		</tbody>
	         	</tgroup>
		</informaltable>
	</example>

    </sect2>
   </sect1>
    <sect1 id="gconf-keys">

      <title>Chaves do GConf</title>

      <para>Chaves do GConf necessitam ter uma descrição longa e curta para cada chave. Muitas chaves não tem interface no aplicativo, então, para alguém administrando os valores das chaves a partir de outro aplicativo, cada campo de descrição será a única interface disponível.</para>

	<itemizedlist><title>Diretrizes</title>
		<listitem><para>Descrições curtas devem ser curtas, com menos que 8 palavras, descrevendo o propósito da chave</para></listitem>
		<listitem><para>Descrições longas devem ser completas ao descrever os possíveis valores da chave e os efeitos que esses valores terão no aplicativo</para></listitem>
	</itemizedlist>

	<example>
		<title>Exemplos de descrições para chaves do GConf do gnome-terminal</title>
		<informaltable frame="all">
			
			<tgroup cols="3" align="left">
			  <thead>
				<row>
					<entry>Chave</entry>
		      			<entry>Descrição curta</entry>
				      <entry>Descrição longa</entry>
	   			</row>
			  </thead>
			<tbody>
	     			<row>
					<entry>background_type</entry>
					<entry>Tipo de plano de fundo</entry>
					<entry>Tipo de plano de fundo do terminal. Pode ser "sólido" para uma cor sólida, "imagem" para uma imagem, ou "transparente" para pseudo-transparência.</entry>
				</row>	
	     			<row>
					<entry>delete_binding</entry>
					<entry>Efeito da tecla Delete</entry>
					<entry>Determina qual código é gerado pela tecla delete. Valores possíveis são "ascii-del" para o caractere ASCII DEL, "control-h" para Control-H (também conhecido como o caractere ASCII BS), "escape-sequence" para a sequencia de escape tipicamente atado a backspace ou delete. "escape-sequence" é normalmente considerado a configuração correta para a tecla delete.</entry>
				</row>	
			</tbody>
	         	</tgroup>
		</informaltable>
	</example>
   </sect1>
  
  <sect1 id="desktop-mimedatabase">
    <title>Mapeando tipos de documento a aplicativos</title>
    
    <para>O banco de dados de tipos do documento (MIME) permite que usuários especifiquem seu aplicativo preferencial para abrir diferentes tipos de documentos. Este é o mecanismo pelo qual Nautilus, Evolution e outros aplicativos decidem qual aplicativo executar quando encontram um documento que não podem abrir.</para>

    <para>É importante que os usuários sejam capazes de abrir documentos que veem na área de trabalho com clique duplo, como arquivos e mensagens de email, e iniciar seu aplicativo favorito. Assim, seu aplicativo GNOME deve associar-se na hora da instalação com todos os tipos de documento que pode manusear. Detalhes técnico sobre como fazer isso podem ser encontrados na <ulink url="http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec"><citetitle>especificação das informações compartilhadas MIME</citetitle></ulink> e na <ulink url="http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html"><citetitle>especificação das entradas da área de trabalho</citetitle></ulink> do Freedesktop.</para>

    <!-- FIXME: need to cover things like the preferred list and when an application should add itself to the preferred list -->

  </sect1>

  <sect1 id="desktop-notification-area">
	<title>Usando a área de notificação de estados</title>
	<para>Ao usar a área de notificação de estados, os aplicativos podem notificar o usuário sobre eventos não críticos (por exemplo, a chegada de um novo email, ou um companheiro no chat que se conectou), e expõe o estado de processos ativos do sistema (por exemplo, imprimindo um documento, ou o carregamento da bateria do laptop).</para>

	<para>Seguir as diretrizes nesta seção irá ajudar a esclarecer a diferença na mente do usuário entre a informação apresentada na área de notificação, e controles e informações apresentadas em outras partes do painel.</para>

		<warning><para>A utilidade da área de notificação diminui rapidamente quando mais que aproximadamente quatro ícones são apresentados constantemente. Por essa razão, ícones que aparecem apenas temporariamente em resposta à eventos são preferíveis.</para></warning>

	<sect2 id="desktop-notification-or-applet"><title>Área de notificação ou miniaplicativo do painel?</title>
	<para>Você provavelmente deve escrever um miniaplicativo ao invés de usar a área de notificação caso:</para>
	<itemizedlist>
		<listitem><para>clicar no ícone em sua área de notificação não faz nada além de abrir uma janela diretamente associada com o ícone (ex. uma janela de pasta de email para um ícone de novo email, ou a janela da fila de impressão para o ícone de notificação da impressora), ou</para></listitem>
		<listitem><para>há opções específicas do ícone no menu de contexto para fazer qualquer coisa além daquilo</para></listitem> 
		<listitem><para>seu aplicativo alguma vez necessite exibir mais de um ícone de notificação ao mesmo tempo</para></listitem>
	</itemizedlist>
	</sect2>

	<sect2><title>Aparência do ícone</title>
	<itemizedlist><title>Diretrizes</title>
		<listitem><para>Use a perspectiva em tabela para ícones que representam dispositivos físicos, com a fonte de luz acima e a esquerda do objeto representado. Por exemplo, o ícone de impressora durante a impressão. Veja <xref linkend="icon_style_perspective"/> para mais informações sobre a perspectiva em tabela.</para></listitem>
		<listitem><para>Use a perspectiva de prateleira, com iluminação suspensa, para todos os outros ícones. Por exemplo, um envelope exibido quando um novo email chega. Veja <xref linkend="icon_style_perspective"/> para mais informações sobre perspectiva de prateleira.</para></listitem>	
		<listitem><para>Para monitores ou barras de progresso que mudam ao longo do tempo, como o monitor da carga da bateria, delimite claramente a borda da área.</para></listitem>

		</itemizedlist>

		<itemizedlist><title>Diretrizes</title>
			<listitem><para>Somente os programas de núcleo do GNOME podem exibir perpetuamente um ícone na área de estados.</para></listitem>
			<listitem><para>Non-core programs for which a perpetual icon may be useful must default to not perpetually showing the icon. Users may select to enable a perpetual icon for the application as a preference. <remark>Standard way of presenting this option would be nice.</remark></para></listitem>
		</itemizedlist>

	</sect2>

	<sect2 id="notification-area-animation">
	<title>Animação</title>
	
	<itemizedlist><title>Diretrizes</title>
		<listitem><para>Ícones normalmente não devem aparecer animados. Eles podem mudar para indicar uma mudança de estado, mas não deve fazer isso quando as mudanças ocorrem regular ou rapidamente. Um indicador do estado da bateria normalmente muda lentamente, portanto um ícone é apropriado. Em contraste, um medidor de carga sempre estaria carregando, portanto deve usar uma imagem plana.</para></listitem>
<!--		<listitem><para>Icons are permitted to blink under a few conditions.
 An icon may blink for n (=5?) seconds when first displayed
   if showing the icon is not caused by user action.
   A printing-in-progress icon would be shown because the user
   is printing a document, therefore it should not blink.
   An incoming email or personal message (IM) would be shown
   because something has changed absent the user, therefore it
   may blink.</para></listitem>

 		<listitem><para>A icon may blink for n seconds if its conditions for initially
   blinking recur. For example, an incoming email icon which was
   shown and blinked when a message arrived and which has remained
   visible may blink again when another message arrives.</para></listitem>
-->
 		<listitem><para>Qualquer ícone pode piscar para indicar um erro em deferência à mostrar um alerta. Por exemplo, um ícone de impressão em progresso pode piscar quando houver congestionamento de papel, mas não quando a impressora estiver pegando fogo - isso exibiria um alerta.</para></listitem>
		<listitem><para>Não dependa de animações ou de piscar como meio de alertar o usuário de algum evento em particular.</para></listitem>
		</itemizedlist>

	</sect2>
	
	<sect2 id="notification-icon-interaction">
	<title>Interação</title>
		<para>Ícones devem responder às alções dos usuários. (Pressionamentos de tecla se aplicam apenas quando o ícone tem foco, claro)</para>
		<itemizedlist><title>Diretrizes</title>
  			<listitem><para>O duplo clique ou a tecla <keysym>espaço</keysym> devem realizar a ação padrão do ícone. Normalmente isso deve abrir uma janela com informações relevantes, por exemplo: <itemizedlist>
     				<listitem><para>a fila de impressão para um ícone de impressão em progresso.</para></listitem>
     				<listitem><para>a caixa de entrada para um ícone de um email recebido</para></listitem>
     				<listitem><para>a mensagem para uma mensagem recebida</para></listitem>
			</itemizedlist></para></listitem>
  		<listitem><para>O clique com o botão direito ou a combinação <keycombo><keycap>Shift</keycap><keycap>F10</keycap></keycombo> deve exibir um menu para o ícone contendo pelo menos a ação padrão do ícone.</para></listitem>

		<listitem><para>Caso as propriedades do ícone possam ser alteradas, deve haver um item de menu <guimenuitem>Propriedades</guimenuitem> no menu, e mostra seu painel de propriedades em resposta a Alt+Enter</para></listitem>

		<listitem><para>Ícones devem obedecer a convenções normais de dicas de ferramenta.</para></listitem>
		</itemizedlist>
	</sect2>
 </sect1>

</chapter>
