Localização da ABCD

Conteúdo

  1. Localização da ABCD
    1. Localização de Central
      1. Criar novos diretórios para um novo idioma
        1. Adicionar o novo idioma nas listas de idiomas
      2. Traduzir todas as mensagens para todos os submódulos da Central usando a interface
      3. Traduzir todas as mensagens de ajuda para a nova linguagem/interface
        1. Criar pastas de idiomas para cada banco de dados
    2. Localização do iAH OPAC
      1. Os elementos gerais da linguagem nas subpastas de htdocs/iah
      2. Os elementos da linguagem gerada pelo script
    3. Localização do site da ABCD

Esta seção trata das técnicas e passos necessários para criar uma versão ‘localizada’ do ABCD. A localização refere-se à idéia de apresentar o software de uma forma adequada aos usuários locais, ou seja, usando uma linguagem e um alfabeto, mas em alguns casos também o ‘estilo’ de redação e apresentação que é mais adequado para o público alvo. Por exemplo, para uma biblioteca infantil, pode-se imaginar que todos os elementos mencionados: linguagem, alfabeto,

A formulação e apresentação, são adaptadas às principais características dos usuários-alvo, sendo crianças que têm outro vocabulário, suas próprias preferências de estilo (por exemplo, mais cores e ícones engraçados), etc.

Como uma extensão desta idéia também poderia mencionar o conceito de uma interface “responsiva”: a interface se adapta ao dispositivo do usuário. Geralmente isto se resume ao uso de outras folhas de estilo quando o dispositivo do usuário é um telefone celular com muito mais orientação vertical e telas menores em comparação com os computadores. Nem todos estão totalmente satisfeitos com este conceito, alguns até mesmo afirmando “não o faça”, por isso nos absteremos de entrar nesta técnica até o fim. Vamos simplesmente nos referir à idéia de que muito desse comportamento “responsivo” pode ser facilitado com a criação de vários conjuntos de folhas de estilo. Para a ABCD, isto foi feito de fato.

Aqui vamos nos concentrar na criação de uma nova interface baseada na existente, mas usando uma interface diferente - possivelmente nova

  • idioma, se necessário escrito em um alfabeto não-latino. Isto não só precisa ser feito para o módulo ABCD Central, mas na verdade mais relevante para os outros principais módulos orientados ao usuário final iAH e Site. Assim, quando ‘localizamos’ o ABCD Central, consideramos os operadores (bibliotecários) também como usuários finais com sua preferência por um idioma, um alfabeto e um vocabulário específicos.

Como o ABCD é um sistema muito ‘modular’, cada um dos módulos principais tem seus próprios requisitos e técnicas para traduzir a interface para qualquer outro idioma. Estes módulos operam independentemente (porém acessando as mesmas bases de dados ISIS) com sua própria tecnologia de software e também utilizam diferentes maneiras de exibir textos nas telas.

Por exemplo, ‘Central’ utiliza arquivos de texto .tab com pares simples de valores-chave na pasta de dados do idioma, enquanto ‘Site’ utiliza arquivos HTML e XML. Para o iAH OPAC, um único arquivo de texto com a maioria das mensagens pode ser usado com os scripts disponíveis para criar imediatamente (a maioria) as partes de texto necessárias nos arquivos necessários (principalmente scripts php e pft).

Localização de Central

Com exceção de alguns textos que poderiam conter elementos dependentes do idioma, por exemplo, no cabeçalho e rodapés, como o nome institucional, versão, links do site, etc., todos os elementos sensíveis ao idioma para mensagens estão em ‘tabelas’, ou seja, arquivos de texto com pares de valores-chave (key=valor) salvos por submódulo (por exemplo, administração, catalogação, circulação…) em um arquivo ‘.tab’. Por exemplo, o arquivo ‘admin.tab’ contém as mensagens da Central-interface para lidar com as definições do banco de dados. Para cada idioma esses arquivos são armazenados em uma subpasta do diretório ‘lang’-folder’ no diretório bases. Esta não é uma verdadeira pasta do banco de dados com os arquivos da base de dados ISIS, como para outros bancos de dados (por exemplo, MARC, CEPAL, USERS), mas apenas o armazenamento de mensagens para cada idioma utilizado.

