0Pricing
Swift Academy · Aula

Catálogos de Strings e Strings Localizadas

Localize textos com o moderno String Catalog.

Catálogos de Strings e Strings Localizadas é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Por que fazer localização

Localização (l10n) significa apresentar o texto do seu aplicativo no idioma do usuário; internacionalização (i18n) significa estruturar o código para tornar a localização possível. O primeiro passo é parar de inserir strings voltadas ao usuário diretamente no código e, em vez disso, obtê-las de um catálogo de resource.

// Hardcoded — bad for localization
// let title = "Welcome"

// Localized — looked up by key
let title = String(localized: "Welcome")

Catálogos de Strings

Os projetos modernos do Xcode usam um String Catalog (arquivo .xcstrings). Trata-se de um único arquivo baseado em JSON que lista cada key localizável, suas traduções por idioma e metadados como comentários e pluralização. O Xcode pode extrair automaticamente as keys do seu código.

// Localizable.xcstrings holds entries like:
// key: "Welcome"
//   en: "Welcome"
//   tr: "Hos geldiniz"
//   ja: "Yokoso"

String(localized:)

No código, String(localized:) resolve uma key em tempo de execução para obter a tradução correspondente à localidade atual. O literal fornecido funciona tanto como key quanto como fallback no idioma de desenvolvimento.

let greeting = String(localized: "Welcome back")
let cancel = String(localized: "Cancel")
print(greeting)

Adicionando comentários para tradutores

Uma palavra isolada como “correr” pode significar executar uma ação ou praticar corrida. O parâmetro comment: fornece contexto aos tradutores para que escolham a formulação correta. Os comentários são incluídos automaticamente no String Catalog.

let runLabel = String(
    localized: "Run",
    comment: "Button that executes the user's code")

Interpolando valores

Você pode inserir valores obtidos em tempo de execução em uma string localizada. O Swift transforma cada interpolação em um marcador de formato para que os tradutores possam reordená-los. Os diferentes idiomas colocam o sujeito e o número em posições diferentes.

let name = "Mira"
let count = 3
let msg = String(localized: "\(name) has \(count) new messages")
print(msg)

LocalizedStringKey no SwiftUI

No SwiftUI, raramente você chama String(localized:) diretamente. A maioria das exibições que aceitam texto recebe um LocalizedStringKey, portanto um literal de texto simples é localizado automaticamente.

// In SwiftUI — the literal is a LocalizedStringKey
// Text("Welcome back")        // auto-localized
// Button("Save") { save() }   // auto-localized
let key: LocalizedStringKey = "Welcome back"
_ = key

Evitando localização acidental

Como o SwiftUI trata literais como keys, uma variável dinâmica do tipo String não é localizada. Se você criar texto por concatenação, o catálogo nunca verá a key real. Passe um único literal sempre que quiser localização e use verbatim: quando não quiser localização explicitamente.

let userInput = "hello"
// Text(userInput)            // NOT a localization key
// Text(verbatim: userInput)  // explicitly raw, never localized
let verbatimKey = userInput
_ = verbatimKey

Especificando uma tabela

Aplicativos grandes dividem as strings entre vários catálogos (tabelas). Você pode direcionar uma tabela e um pacote específicos, algo essencial ao distribuir strings dentro de um framework ou pacote do Swift.

let onboardingTitle = String(
    localized: "Get Started",
    table: "Onboarding",
    bundle: .main)

LocalizedStringResource

LocalizedStringResource representa uma string localizável como um valor que pode ser armazenado e resolvido mais tarde, inclusive entre processos (o que é útil para App Intents e widgets). Ele adia a consulta efetiva até o momento da exibição.

let resource = LocalizedStringResource("Order shipped")
// Resolve later, possibly in another locale context
let resolved = String(localized: resource)
print(resolved)

A localização padrão

O idioma de desenvolvimento do projeto fornece o fallback quando falta uma tradução. O literal de string que você escreve no código é tratado como o valor no idioma de origem, portanto o código permanece legível e você nunca envia uma key bruta como welcome_screen_title aos usuários.

// If only 'en' is translated and device is set to 'fr',
// the development-language value is shown as fallback.
let fallback = String(localized: "Settings")
print(fallback)

Uma consulta real

Juntando tudo: uma função que retorna uma mensagem totalmente localizada, com contexto e interpolação, pronta para qualquer interface.

func welcomeMessage(for user: String) -> String {
    return String(
        localized: "Welcome, \(user)!",
        comment: "Greeting shown after sign-in")
}
print(welcomeMessage(for: "Ada"))

Verificação rápida

Lembre-se de como o SwiftUI decide se deve localizar um texto.

Recapitulação

Você estabeleceu a base para textos localizados:

  • Armazene as traduções em um String Catalog (.xcstrings).
  • Consulte strings com String(localized:), adicionando comment: para os tradutores.
  • No SwiftUI, os literais se tornam LocalizedStringKey e são localizados automaticamente; as variáveis, não.
  • Use table:/bundle: para frameworks e LocalizedStringResource para resolução adiada.

Perguntas Frequentes

A aula “Catálogos de Strings e Strings Localizadas” é grátis?

Sim — o texto completo de “Catálogos de Strings e Strings Localizadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Catálogos de Strings e Strings Localizadas”?

Localize textos com o moderno String Catalog. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Catálogos de Strings e Strings Localizadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Catálogos de Strings e Strings Localizadas
  2. Pluralização e Stringsdict
  3. Formatação Sensível à Localidade
  4. Direita para Esquerda e Direção do Layout
← Voltar para Swift Academy