Interface de Usuário Multilíngue (MUI)
Pontos principais
- O MUI separa a lógica do aplicativo dos arquivos de tradução, permitindo atualizações de idioma sem recompilação do código.
- Introduzido no Windows 2000, o framework foi expandido no Windows Vista para desenvolvedores externos.
- Utiliza a API Win32 para carregar recursos de idioma dinamicamente com base nas preferências do usuário.
A Interface de Usuário Multilíngue (MUI, do inglês Multilingual User Interface) é um framework de localização dinâmica implementado pela Microsoft em seus sistemas operacionais, como o Windows e o Windows Phone, e em softwares compatíveis. O objetivo principal do MUI é permitir que os arquivos de idioma sejam modulares e independentes da lógica de execução do aplicativo, simplificando significativamente o desenvolvimento, a implantação e a atualização de softwares localizados.

Funcionamento e Vantagens
Diferente da localização estática tradicional, onde as strings de texto são frequentemente incorporadas diretamente nos binários do programa, o MUI utiliza uma abordagem modular. As principais vantagens desse modelo incluem:
- Atualizações Dinâmicas: Os recursos de idioma são armazenados em arquivos dedicados, permitindo que traduções sejam corrigidas ou atualizadas sem a necessidade de recompilar o código-fonte do aplicativo.
- Seleção Automática: O sistema pode selecionar automaticamente o idioma com base nas preferências de região e idioma configuradas no Windows, eliminando a necessidade de o usuário escolher o idioma manualmente durante a execução do programa.
- Integração com API: O framework utiliza a API Win32 para carregar recursos diretamente dos arquivos de idioma MUI em tempo de execução.
Evolução Histórica
O framework MUI, sua API e os arquivos de localização (conhecidos como Language Packs ou LPs) foram introduzidos originalmente no Windows 2000. A tecnologia foi expandida substancialmente no Windows Vista, permitindo que desenvolvedores de terceiros integrassem o MUI em seus próprios softwares.
Com o lançamento do Windows 7, foram introduzidos os Language Interface Packs (LIPs), que serviam como complementos aos pacotes de idioma completos. Posteriormente, no Windows 10 (especificamente a partir da build 1809), os LIPs foram substituídos pelos Local Experience Packs (LXPs).
Implementação Técnica
A tecnologia MUI está integrada ao núcleo do Windows. Para implementá-la, um desenvolvedor armazena os recursos localizáveis em um arquivo de idioma e utiliza a API MUI para carregá-los durante a execução do programa.
Níveis de Implementação
Uma implementação simples pode envolver apenas o armazenamento de strings em uma tabela de recursos do arquivo binário, utilizando a função LoadString da Win32. No entanto, o MUI oferece capacidades avançadas, como:
- Armazenamento de recursos em DLLs separadas para maior flexibilidade de instalação.
- Uso de funções MUI dedicadas para controle preciso sobre qual idioma carregar, independentemente da preferência do sistema.
- Suporte a formatos de armazenamento de ativos localizáveis que não sejam necessariamente recursos de sistema.
Componentes Tecnológicos e Terminologia
Para organizar a separação entre a lógica do programa e a interface, o MUI utiliza a seguinte terminologia:
| Termo | Descrição |
|---|---|
| Language-neutral (LN) | Recursos que mantêm o mesmo significado independentemente do idioma, como imagens sem texto ou ícones. |
| LN resource | Um recurso compartilhado e instalado para todas as versões de idioma do aplicativo. |
| LN file | Um arquivo binário do Windows que contém a lógica da aplicação e os recursos neutros. |
| Language-specific (LS) | Elementos que variam conforme o idioma, como strings de interface ou imagens que contenham texto. |
| LS resource file | Um conjunto de recursos localizados para um idioma específico, também chamado de arquivo MUI. |
Perguntas frequentes
O que é a Interface de Usuário Multilíngue (MUI)?
É um framework da Microsoft que permite que softwares no Windows separem seus textos e recursos de interface de sua lógica de programação, facilitando a tradução para múltiplos idiomas.
Qual a diferença entre Language Packs e LIPs?
Language Packs são pacotes completos de tradução, enquanto os Language Interface Packs (LIPs) eram versões reduzidas introduzidas no Windows 7 para suplementar a interface, sendo posteriormente substituídos pelos Local Experience Packs (LXPs) no Windows 10.
Como o MUI beneficia o desenvolvedor de software?
O desenvolvedor pode adicionar suporte a novos idiomas apenas instalando pacotes de tradução, sem precisar alterar o código-fonte ou redistribuir a lógica do aplicativo.