Aqui abaixo mostramos como o mesmo arquivo admin.tab acima será acessado de dentro da interface do ABCD Central; para fins ilustrativos incluímos uma entrada não-latina (cingalês) já pelo terceiro valor (aquisições) :

O primeiro uso desta interface, portanto, é para “ajustar” as mensagens de acordo com o gosto local ou preferências individuais. Entretanto, a mesma técnica também pode ser usada para criar uma nova linguagem, como a seguir.

Criar novos diretórios para um novo idioma

Usando o gerenciador de arquivos de seu sistema operacional (seja Windows ou Linux) e navegue até a pasta-base, ou seja

  • no Windows :

    \ABCD\www\bases

  • no Linux :

    /var/opt/ABCD/bases

e localizar o subdiretório ‘lang’ na lista de bancos de dados (cada banco de dados tem sua própria pasta/diretório). Entre nesse diretório e copie a única pasta com o idioma que você deseja usar como o idioma ‘de’ (origem) a ser traduzido para um novo. Por exemplo, se você quiser criar seu novo idioma com base no inglês, copie a pasta ‘en’.

Cole essa pasta de volta e (re)nomeie-a com o código para seu idioma, usando preferencialmente os códigos ISO para as guas de lan. Por exemplo, para criar uma interface cingalesa usaremos ‘si’, então a pasta original ‘en’ é uma cópia e adicionada como uma nova pasta ‘si’. Ali, todos os arquivos de texto ainda são em inglês, por definição.

Adicionar o novo idioma nas listas de idiomas

Ainda em seu gerenciador de arquivos, localize o arquivo ‘lang.tab’ dentro de sua pasta de idiomas e manualmente - por exemplo, com Notepad ou Gedit - adicione seu novo idioma na lista, por exemplo, com Sinhalese a nova lista se pareceria com :

en=Inglês
es=Espanhol
fr=Francês
pt=Português
am=Amárico
si=Singalês

Portanto, se você usa o inglês como idioma padrão para Central (veja o arquivo htdocs/central/config.php,na linha onde o idioma padrão é definido, por exemplo $lang=”en”; para o inglês), você tem que editar as bases/lang/en/lang.tab do arquivo e adicionar o novo idioma como uma nova entrada.

No Windows, por favor verifique, esp. ao usar o Notepad como editor, se a extensão do arquivo é mantida como ‘.tab’, enquanto o Notepad tentará adicionar .txt’ a ele como uma nova extensão. O ABCD não reconhecerá sua lista de idiomas se ela não for armazenada como lang.tab !

Agora, subindo um nível na pasta ‘bases’, outro arquivo ‘lang.tab’ está presente que é usado para listar os idiomas disponíveis na tela de login Central, onde o arquivo anteriormente editado ‘lang.tab’ (na subpasta de idiomas específicos) fornece os valores de exibição (não os códigos) para cada idioma, assim ‘en’ torna-se ‘inglês’ etc. Portanto, aqui você simplesmente tem que listar todos os códigos de idioma que você deseja usar, por exemplo

en
fr
es
pt
am
si

Se você quiser que os usuários possam trocar de idioma dentro da Central, você também deve adicionar o novo idioma nos arquivos ‘lang.tab’ para todos os idiomas ativos, portanto, em suas próprias subpastas.

Traduzir todas as mensagens para todos os submódulos da Central usando a interface

Agora insira a interface ABCD Central no idioma para o qual você adicionou o novo idioma na lista. Portanto, o novo idioma deve aparecer na lista de seleção de idiomas da tela principal de login e da lista de seleção de idiomas dentro da interface Central. De qualquer forma: certifique-se de que seu novo idioma seja o idioma ativo. Ao selecionar a opção ‘Traduzir mensagens’ e escolher um dos submódulos, você estará olhando para o idioma ‘origem’ (por exemplo, inglês) no lado esquerdo fixo, e seus valores editáveis em caixas no lado direito. Portanto, este é o grande e principal trabalho: traduzir/traduzir todos os valores para refletir, tanto quanto possível, o equivalente em linguagem correta para a mensagem dada. Isto pode exigir a verificação de glossários oficiais, por exemplo, mantidos por seu Ministério de Ciência e Tecnologia, esp. para TI ou mesmo “biblioteconomia”, a fim de obter os arquivos de autoridade mais apropriados.

