Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14

O String Catalog foi introduzido no Xcode 14, que foi lançado junto com o iOS 16. Projetado para simplificar e modernizar a forma como os desenvolvedores lidam com strings localizadas em seus projetos, ele oferece uma interface mais intuitiva e integra…


This content originally appeared on DEV Community and was authored by Lys

O String Catalog foi introduzido no Xcode 14, que foi lançado junto com o iOS 16. Projetado para simplificar e modernizar a forma como os desenvolvedores lidam com strings localizadas em seus projetos, ele oferece uma interface mais intuitiva e integrada em comparação aos métodos tradicionais.

Ao clicar em criar um novo arquivo, String Catalog é mostrado como opção

Image description

Ao selecionar e escolher um nome, no canto esquerdo, é mostrado os idiomas suportados, com um botão para adicionar mais opções, onde é possível adicionar português também.

Image description

Para exemplificar com código, o título dos componentes dessa Tab Bar virá do arquivo criado.

Image description

Se pensarmos que a tela está sendo criada assim

import SwiftUI

struct ContentView: View {
    var body: some View {
        TabView {
            BlogView()
                .tabItem {
                    Label("Blog",
                          systemImage: "doc.text")
                }

            InterviewGenerateQuestionsView()
                .tabItem {
                    Label("Entrevistas", systemImage: "mic.fill")
                }

            ResumeView()
                .tabItem {
                    Label("Currículo", systemImage: "book.fill")
                }

            MenuView()
                .tabItem {
                    Label("Menu", systemImage: "line.horizontal.3")
                }
        }
    }
}

Será necessária a criação de quatro propriedades que vou nomear com o sufixo title.

Image description

Caso o arquivo criado tenha o nome Localizable.strings, a string poderá ser acessada dessa forma

String(localized: "blogTitle")

No caso de outro nome, será necessário acessar uma tabela diferente

private static func localized(_ key: String) -> String {
        return NSLocalizedString(key, 
                                 tableName: "HomeStrings", 
                                 bundle: .main, 
                                 value: "", 
                                 comment: "")
}

Pra não sobrecarregar a função de responsabilidades e repetir código, é interessante criar um arquivo para cuidar desse acesso

import Foundation

class HomeStrings {
    static let blogTitle = localized("blogTitle")
    static let interviewTitle = localized("interviewTitle")
    static let menuTitle = localized("menuTitle")
    static let resumeTitle = localized("resumeTitle")

    private static func localized(_ key: String) -> String {
        return NSLocalizedString(key, 
                                 tableName: "HomeStrings", 
                                 bundle: .main, 
                                 value: "", 
                                 comment: "")
    }
}

Então a ContentView ficará assim

import SwiftUI

struct ContentView: View {
    var body: some View {
        TabView {
            BlogView()
                .tabItem {
                    Label(HomeStrings.blogTitle,
                          systemImage: "doc.text")
                }

            InterviewGenerateQuestionsView()
                .tabItem {
                    Label(HomeStrings.interviewTitle,
                          systemImage: "mic.fill")
                }

            ResumeView()
                .tabItem {
                    Label(HomeStrings.resumeTitle,
                          systemImage: "book.fill")
                }

            MenuView()
                .tabItem {
                    Label(HomeStrings.menuTitle, 
                          systemImage: "line.horizontal.3")
                }
        }
    }
}


This content originally appeared on DEV Community and was authored by Lys


Print Share Comment Cite Upload Translate Updates
APA

Lys | Sciencx (2024-10-17T21:32:04+00:00) Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14. Retrieved from https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/

MLA
" » Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14." Lys | Sciencx - Thursday October 17, 2024, https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/
HARVARD
Lys | Sciencx Thursday October 17, 2024 » Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14., viewed ,<https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/>
VANCOUVER
Lys | Sciencx - » Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/
CHICAGO
" » Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14." Lys | Sciencx - Accessed . https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/
IEEE
" » Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14." Lys | Sciencx [Online]. Available: https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/. [Accessed: ]
rf:citation
» Introdução ao String Catalog: Melhore a localização de strings no iOS 16 com Xcode 14 | Lys | Sciencx | https://www.scien.cx/2024/10/17/introducao-ao-string-catalog-melhore-a-localizacao-de-strings-no-ios-16-com-xcode-14/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.