Só conseguimos um gerenciamento consistente de sites multi-linguagem com um gerenciador de conteúdo multi-linguagem. Nesse tipo de gerenciador, cada item a ser publicado é constituído por dois tipos de informação. Parte da informação independe do idioma, por exemplo, a data de um evento. A outra parte é dependente, ou seja para cada idioma será necessário cadastrar a informação localizada (traduzida).
Uma observação se faz necessária. Apesar de parte da informação ser independente de linguagem, o formato de exibição pode ser dependente. No exemplo dado, um evento a ser realizado em 30/04/2008, quando exibido na língua inglesa deve ser exibido como 04/30/2008. Entretanto, a informação propriamente dita é a mesma.
Para cada seção do site será utilizado apenas um arquivo para exibir o conteúdo e, assim como na alternativa anterior, o idioma desejado será indicado num parâmetro da querystring ou num cookie. O arquivo pode possuir includes, porém os includes são independentes de linguagem, ou seja, será necessário apenas um include para todas as linguagens.
Vantagens de um gerenciador de conteúdo multi-linguagem frente as outras alternativas:
- Para cada seção do site haverá apenas um arquivo para todos os idiomas. A grande vantagem é que se for necessário alterar o layout será necessário modificar apenas esse arquivo e a modificação estará imediatamente disponível para todos os idiomas.
- É trivial alternar para outro idioma mantendo-se na mesma seção do site. Basta modificar a opção de idioma do usuário e redirecioná-lo para a mesma página.
- Incluir um novo idioma não traz o risco de inserir links quebrados no site. Como cada seção do site utilizará o mesmo arquivo para todos os idiomas, uma vez que os links estejam corretos num idioma, estarão corretos em todos os demais.
Um aspecto importante a ser ressaltado é que a implementação desse gerenciamento de conteúdo multi-linguagem de forma verdadeiramente flexível é complexa. De nada adianta ter um gerenciamento de conteúdo que requeira modificações para comportar um novo idioma.
Um problema que tínhamos em alternativas anteriores persiste. Como vimos, para cada seção do site o mesmo arquivo será utilizado para exibir o conteúdo e inevitavelmente incorreremos no problema de urls não localizadas (traduzidas).
Como resolver isso?
Com urls virtuais!