Na imagem acima pode-se ver como a terceira entrada (no. 2) para “aquisições” foi traduzida para a palavra cingalesa (e alfabeto) “#############”.

Quando a tabela for salva na próxima vez (depois de atualizar as telas) a palavra ‘aquisições’ na interface será mostrada como ‘#############’ :

Por exemplo, para a interface ‘amárico’ (para a Etiópia) a mesma lista das primeiras mensagens de interface de ‘catalogação’ será parecida com :

Pode-se também, com uma opção extra no menu principal do ABCD Central, ‘comparar’ as traduções existentes em diferentes idiomas para garantir que o significado realmente correto seja tomado. Por exemplo, a tradução de:

A lista de idiomas exibida nesta visão geral deve ser editada manualmente no script ‘compare_admin.php’ na subpasta htdocs/central/lang. Procure por uma seção como :

if (isset($msg_path) and $msg_path!="")
$a=$msg_path."lang/am/$table";
else
$a=$db_path."lang/am/$table";

e mudar ‘/am/’ (amárico) para o idioma que você deseja ver - no lado direito - em vez de amárico, ou qualquer outro idioma anterior, se assim preferir. Por exemplo, ‘/si/’ .

Alternativamente, uma vez que este mecanismo com o sistema subjacente de arquivos e (sub)pastas seja bem compreendido, pode-se também editar diretamente com um editor de texto todos os arquivos .tab imediatamente dentro do sistema de arquivos, sem usar a interface ABCD-. O ABCD de fato não é nada mais - mas também nada menos - do que uma ‘interface’ para a multiplicidade de arquivos, scripts e bancos de dados dos quais o sistema consiste.

Nota: ao salvar arquivos de texto com scripts não-latinos, como no exemplos acima, certifique-se de salvar os arquivos de texto como arquivos UTF-8, não o conjunto de caracteres ‘ANSI’ mais padrão. No Windows há um complicação adicional : alguns softwares vão querer adicionar um ‘BOM’ (marca de ordem binária) como alguns caracteres para indicar que a o arquivo é do tipo Unicode. Como nunca se chegou a um verdadeiro acordo sobre isso - e alguns especialistas não aceitam que isso seja um boa solução - é melhor evitar este código adicional da BOM. Se apresentar o arquivo não será processado corretamente, por exemplo, por JavaScript ou PHP como em ABCD.

Quando todas as mensagens de todos os módulos/funções do ABCD Central tiverem sido traduzidas, pode-se abrir a versão de idioma relacionada e a interface pareceria, por exemplo :

Traduzir todas as mensagens de ajuda para a nova linguagem/interface

As páginas de ajuda do ABCD Central estão localizadas como arquivos HTML no diretório de base chamado ‘documentacion’. Para cada idioma utilizado, é necessário que exista uma subpasta.

Portanto, no caso de acrescentar uma nova linguagem (por exemplo, cingalês), copie a pasta ‘en’ para uma nova pasta ‘si’. Então dentro desta nova pasta você encontrará todos os arquivos de ajuda em inglês em sua versão original em inglês.

Nota: Existem subdiretórios para algumas partes específicas da interface : aquisições, circulação, cópias e estatísticas. Todos os outros arquivos de ajuda são diretamente posicionado no subdiretório principal.

Então, usando um editor de texto adequado - tente usar um que seja mais poderoso do que o temido ‘Bloco de Notas’ do Windows mas, por exemplo, no Linux, o editor básico ‘nano’-editor fará bem - traduzir os conteúdos de texto visíveis dos arquivos HTML. Caso seja usado um bom editor de texto, estas partes terão sua própria cor de modo a torná-las bastante fáceis de distinguir de outras partes que devem ser deixadas intocadas, pois constituem códigos HTML. Tenha cuidado! Como ilustração, mostramos como o arquivo de ajuda ‘alfa.html’ para inglês é exibido no nano-editor Linux: os textos coloridos como os textos a serem traduzidos para o novo idioma ou para o idioma local.

Criar pastas de idiomas para cada banco de dados

