Przeglądaj źródła

Add Portuguese (Brazil) localization for the full app UI.

Registers pt-BR in the language picker and Localizable.strings, including localized Pro and PDF copy.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 miesiąc temu
rodzic
commit
0af87c134f

+ 1 - 0
App for Indeed.xcodeproj/project.pbxproj

@@ -109,6 +109,7 @@
 				de,
 				sv,
 				ko,
+				"pt-BR",
 			);
 			mainGroup = 27D852772FB1D367008DF557;
 			minimizedProjectReferenceProxies = 1;

+ 7 - 1
App for Indeed/Services/AppLocalization.swift

@@ -18,6 +18,7 @@ enum AppLanguage: CaseIterable {
     case chineseSimplified
     case chineseTraditional
     case korean
+    case portugueseBrazil
 
     var localeIdentifier: String {
         switch self {
@@ -39,6 +40,8 @@ enum AppLanguage: CaseIterable {
             return "zh-Hant"
         case .korean:
             return "ko"
+        case .portugueseBrazil:
+            return "pt-BR"
         }
     }
 
@@ -76,6 +79,9 @@ enum AppLanguage: CaseIterable {
         if lower.hasPrefix("ko") {
             return .korean
         }
+        if lower.hasPrefix("pt") {
+            return .portugueseBrazil
+        }
         for language in AppLanguage.allCases where preferred.hasPrefix(language.localeIdentifier) {
             return language
         }
@@ -171,7 +177,7 @@ private func translateTemplateNameByTokens(_ name: String, language: AppLanguage
     switch language {
     case .chineseSimplified, .chineseTraditional:
         return translated.joined()
-    case .arabic, .english, .french, .frenchCanada, .german, .korean, .swedish:
+    case .arabic, .english, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .swedish:
         return translated.joined(separator: " ")
     }
 }

+ 1 - 1
App for Indeed/Services/CVTemplateFetchService.swift

@@ -49,7 +49,7 @@ final class CVTemplateFetchService {
             switch language {
             case .english:
                 return spacingRule
-            case .chineseTraditional, .chineseSimplified, .arabic, .french, .frenchCanada, .german, .korean, .swedish:
+            case .chineseTraditional, .chineseSimplified, .arabic, .french, .frenchCanada, .german, .korean, .portugueseBrazil, .swedish:
                 return spacingRule + " The app localizes these English keys client-side — do not use non-English script in `name`."
             }
         }

+ 1 - 1
App for Indeed/Services/TemplateNameTokenLexicon.swift

@@ -84,7 +84,7 @@ enum TemplateNameTokenLexicon {
             return fr
         case .swedish:
             return sv
-        case .korean:
+        case .korean, .portugueseBrazil:
             return [:]
         }
     }

+ 365 - 0
App for Indeed/pt-BR.lproj/Localizable.strings

@@ -0,0 +1,365 @@
+/* Localizable.strings (Português do Brasil) */
+
+// MARK: - Comum
+"OK" = "OK";
+"Cancel" = "Cancelar";
+"Delete" = "Excluir";
+"Remove" = "Remover";
+"Dismiss" = "Dispensar";
+
+// MARK: - Tela de Inicialização
+"AI-POWERED" = "COM IA";
+"Find your perfect job with the power of AI." = "Encontre o emprego perfeito com o poder da IA.";
+"Starting up…" = "Iniciando…";
+"Loading progress" = "Carregando progresso";
+
+// MARK: - Status de Inicialização
+"Checking your Pro subscription…" = "Verificando sua assinatura profissional…";
+"Loading premium plans from the App Store…" = "Carregando planos premium da App Store…";
+"Preparing your job search workspace…" = "Preparando seu espaço de busca de emprego…";
+"Almost ready…" = "Quase pronto…";
+
+// MARK: - Barra Lateral
+"Home" = "Início";
+"Saved Jobs" = "Vagas Salvas";
+"CV Maker" = "Criador de Currículo";
+"Profile" = "Perfil";
+"Settings" = "Configurações";
+"Premium" = "Premium";
+"Indeed" = "Indeed";
+"Open Indeed to search and apply for jobs" = "Abra o Indeed para pesquisar e se candidatar a vagas";
+
+// MARK: - Dashboard / Início
+"Welcome" = "Bem-vindo";
+"Send" = "Enviar";
+"Clear chat" = "Limpar chat";
+"Remove all messages and start a new conversation" = "Remover todas as mensagens e iniciar uma nova conversa";
+"Ask for roles, skills, salary, or job descriptions..." = "Pergunte sobre cargos, habilidades, salário ou descrições de vagas...";
+"Ask AI" = "Perguntar à IA";
+"1 reply left" = "1 resposta restante";
+"Apply" = "Candidatar-se";
+"Save" = "Salvar";
+"Saved" = "Salvo";
+"Remove from saved" = "Remover dos salvos";
+"Show more jobs" = "Mostrar mais vagas";
+"This area is not available in the preview build. Use Home to search jobs." = "Esta área não está disponível na versão de prévia. Use Início para pesquisar vagas.";
+"Save jobs from Home to see them here." = "Salve vagas do Início para vê-las aqui.";
+"No saved jobs yet. Search on Home, then tap Save on a listing." = "Nenhuma vaga salva ainda. Pesquise no Início e toque em Salvar em uma vaga.";
+"Tell me what role you want and I will return job descriptions, key skills, and a quick fit summary." = "Diga-me qual cargo você deseja e eu retornarei descrições de vagas, principais habilidades e um resumo rápido de compatibilidade.";
+"1 saved position" = "1 vaga salva";
+"Delete this profile?" = "Excluir este perfil?";
+"Find roles similar to: " = "Encontrar cargos semelhantes a: ";
+"Find jobs at company: " = "Encontrar vagas na empresa: ";
+"Find jobs that require skill: " = "Encontrar vagas que exigem a habilidade: ";
+"match" = "correspondência";
+"matches" = "correspondências";
+
+// MARK: - Atalhos de Recursos
+"Role" = "Cargo";
+"Explore similar or better job roles" = "Explorar cargos semelhantes ou melhores";
+"Company" = "Empresa";
+"Find opportunities at other companies" = "Encontrar oportunidades em outras empresas";
+"Skill" = "Habilidade";
+"Match jobs that fit your skills" = "Corresponder vagas que se encaixam nas suas habilidades";
+
+// MARK: - Pro / Assinatura
+"Upgrade to Pro" = "Atualizar para Profissional";
+"You're on Pro" = "Você está no plano Profissional";
+"Unlimited AI matches, smart alerts, and interview prep—all in one place." = "Correspondências de IA ilimitadas, alertas inteligentes e preparação para entrevistas — tudo em um só lugar.";
+"Manage billing, renewals, and plans in Premium." = "Gerencie faturamento, renovações e planos em Premium.";
+"Try Pro" = "Experimentar o Profissional";
+"Manage Subscription" = "Gerenciar Assinatura";
+"Premium Plans" = "Planos Premium";
+"Unlock unlimited access to premium tools and boost your productivity." = "Desbloqueie acesso ilimitado a ferramentas premium e aumente sua produtividade.";
+"Continue with free plan" = "Continuar com plano gratuito";
+"Restore Purchase" = "Restaurar Compra";
+"You're subscribed" = "Você está assinando";
+"Thank you — Pro features are now available." = "Obrigado — os recursos profissionais agora estão disponíveis.";
+"Pro" = "Profissional";
+"Purchases restored" = "Compras restauradas";
+"Your subscription is active." = "Sua assinatura está ativa.";
+"No subscription found" = "Nenhuma assinatura encontrada";
+"There was nothing to restore for this Apple ID." = "Não havia nada para restaurar para este Apple ID.";
+"Something went wrong" = "Algo deu errado";
+"That subscription isn’t available from the App Store right now." = "Essa assinatura não está disponível na App Store no momento.";
+"Unlimited AI job search on Home" = "Busca de emprego por IA ilimitada no Início";
+"Save jobs & open listings in-app" = "Salvar vagas e abrir anúncios no aplicativo";
+"CV Maker, profiles & PDF export" = "Criador de Currículo, perfis e exportação de documentos";
+"Role, company & skill shortcuts" = "Atalhos para cargo, empresa e habilidade";
+
+// MARK: - Planos da Paywall
+"Weekly" = "Semanal";
+"Flexible and commitment-free" = "Flexível e sem compromisso";
+"Monthly" = "Mensal";
+"Balanced for regular productivity" = "Equilibrado para produtividade regular";
+"Yearly" = "Anual";
+"Best value for long-term users" = "Melhor custo-benefício para usuários de longo prazo";
+"/ week" = "/ semana";
+"/ month" = "/ mês";
+"/ year" = "/ ano";
+"3 days free trial" = "3 dias de teste gratuito";
+"Perfect for short-term job hunts" = "Perfeito para buscas de emprego de curto prazo";
+"Cancel anytime" = "Cancele quando quiser";
+"Best for regular job seekers" = "Melhor para candidatos regulares";
+"Priority support" = "Suporte prioritário";
+"Lowest effective monthly cost" = "Menor custo mensal efetivo";
+"Ideal for long-term use" = "Ideal para uso prolongado";
+
+// MARK: - Confiança da Paywall
+"Secure Payments" = "Pagamentos Seguros";
+"Your payment is 100% secure." = "Seu pagamento é 100% seguro.";
+"Cancel Anytime" = "Cancele Quando Quiser";
+"No commitment, cancel anytime." = "Sem compromisso, cancele quando quiser.";
+"24/7 Support" = "Suporte 24/7";
+"We're here to help you anytime." = "Estamos aqui para ajudá-lo sempre.";
+"Privacy First" = "Privacidade em Primeiro Lugar";
+"Your data is safe with us." = "Seus dados estão seguros conosco.";
+
+// MARK: - Configurações
+"Appearance" = "Aparência";
+"Theme" = "Tema";
+"Language" = "Idioma";
+"Share App" = "Compartilhar App";
+"More Apps" = "Mais Apps";
+"About" = "Sobre";
+"Website" = "Site";
+"Support" = "Suporte";
+"Terms of Use" = "Termos de Uso";
+"Privacy Policy" = "Política de Privacidade";
+"System" = "Sistema";
+"Light" = "Claro";
+"Dark" = "Escuro";
+
+// MARK: - Perfis
+"Profiles" = "Perfis";
+"Add new profile" = "Adicionar novo perfil";
+"Create and manage CV profiles. Each profile stores your details on this Mac." = "Crie e gerencie perfis de currículo. Cada perfil armazena seus dados neste Mac.";
+"No profiles yet. Tap “Add new profile” to create your first one." = "Nenhum perfil ainda. Toque em “Adicionar novo perfil” para criar o primeiro.";
+"Build CV" = "Criar Currículo";
+"Edit" = "Editar";
+"Untitled profile" = "Perfil sem título";
+"No contact details yet" = "Nenhum detalhe de contato ainda";
+"← Profiles" = "← Perfis";
+
+// MARK: - Editor de Perfil
+"Save Profile  →" = "Salvar Perfil →";
+"← All profiles" = "← Todos os perfis";
+"New profile" = "Novo perfil";
+"Edit profile" = "Editar perfil";
+"Profile Name *" = "Nome do Perfil *";
+"Marketing Director Profile" = "Perfil de Diretor de Marketing";
+"Personal Information" = "Informações Pessoais";
+"Full Name *" = "Nome Completo *";
+"John Doe" = "João Silva";
+"Email *" = "E-mail *";
+"john@example.com" = "joao@exemplo.com.br";
+"Phone" = "Telefone";
+"+1 (555) 123-4567" = "+55 (11) 91234-5678";
+"Job Title *" = "Cargo *";
+"Software Engineer" = "Engenheiro de Software";
+"Address" = "Endereço";
+"123 Main St, City, State, ZIP" = "Rua das Flores, 123, São Paulo, SP, 01234-567";
+"Certificates / Rewards" = "Certificados / Prêmios";
+"List your certificates and awards..." = "Liste seus certificados e prêmios...";
+"Interests" = "Interesses";
+"List your interests and hobbies..." = "Liste seus interesses e hobbies...";
+"Languages" = "Idiomas";
+"List languages you speak (e.g., English - Native, Spanish - Fluent)..." = "Liste os idiomas que você fala (ex.: Português - Nativo, Inglês - Fluente)...";
+"Career Summary" = "Resumo da Carreira";
+"Brief overview of your professional background and key achievements..." = "Visão geral da sua experiência profissional e principais realizações...";
+"Referral (Optional)" = "Indicação (Opcional)";
+"Referred by (Company/Person Name)" = "Indicado por (Nome da Empresa/Pessoa)";
+"If someone referred you for this job, enter their name or company here" = "Se alguém indicou você para esta vaga, insira o nome ou empresa aqui";
+"Work Experience" = "Experiência Profissional";
+"Education" = "Formação Acadêmica";
+"+ Add Another" = "+ Adicionar Outro";
+"Complete required fields" = "Preencha os campos obrigatórios";
+"Remove experience" = "Remover experiência";
+"Remove education" = "Remover formação";
+"Company Name *" = "Nome da Empresa *";
+"Duration *" = "Duração *";
+"Description" = "Descrição";
+"e.g., Software Engineer" = "ex.: Engenheiro de Software";
+"e.g., Google" = "ex.: Google";
+"e.g., Jan 2020 - Present" = "ex.: Jan 2023 - Presente";
+"Describe your responsibilities and achievements..." = "Descreva suas responsabilidades e realizações...";
+"Degree / program *" = "Grau / programa *";
+"Institution *" = "Instituição *";
+"Year *" = "Ano *";
+"e.g., BSc Computer Science" = "ex.: Bacharelado em Ciência da Computação";
+"e.g., MIT" = "ex.: USP";
+"e.g., 2020" = "ex.: 2023";
+"Profile name" = "Nome do perfil";
+"Full Name" = "Nome completo";
+"Email" = "E-mail";
+"Job Title" = "Cargo";
+
+// MARK: - Criador de Currículo
+"Templates" = "Modelos";
+"Polished layouts with live previews — pick a style that fits your story." = "Layouts refinados com pré-visualização ao vivo — escolha um estilo que se encaixa na sua história.";
+"Use Template & Select Profile  →" = "Usar Modelo e Selecionar Perfil →";
+"All" = "Todos";
+"No templates yet for this category." = "Nenhum modelo ainda para esta categoria.";
+"Pick a template" = "Escolha um modelo";
+"Select a template first, then choose a profile to continue." = "Selecione um modelo primeiro, depois escolha um perfil para continuar.";
+"Fetching AI-curated templates…" = "Buscando modelos selecionados por IA…";
+"Couldn’t load AI templates — showing the built-in gallery." = "Não foi possível carregar os modelos de IA — mostrando a galeria integrada.";
+"Design-Based" = "Baseado em Design";
+"Profession-Based" = "Baseado em Profissão";
+"Professional" = "Profissional";
+"Modern" = "Moderno";
+"Creative" = "Criativo";
+"Minimal" = "Minimalista";
+"Executive" = "Executivo";
+"ATS layout" = "Layout ATS";
+"Sidebar left" = "Barra lateral esquerda";
+"Sidebar right" = "Barra lateral direita";
+
+// MARK: - Pré-visualização do Currículo
+"CV preview" = "Prévia do Currículo";
+"Export PDF…" = "Exportar documento…";
+"Layout matches the CV Maker thumbnail for this template. Export a PDF that matches what you see here (fonts, columns, colours, and rules)." = "O layout corresponde à miniatura do Criador de Currículo para este modelo. Exporte um documento que corresponda ao que você vê aqui (fontes, colunas, cores e linhas).";
+"The résumé could not be rendered to PDF (empty output). Try scrolling the preview so it lays out, then export again." = "O currículo não pôde ser convertido em documento (saída vazia). Tente rolar a prévia para que ele se organize e exporte novamente.";
+"Couldn’t save PDF" = "Não foi possível salvar o documento";
+"Your name" = "Seu nome";
+"Professional headline" = "Título profissional";
+"Experience" = "Experiência";
+"Highlights" = "Destaques";
+"Summary" = "Resumo";
+"Contact" = "Contato";
+"Skills" = "Habilidades";
+"Tools" = "Ferramentas";
+"Languages & more" = "Idiomas e mais";
+"Certificates" = "Certificados";
+"Referrals" = "Indicações";
+"Professional Summary" = "Resumo Profissional";
+"Selected Experience" = "Experiência Selecionada";
+"Core Competencies" = "Competências Essenciais";
+"Impact" = "Impacto";
+"Add contact in your profile" = "Adicione contato no seu perfil";
+"Add contact details in your profile" = "Adicione detalhes de contato no seu perfil";
+"Add a career summary or interests in your profile to populate this column." = "Adicione um resumo de carreira ou interesses no seu perfil para preencher esta coluna.";
+"CV" = "Currículo";
+"Open to relocation" = "Disposto a mudar de cidade";
+"STRENGTHS" = "PONTOS FORTES";
+"PORTFOLIO SNAPSHOT" = "INSTANTÂNEO DO PORTFÓLIO";
+"Close" = "Fechar";
+"/ day" = "/ dia";
+"/ %d days" = "/ %d dias";
+"/ %d weeks" = "/ %d semanas";
+"/ %d months" = "/ %d meses";
+"/ %d years" = "/ %d anos";
+
+// MARK: - Nomes dos Modelos de Currículo
+"Paper White" = "Branco Papel";
+"Swiss" = "Suíço";
+"Mono" = "Mono";
+"Airy" = "Airoso";
+"Tabular" = "Tabular";
+"Facet" = "Faceta";
+"Corporate" = "Corporativo";
+"Atlas" = "Atlas";
+"Ledger" = "Registro";
+"Harbor" = "Porto";
+"Clear Path" = "Caminho Claro";
+"Pinstripe" = "Listras Finas";
+"Briefing" = "Briefing";
+"Quorum" = "Quórum";
+"Docket" = "Pauta";
+"Conduit" = "Canal";
+"Principal" = "Principal";
+"Charter" = "Carta";
+"Vertex" = "Vértice";
+"Linea" = "Linea";
+"Prism" = "Prisma";
+"Circuit" = "Circuito";
+"North" = "Norte";
+"Axis" = "Eixo";
+"Marigold" = "Cravo";
+"Ember" = "Brasa";
+"Lattice" = "Grade";
+"Bloom" = "Florescer";
+"Studio" = "Estúdio";
+"Kite" = "Pipa";
+"Regent" = "Regente";
+"Monarch" = "Monarca";
+"Sterling" = "Libra";
+"Summit" = "Cume";
+"Estate" = "Propriedade";
+"Chairman" = "Presidente";
+"Blue Ocean" = "Oceano Azul";
+
+// MARK: - Conteúdo de Demonstração do Currículo
+"Sarah Johnson" = "Mariana Oliveira";
+"Senior Product Manager" = "Gerente de Produto Sênior";
+"Group PM, Consumer Growth & Activation" = "Gerente de Produto de Grupo, Crescimento e Ativação do Consumidor";
+"Google · Mountain View, CA · 2019 – Present" = "Google · São Paulo, SP · 2019 – Presente";
+"Stanford University" = "Universidade de São Paulo";
+"M.S. Management Science & Engineering" = "Mestrado em Ciências da Gestão e Engenharia";
+"2014 – 2016" = "2014 – 2016";
+"Mountain View, CA" = "São Paulo, SP";
+"Product leader shipping roadmap, discovery, and analytics for high-scale consumer experiences." = "Líder de produto entregando roteiro, descoberta e análises para experiências do consumidor em grande escala.";
+"Defined multi-year platform strategy with exec stakeholders and quarterly OKRs." = "Definiu estratégia de plataforma plurianual com partes interessadas executivas e OKRs trimestrais.";
+"Partnered with engineering and design to launch experiments improving activation by 12%." = "Fez parceria com engenharia e design para lançar experimentos que melhoraram a ativação em 12%.";
+"Stood up quarterly business reviews with finance and GTM, aligning spend to north-star metrics." = "Estabeleceu revisões de negócios trimestrais com finanças e GTM, alinhando gastos às métricas norte-estrela.";
+"Presented roadmap shifts to the leadership team and translated trade-offs into clear investment asks." = "Apresentou mudanças no roteiro à equipe de liderança e traduziu compensações em pedidos claros de investimento.";
+"Figma · SQL · Amplitude · Jira · BigQuery" = "Figma · SQL · Amplitude · Jira · BigQuery";
+"Product Strategy" = "Estratégia de Produto";
+"A/B Testing" = "Teste A/B";
+"Roadmapping" = "Roteirização";
+"CONTACT" = "CONTATO";
+"SKILLS" = "HABILIDADES";
+"PROFILE" = "PERFIL";
+"EXPERIENCE" = "EXPERIÊNCIA";
+"EDUCATION" = "FORMAÇÃO";
+"SUMMARY" = "RESUMO";
+"PROFESSIONAL SUMMARY" = "RESUMO PROFISSIONAL";
+"SELECTED EXPERIENCE" = "EXPERIÊNCIA SELECIONADA";
+"CORE COMPETENCIES" = "COMPETÊNCIAS ESSENCIAIS";
+"TOOLS" = "FERRAMENTAS";
+"IMPACT" = "IMPACTO";
+
+// MARK: - Navegador de Vagas
+"Return to the previous screen" = "Voltar para a tela anterior";
+
+// MARK: - Erros
+"We couldn't reach the server. Check your internet connection and try again." = "Não foi possível acessar o servidor. Verifique sua conexão com a internet e tente novamente.";
+"The search was cancelled. Try again when you're ready." = "A busca foi cancelada. Tente novamente quando estiver pronto.";
+"The request was cancelled. Try again when you're ready." = "A solicitação foi cancelada. Tente novamente quando estiver pronto.";
+"Something went wrong while searching. Please try again in a moment." = "Algo deu errado durante a busca. Tente novamente em alguns instantes.";
+"Job search is unavailable." = "A busca de vagas está indisponível.";
+"We couldn't complete your purchase. Please try again." = "Não foi possível concluir sua compra. Tente novamente.";
+"We couldn't restore your purchases. Please try again." = "Não foi possível restaurar suas compras. Tente novamente.";
+"Purchase was cancelled." = "A compra foi cancelada.";
+"This subscription isn't available in your App Store region." = "Esta assinatura não está disponível na sua região da App Store.";
+"Purchases aren't allowed on this account or device." = "Compras não são permitidas nesta conta ou dispositivo.";
+"This introductory offer isn't available for your account." = "Esta oferta introdutória não está disponível para sua conta.";
+"The purchase couldn't be verified. Please try again." = "Não foi possível verificar a compra. Tente novamente.";
+"We couldn't save the PDF. Try again or choose a different folder." = "Não foi possível salvar o documento. Tente novamente ou escolha uma pasta diferente.";
+"We don't have permission to save to that folder. Choose another location or grant access." = "Não temos permissão para salvar nessa pasta. Escolha outro local ou conceda acesso.";
+"This disk is read-only. Choose another folder to save your PDF." = "Este disco é somente leitura. Escolha outra pasta para salvar seu documento.";
+"The disk is full. Free up space, then try again." = "O disco está cheio. Libere espaço e tente novamente.";
+
+// MARK: - Alertas
+"This profile will be removed from this Mac." = "Este perfil será removido deste Mac.";
+
+// MARK: - Strings de Formatação
+"Loading %@" = "Carregando %@";
+"Loading %@. %@" = "Carregando %@. %@";
+"Starting %@…" = "Iniciando %@…";
+"%d replies left" = "%d respostas restantes";
+"%d saved positions" = "%d vagas salvas";
+"“%@” will be removed from this Mac." = "“%@” será removido deste Mac.";
+"%@ isn’t available yet" = "%@ ainda não está disponível";
+"I couldn't find new matches for “%@”. Try a different angle or a more specific keyword." = "Não encontrei novas correspondências para “%@”. Tente uma abordagem diferente ou uma palavra-chave mais específica.";
+"No jobs found for “%@”. Try another title, skill, company, or location." = "Nenhuma vaga encontrada para “%@”. Tente outro cargo, habilidade, empresa ou local.";
+"Here are %d more %@ for “%@”." = "Aqui estão mais %d %@ para “%@”.";
+"Found %d %@ for “%@”. Tap Apply to open the listing or Save to revisit later." = "Encontradas %d %@ para “%@”. Toque em Candidatar-se para abrir a vaga ou Salvar para revisitar depois.";
+"Get %@" = "Obter %@";
+"You chose the “%@” template. Tap Build CV on a profile to preview your résumé with that layout." = "Você escolheu o modelo “%@”. Toque em Criar Currículo em um perfil para visualizar seu currículo com esse layout.";
+"Experience %d" = "Experiência %d";
+"Education %d" = "Formação %d";
+"Please fill in: %@." = "Por favor, preencha: %@.";
+
+// MARK: - Multilinha
+"Add your Mac App Store IDs in the target’s build settings:\n• AppStoreAppID — numeric app ID from App Store Connect\n• AppStoreDeveloperID — numeric developer ID (for your other apps page)" = "Adicione seus IDs da Mac App Store nas configurações de build do alvo:\n• AppStoreAppID — ID numérico do app do App Store Connect\n• AppStoreDeveloperID — ID numérico do desenvolvedor (para sua página de outros apps)";