Lição: 90: Internacionalização e Localização
No mundo globalizado de hoje, criar aplicações que atendam a usuários de diferentes contextos linguísticos e culturais é fundamental. Esse processo envolve dois conceitos chave: internacionalização (i18n) e localização (l10n). Esta aula abordará como implementar esses princípios em suas aplicações Swift.
O que é Internacionalização?
A internacionalização é o processo de projetar sua aplicação de forma que ela possa ser facilmente adaptada a vários idiomas e regiões, sem que mudanças no código-fonte sejam necessárias. Isso inclui aspectos como direção do texto, formatos de dados e layout da interface do usuário.
O que é Localização?
A localização é o processo de adaptar sua aplicação internacionalizada a um contexto linguístico e cultural específico. Isso inclui traduzir textos, fornecer formatos localizados para datas e números, e quaisquer outros ajustes culturalmente específicos.
Configurando a Localização em Swift
Vamos explorar como implementar a internacionalização e a localização em uma aplicação Swift.
Passo 1: Preparando Seu Projeto para Localização
- Abra seu projeto no Xcode.
- Selecione seu projeto no Navegador de Projetos.
- Vá para a aba Info.
- Na seção Localizações, clique no botão "+" para adicionar novos idiomas.
Passo 2: Adicionando Strings Localizáveis
Crie um novo arquivo chamado Localizable.strings
. Este arquivo irá armazenar todas as strings que precisam ser localizadas.
/* Localizable.strings para Português (Base) */
"greeting" = "Olá, Mundo!";
Crie outro Localizable.strings
para uma localização diferente, por exemplo, inglês:
/* Localizable.strings para Inglês (en) */
"greeting" = "Hello, World!";
Passo 3: Usando Strings Localizadas em Seu Código
Você pode acessar essas strings localizadas em seu código Swift usando a função NSLocalizedString
.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let mensagemDeSaudacao = NSLocalizedString("greeting", comment: "Uma mensagem de saudação")
let labelSaudacao = UILabel()
labelSaudacao.text = mensagemDeSaudacao
labelSaudacao.sizeToFit()
labelSaudacao.center = view.center
view.addSubview(labelSaudacao)
}
}
Passo 4: Localizando Storyboards
Você também pode localizar seus storyboards diretamente. Para fazer isso:
- Selecione seu arquivo storyboard.
- Abra o Inspetor de Arquivos.
- Na seção Localização, marque os idiomas que você deseja suportar.
Depois, para cada idioma, você pode definir o texto para seus rótulos, botões, etc.
Passo 5: Formatação de Números e Datas
A localização não se trata apenas de texto. Formatos de números e datas podem variar entre culturas. Use NumberFormatter
e DateFormatter
para gerenciar isso.
Aqui está um exemplo de formatação de uma data de acordo com a localidade atual:
let formatadorData = DateFormatter()
formatadorData.locale = Locale.current // Usa a localidade atual do usuário
formatadorData.dateStyle = .long
let dataFormatada = formatadorData.string(from: Date())
print("Data Localizada: \(dataFormatada)")
Passo 6: Tratando Plurais
Swift oferece uma forma de lidar com a pluralização em strings localizadas. Você pode usar o método String(format:)
junto com strings localizadas que contêm as formas plurais necessárias.
Exemplo em Localizable.strings
:
/* Localizable.strings para Português (Base) */
"item_count" = "%d item";
"item_count_plural" = "%d itens";
E em seu código:
let contagemDeItens = 5
let stringContagem = String(format: contagemDeItens == 1 ? NSLocalizedString("item_count", comment: "Contagem de item único") : NSLocalizedString("item_count_plural", comment: "Contagem de múltiplos itens"), contagemDeItens)
print(stringContagem)
Conclusão
A internacionalização e a localização são essenciais para construir aplicações acessíveis para usuários ao redor do mundo. Ao seguir os passos descritos acima, você pode garantir que suas aplicações Swift possam se comunicar com os usuários em seu idioma preferido e respeitar suas normas culturais. Isso não apenas melhora a experiência do usuário, mas também amplia o alcance de mercado do seu aplicativo.
Boas programações!