Como cada banco de dados que você deseja usar no ABCD também contém alguns elementos dependentes do idioma, por exemplo, os nomes dos campos na ‘Tabela de Definição de Campo’ ou nos formatos de exibição (PFT’s), você também deve copiar/colar e renomear uma pasta de idioma ‘origem’ para uma pasta de ‘destino’ (seu novo idioma) nas pastas-base. Uma vez feita, a edição das ‘definições de banco de dados’ na interface ABCD-Central será feita na versão correta do idioma para esse banco de dados. Por exemplo, para a base de dados MARC, o banco de dados padrão do catálogo para uma biblioteca no ABCD, e um novo idioma ‘Singalês’, faça o seguinte :

  • copie a pasta bases/marc/def/en como ‘origem’ para ‘bases/marc/def/si como destino
  • copiar as bases de pastas/marc/pfts/en como ‘origem’ para ‘bases/marc/pfts/si’ como destino.

Então, quando na base de dados MARC no novo idioma (singalês) e usando a interface ABCD para criar/editar definições da base de dados, você estará realmente editando os arquivos em bases/marc/def/si e bases/marc/pfts/si, de modo que todas as partes dependentes da faixa como nomes de campo possam ser traduzidas para o singalês.

Como mencionado acima, também é possível editar estes arquivos diretamente com um editor de texto dentro do sistema de arquivos sem usar ABCD, mas então tenha cuidado porque é necessário algum entendimento da estrutura do arquivo. Por exemplo, apagar um tubo '|' - que serve como separador de ‘colunas’ no ABCD Central - por acidente pode estragar o arquivo inteiro.

Localização do iAH OPAC

Ao verificar a pasta ‘htdocs/central/iah’, que contém todos os scripts iAH centrais, pode-se ver que novamente cada idioma tem seu próprio subdiretório.

Os elementos gerais da linguagem nas subpastas de htdocs/iah

Estes são principalmente arquivos html, por exemplo, para a ajuda relacionada à pesquisa no banco de dados ‘lilacs’, há um arquivo nota_para- m_lilacs.htm com conteúdo :

<hr>
<font face="verdana" size="2">
<b>Notas :</b><br>
<ul> 
<li>
<font face="verdana" size="2">
This option re
<font color="Navy">title words</font>, 

<font color="Navy">words from the abstract</font>, 
and <font co
</font></font>
<li><font face="verdana" size="2">Use the truncation symbol <font color="#FF0033">$</font>(dollar sign)
to search words with the same root. Example: 
<font color="Navy">educ</font><font face="verdana" size=
retrieves educaci&oacute;n, education, educa&ccedil;&atilde;o, etc.
 </font>
<li>
<font face="verdana" size="2">Do not type boolean operators (AND,
 OR ou AND NOT) between words. </
