Skip to main content
AI agent network visualization

Traduzir catálogos de cadeias do Xcode em segundos

Formas plurais corretas segundo a CLDR. Variações por dispositivo preservadas. Estados de tradução acompanhados. Os seus ficheiros .xcstrings traduzidos sem sair do IDE.

Traduzir catálogos de cadeias é mais complexo do que parece

Os catálogos de cadeias do Xcode 15 substituíram .strings e .stringsdict por um único ficheiro JSON, mas a complexidade não desapareceu. As formas plurais precisam das categorias CLDR corretas para cada idioma, as variações por dispositivo —iPhone, iPad ou Mac— têm de permanecer associadas às respetivas chaves e, devido ao controlo de estados do Xcode, um único campo errado invalida toda a entrada.

Cada idioma precisa de categorias de plural CLDR diferentes: o árabe precisa das seis, o japonês apenas de 'other' e o russo de quatro formas distintas

As variações de cadeias específicas de dispositivos —iPhone, iPad, Mac e Apple Watch— têm de permanecer corretamente associadas às chaves principais

O Xcode acompanha os estados de tradução —new, needs_review, translated e stale—; valores de estado errados fazem o Xcode ignorar ou assinalar incorretamente as traduções

A migração de .strings/.stringsdict antigos para .xcstrings introduz diferenças de formato que as ferramentas genéricas não tratam

Origem (inglês)
Localizable.xcstrings
{
  "sourceLanguage": "en",
  "version": "1.0",
  "strings": {
    "welcome_title": {
      "extractionState": "manual",
      "localizations": {
        "en": {
          "stringUnit": {
            "state": "translated",
            "value": "Welcome to the App"
          }
        }
      }
    },
    "item_count": {
      "localizations": {
        "en": {
          "variations": {
            "plural": {
              "zero": {
                "stringUnit": {
                  "state": "translated",
                  "value": "No items"
                }
              },
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld item"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld items"
                }
              }
            }
          }
        }
      }
    },
    "device_greeting": {
      "localizations": {
        "en": {
          "variations": {
            "device": {
              "iphone": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tap to continue"
                }
              },
              "ipad": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tap or click to continue"
                }
              },
              "mac": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Click to continue"
                }
              }
            }
          }
        }
      }
    }
  }
}
Traduzido (alemão)
Localizable.xcstrings (com de)
{
  "sourceLanguage": "en",
  "version": "1.0",
  "strings": {
    "welcome_title": {
      "extractionState": "manual",
      "localizations": {
        "de": {
          "stringUnit": {
            "state": "translated",
            "value": "Willkommen in der App"
          }
        }
      }
    },
    "item_count": {
      "localizations": {
        "de": {
          "variations": {
            "plural": {
              "zero": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Keine Elemente"
                }
              },
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Element"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Elemente"
                }
              }
            }
          }
        }
      }
    },
    "device_greeting": {
      "localizations": {
        "de": {
          "variations": {
            "device": {
              "iphone": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tippen zum Fortfahren"
                }
              },
              "ipad": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tippen oder klicken zum Fortfahren"
                }
              },
              "mac": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Klicken zum Fortfahren"
                }
              }
            }
          }
        }
      }
    }
  }
}

O que o i18n Agent preserva

Formas plurais

Categorias de plural CLDR corretas, geradas para cada idioma de destino: desde uma categoria em japonês até seis em árabe

Variações por dispositivo

As variações de cadeias para iPhone, iPad, Mac e Apple Watch permanecem corretamente associadas às chaves principais

Reconhecimento do estado

Os estados de tradução —new, needs_review e translated— são definidos corretamente para o fluxo de localização do Xcode funcionar como previsto

Compatibilidade do formato

O resultado é totalmente compatível com o editor de catálogos de cadeias do Xcode e integra-se sem problemas em projetos novos ou migrados

Funciona em todo o desenvolvimento Apple

Catálogos de cadeias do Xcode 15 ou posterior
Localização SwiftUI
UIKit / AppKit
Pacotes Swift

Como funciona

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Sem copiar e colar manualmente. Sem extrair cadeias. Apenas ficheiros traduzidos.

Experimente já o i18n Agent

Largue aqui o seu ficheiro de tradução

JSON, YAML, PO, XML, CSV, Markdown, Properties

ou clique para selecionar

Idiomas de destino

Sem registoEstimativa imediata

Perguntas frequentes

É programador?

Instale a ferramenta de CLI e traduza o seu primeiro ficheiro em 2 minutos.

Instalar a ferramenta de CLI

Equipa empresarial?

A sua equipa ainda está vinculada a um contrato de TMS? Falemos sobre a migração.