Internacionalização como uma Arquitetura

Criando global-pronto, aplicativos internacionalizados requer muitas pessoas: engenheiros, gerentes de projeto, tradutores, e, muitas vezes, em países especialistas. Se tudo correr como planejado, o produto final é internacionalizado e localizado para satisfazer as necessidades de um determinado mercado. O trabalho em equipe é necessário surpreendente, e, por vezes, o gasto pode ser surpreendentemente grande. A conclusão é que a internacionalização confundido deve ser sempre caro, e que o esforço simplesmente caro demais em termos de horários, recursos, e de dinheiro do curso. A pior parte sobre a conclusão é que a despesa pode ser minimizado consideravelmente por repensar quando e como a internacionalização é realizada.

Duas causas de internacionalização caros são os atrasos na ativamente a pensar nisso e pensar nele como um recurso simples. Muitas vezes, gerentes de produto e equipes de engenharia simplesmente não planejar para localização desde o início do ciclo de vida de seus projetos. Isso é comum em equipes de produtos que visam Inglês somente primeiras regiões. Infelizmente, engenheiros e gerentes de produto engano pensar que eles serão capazes de adicionar a internacionalização e localização "recurso" em um momento posterior, quando necessário. Este é um erro caro, e se trata de pensar a internacionalização como um recurso em vez de um estilo de arquitetura e design. O resultado é que o produto final não contém qualquer quadro para localização e não foi concebido com internacionalização e localização em mente. Finalmente, é difícil e caro para retrofit ou "consertar" uma aplicação que tem uma arquitetura única linguagem e design. Internacionalização simplesmente toca muitas áreas de um produto a ser consideradas como uma característica única que podem ser adicionados ao produto em algum momento no futuro.

Você pode salvar a despesa e dificuldade de adaptação ou de fixação de um produto somente em Inglês e pensando no passo a internacionalização como um elemento arquitetônico ao invés de uma característica. A funcionalidade pode ser facilmente adicionado a um produto muitas vezes, porque tem um âmbito limitado dentro da aplicação ou tem poucas dependências. Um novo recurso é muitas vezes "low-toque" ou apenas levemente juntamente com outros recursos ou áreas de um produto. Internacionalização, contudo, muitas vezes afeta todos os aspectos de uma aplicação. As áreas do produto que envolvem número, data, Formatação de tempo e moeda pode cortar em muitas áreas. A internacionalização é um "high-touch" atividade que afeta a maioria das áreas de uma aplicação, porque interfaces de usuário, cordas, ícones e cores, números, datas, e valores de tempo são usados ​​em um aplicativo. Encontrar e corrigir aquelas áreas de modo que eles são internacionalizados e localizável é uma tarefa onerosa uma vez que o produto já existe e está em produção.

Se você arquiteto seu produto desde o início para que os elementos localizáveis ​​são isolados a partir da lógica core business, você faz a tarefa de localização mais fácil depois. Como você pode pensar sobre a internacionalização como uma tarefa de arquitetura, e não como uma característica?

Primeiro, entender que a internacionalização vai afetar muitos aspectos de seu sistema. Pense em todas as áreas que utilizam cordas e outros recursos localizáveis. A lista pode ser maior do que você imaginou inicialmente.

Em segundo lugar, depois de identificar as áreas, extrair essas cadeias de texto e outros recursos para que eles possam ser traduzidos de forma independente, sem tocar código fonte do seu aplicativo. Cada plataforma de programação tem um meio de isolar os recursos da aplicação núcleo. Saiba mais sobre esse mecanismo e usá-lo. Pense neste passo como criar o genérico, linguagem neutra andaime sobre o qual o resto da sua aplicação será construída. Você quer criar um conjunto básico de lógica de negócios e layout da interface do usuário que é independente da língua e da cultura. Mais tarde, os elementos específicos do idioma pode ser traduzido e adicionada para esta arquitetura de núcleo.

Por fim, arquitetar a sua aplicação para carregar módulos de idiomas necessários em tempo de execução, em vez de tê-los embutido na aplicação. Colocar a arquitetura de internacionalização bem no produto desde o início custa pouco em termos de linhas de tempo e recursos, e isso compensa significativamente ao longo do tempo, quando as equipes de produto descobrem que seu "Inglês-somente" aplicativo agora é desejado em mercados novos idiomas.