<li>
<font face="verdana" size="2">
Select the option 
<font color="Navy">
All words (AND)</font> to link the words (reduce the scope of the ret
<font color="Navy">Any word (OR)</font> to add words (enlarge the scope of the retrieval).</font>
<li><font face="verdana" size="2">
To search over other fields or to specify the field of the search use t
</font> </ul> </font><hr>

Se entendermos a codificação HTML, podemos ver facilmente onde estão os códigos HTML entre parênteses < e > e onde temos pedaços de texto a serem traduzidos.

Se você quiser uma nova interface no iAH em outro idioma, copie uma pasta de idioma de ‘origem’ existente e renomeie sob o novo código de idioma. Depois, basta editar com um editor de texto os pedaços de texto no idioma/al- phabet desejado. Novamente ao usar scripts Unicode, não se esqueça de ‘salvar como’ arquivo codificado UTF-8 ou usar a opção ‘codificação’ ou ‘caracteres’ de seu editor para garantir que os caracteres possam ser armazenados corretamente.

Os elementos da linguagem gerada pelo script

Dentro da pasta htdocs/iah/scripts, mais uma vez se notará a existência de subpastas com código de linguagem. Aqui o iAH armazena os arquivos HTML e PFT ou scripts que utiliza, com, em muitos casos, pequenas entradas relacionadas ao idioma. Embora fosse possível traduzir todos esses arquivos da mesma forma que acima, após ter criado uma subpasta específica para o novo idioma, copiando uma pasta de idioma de ‘origem’, há alguns scripts disponíveis na pasta ‘htdocs/iah/ scripts/translate’, que funciona da seguinte forma :

  • a pasta ‘traduzir’ contém todos os modelos HTML e PFT utilizados, assim como

  • uma lista simples de valores de chaves para cada idioma salvo sob o código do idioma com extensão .txt, por exemplo, en.txt contém todas as chaves e valores para o inglês.

Para criar os scripts amharic do iAH o arquivo ‘am.txt’ contém seções, por exemplo :

database=### ##
database_search=### #### #####
config=###

novamente armazenado no formato UTF-8.

Do script de tradução ‘modelo’ ‘translate2en.sh’ (ou translate2en.bat no Windows) facilmente um script dedicado pode ser gerado para o novo idioma, no caso de ‘am’-haric tornou-se :

#!/bin/sh
./mx seq=am.txt= "proc='d*a1~v1~a2~'v2'~'" -all now create=to_am
for i in *.pft
do
./mx seq=$i£ gizmo=to_am lw=9000 pft=v1# now > ../am/$i
done
for i in *.htm
do
./mx seq=$i£ gizmo=to_am lw=9000 pft=v1# now > ../am/$i
done

onde basicamente a seqüência ‘en’ foi mudada para ‘am’ e ‘to_en’ foi mudada para ‘to_am’.

Ao executar este script em um terminal (ou CMD no Windows) algum uso inteligente do mx-tool CISIS lerá no texto de valores-chave para seu idioma e processará as linhas para adicionar colchetes especiais . Estes serão substituídos, então, por um gizmo-parameter usando o banco de dados criado na etapa anterior, nos modelos de scripts existentes por seus valores reais, tanto para os arquivos de extensão PFT como HTM.

Os scripts resultantes são então armazenados na subpasta de idioma específico um nível acima no sistema de arquivos (da subpasta ‘traduzir’).

Algumas verificações manuais podem permanecer necessárias após este processo, mas a maior parte do trabalho pesado foi feito de forma inteligente pelos scripts acima usando mx, a ferramenta principal do CISIS. Assim, nos ambientes ISIS muitos problemas podem ser resolvidos usando o poder do próprio software, embora seja necessário um bom entendimento das ferramentas da linha de comando para criar tais soluções.

A lista de idiomas a serem usados na interface é derivada do arquivo ‘iah.def.php’ na pasta htdocs/iah/scripts. Há uma linha :

AVAILABLE LANGUAGES=pt,es,en,fr,am

listando claramente os códigos para os idiomas (e sua seqüência, o que é bastante importante, pois precisa corresponder à lista de subcampos nos arquivos de configuração do iAH para cada banco de dados !). Em outras palavras e neste exemplo: desde que adicionamos ‘Amharic’ como o quinto idioma para o OPAC, cada linha de configuração no dbn.def precisa ter um subcampo ^5 adicionado com o termo apropriado para o idioma.

Com o parâmetro

MULTI-LANGUAGE=ON one can also switch if 'off' so as to only use the default language, set in the line

$lang = ($_REQUEST['lang'] != '' ? $_REQUEST['lang'] : 'en');

of the file ‘index.php’ in the folder htdocs/iah.

Localização do site da ABCD

O site do ABCD usa novamente um mecanismo diferente de utilização de elementos dependentes do idioma. Quando se verifica a pasta ‘htdocs/site’, imediatamente fica claro que não existem subpastas de idiomas separadas, como no iAH. Ao invés disso, como na Central, será usada uma pasta ‘database’, chamada ‘site’ mesmo que, como na Central, não haja um banco de dados real (ISIS-)envolvido: ao invés disso, esta pasta contém arquivos XML e HTML para cada idioma.

Assim, como no caso da Central, começa-se copiando/renomeando uma subpasta de idioma existente na pasta ‘bases/site’, cada uma para os arquivos XML e HTML.

Então, dentro da pasta recém-criada, cada um dos arquivos - cerca de 30, mas pequenos em tamanho - precisa ser editado manualmente com um editor de texto. Este é um trabalho a ser feito cuidadosamente para não ‘tocar’ em nenhum XML ou HTML-tag real.

Os arquivos são nomeados com números, de acordo com um intrincado sistema interno de nomenclatura gerenciado pelo Site-scripts.

Por exemplo, o arquivo ‘22.xml’ tem este conteúdo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<warning id="22" lang="en" available="yes">
<item available="yes">Warming<description>This VHL is under development </description>
</item>
</warning>

Se alguém entender XML, pode ver que apenas as partes “Aviso” e “Esta BVS está em desenvolvimento” devem ser traduzidas, todo o resto deve ser deixado intocado, pois é um código XML real.

Um arquivo mais ilustrativo é, por exemplo, ‘metasearch.xml’, que contém todas as etiquetas usadas na interface ‘metasearch’:

<?xml version="1.0" encoding="iso-8859-1"?>
<metasearch id="" lang="en" available="">
<text id="search_title" available="yes">ABCD Search</text>
<text id="search_entryWords" available="yes">Entry one or more words</text>
<text id="search_submit" available="yes">Search</text>
<text id="search_howToSearch" available="yes">how to search?</text>
<text id="search_allWords" available="yes">All words</text>
<text id="search_anyWord" available="yes">Any word</text>
<text id="search_error" available="yes">Please use a search expression.</text>
<text id="search_advancedSearch" available="yes">search filter</text>
<text id="search_freeSearch" available="yes">by words</text>
<text id="search_results" available="yes">Result</text>
<text id="search_method">method</text>
<text id="search_demo">demo</text>
<text id="conceptSearch_title" available="yes">by relevance</text>
<text id="conceptSearch_entryWords" available="yes">Search documents more related to the concepts</text>
<text id="decs_mesh" available="yes">Search by DeCS/MeSH terminology</text>
</metasearch>

Aqui deve ficar claro que novamente as partes dentro < e > não podem ser alteradas, apenas os textos reais como exibidos fora dos parênteses.

Usando um editor de texto ‘melhor’ do que o muito básico ‘Notepad’ no Windows, por exemplo Notepad++, ou no Linux : Gedit, pode-se facilmente se beneficiar das características de reconhecimento de sintaxe destes softwares: o que quer que seja texto simples será mostrado em uma cor preta enquanto que qualquer ‘código’ (por exemplo, XML, HTML, PHP…) terá cores. Por exemplo, na seguinte captura de tela mostramos o mesmo arquivo ‘metasearch.xml’ para o ABCD-site quando aberto em um editor tão rico, agora todas as partes de texto a serem editadas serão mostradas em cor preta :

Finalmente, alguns botões que estão realmente totalmente embutidos na interface do Site precisam ser editados para seu idioma usando a interface ‘Site Admin’ (a parte CMS do Site), selecionando a opção ‘textos’ no menu principal do módulo Site Admin :

Após selecionar ‘Textos’ pode-se simplesmente traduzir a opção para o termo traduzido desejado:

Aqui o elemento ‘contato’ (a parte da tela onde o Site exibirá os dados de contato) é simplesmente traduzido como ‘contato’, mas isto poderia ser feito em outro idioma/alfabeto também.

Em todas as outras caixas de edição do ABCD Site Admin ainda há muito mais elementos que podem ou devem ser traduzidos, como cada ‘componente estrutural’ (a opção ‘componentes’ do menu principal) quando criado também recebe um nome que poderia ser traduzido como sim ou não em um idioma específico.

A lista de idiomas no Site é derivada do script functions.php (em htdocs/site/adm/php), onde a seção seguinte contém a lista de idiomas a serem utilizados :

É fácil ver onde adicionar/eliminar idiomas conforme listados por seus códigos na matriz.

Além disso, o ABCD precisa de uma folha de estilo chamada ‘style-xx’ onde xx é o código do idioma, no diretório ht- docs/site/css/public/skins/classic (que é o ‘skin’ padrão para o site do ABCD, mas como no site da BVS isto pode ser alterado para criar skins ‘locais’ ou ‘regionais’). Também é necessário criar uma pasta dedicada ao idioma, mesmo que contenha apenas um arquivo vazio ‘redefine.css’.

Em htdocs/site/admin/defaultXML para o novo idioma, uma nova pasta precisa ser criada e os textos do arquivo ‘texts.xml’ também traduzidos com o novo idioma adicionado. Entretanto, como esta é realmente a tradução de toda a terminologia do domínio administrativo pode não ser oportuna, necessária ou mesmo possível.