Conteúdo Localizado em AS3

O título deste post pode não ser o mais feliz, mas à falta de melhor tradução é que se pode arranjar. :)

O que quero eu dizer com localizar o conteúdo? Disponibilizar ao utilizador da aplicação/site informação no idioma que melhor se adeque, trocando por miúdos… multilíngua.

O Flash IDE de algumas versões para cá que incorpora uma ferramenta para o fazer, Strings Panel, mas nunca me predispus a perceber até que ponto era flexível para colocar a funcionar fora do ambiente Flash IDE.
Posto isto, há cerca de 6 meses resolvi tentar criar uma pequena livraria que simplifica o processo mas até há pouco tempo nunca tinha tido a oportunidade de a testar num ambiente de produção. Como fiquei satisfeito com o resultados resolvi abrir este projecto ao público para ter um maior feedback e conseguir evolui-lo.

A estrutura é a seguinte:

Estrutura de classes
  • A classe LocaleManager (Singleton) gere o carregamento dos diferentes ficheiros de linguagem, em xml, consoante a necessidade e informa todos as instâncias que estejam registadas.
  • A classe LocaleContainer é a base dos elementos visuais que contenham elementos que necessitem de localização. Classes que a estendam apenas estão registadas no manager enquanto pertencem à Display List, e apenas assim recebem notificação quando é mudado o idioma. Sempre que uma classe que implemente o interface ILocaleComponent é adicionada à Display List o LocaleContainer guarda a sua referência para notificar quando for notificado pelo manager, uma espécie de notificações em cadeia.
  • As classes que queiram ser notificadas quando ocorre uma mudança de idioma têm necessariamente de implementar o interface ILocaleComponent, garantido assim que dispõem de um método público através do qual podem ser notificadas e actualizarem o que necessitem.

Isto é a base e algo que é efectuado “under the hood“, o exemplo seguinte mostra a simplicidade em utilizar esta solução.

O plugin de syntax highlight da minha instalação do wordpress tirou o dia para me por fora do sério e parece-me mais saudável para o meu teclado que disponibilize o exemplo juntamente com a source e documentação. ;)

Gostava de receber algum feedback se experimentarem com exemplos/sugestões/correcções que ajudem a melhorar o projecto.

DOWNLOAD AS3LOCALELIBRARY

  1. Ainda sem nenhum comentário.
  1. Ainda sem nenhum trackback.