Skip to main content
AI agent network visualization

Išverskite .strings failus nesugadindami programos

Raktai nepaliesti. Formato specifikatoriai išsaugoti. Daugiskaitos taisyklės tinkamos. Jūsų Localizable.strings išverčiamas per kelias sekundes, o ne dienas.

Apple .strings vertimas varginantis ir kupinas klaidų

Eksportuojate Localizable.strings, perduodate vertėjui arba įklijuojate į bendrąjį įrankį, o atgal gaunate sugadintus formato specifikatorius, neveikiančias kaitos sekas ir iškraipytas daugiskaitos taisykles. Tada valandų valandas aiškinatės, kodėl paleista japonų kalba programa nulūžta.

Bendrieji įrankiai išverčia, pertvarko arba pašalina formato specifikatorius, pavyzdžiui, %@, %d ir %1$@

Kaitos sekos (\n, \", \t) sugadinamos arba pakeičiamos dvigubomis, todėl eilučių analizė nebeveikia

Stringsdict daugiskaitos taisyklėms reikia konkrečiai kalbai skirtų CLDR kategorijų, kurių dauguma įrankių visai nepaiso

Vertėjo komentarai ir konteksto užuominos pašalinami, todėl vertimai būna netinkami

Šaltinis (anglų k.)
Base.lproj/Localizable.strings
/* Localizable.strings (English) */

"welcome_title" = "Welcome to MyApp";
"login_button" = "Sign In";
"greeting" = "Hello, %@!";
"items_count" = "%d items in your cart";
"transfer" = "Send %1$@ to %2$@";
Vertimas (japonų k.)
ja.lproj/Localizable.strings
/* Localizable.strings (Japanese) */

"welcome_title" = "MyAppへようこそ";
"login_button" = "サインイン";
"greeting" = "%@さん、こんにちは!";
"items_count" = "カートに%d個のアイテム";
"transfer" = "%2$@に%1$@を送信";

Ką išsaugo i18n Agent

Formato specifikatoriai

Poziciniai (%1$@) ir konkrečiam tipui skirti (%d, %f, %@) specifikatoriai aptinkami ir paliekami nepakeisti

Kaitos sekos

Naujos eilutės (\n), tabuliavimo ženklai (\t), kabutės (\") ir Unicode kaitos sekos išsaugomos tinkamai

Stringsdict daugiskaita

CLDR daugiskaitos kategorijos (zero, one, two, few, many, other) tinkamai nustatomos kiekvienai tikslinei kalbai

Komentarai ir kontekstas

Vertėjo komentarai ir kūrėjų pastabos išsaugomi, kad nepradingtų vertimo kontekstas

Veikia visose Apple platformose

SwiftUI
UIKit / AppKit
Xcode eilučių katalogai
macOS programos
watchOS / tvOS
Swift paketai

Atvirojo kodo iOS lokalizavimo įrankiai

i18n Agent, skirtas Xcode

macOS meniu juostos programa, suteikianti Xcode lokalizavimą vienu spustelėjimu. Ji automatiškai aptinka aktyvų projektą, išverčia .strings, .xcstrings ir .stringsdict failus bei įrašo juos į tinkamus .lproj katalogus. Pateikite esamus vertimus kaip vertimų atmintį, kad rezultatai visame projekte būtų nuoseklūs.

Automatiškai aptinka aktyvų Xcode projektą per AppleScript
Gauti: išverčia failus ir įrašo juos į tinkamus .lproj katalogus
Pateikti: įkelia esamus vertimus kaip vertimų atmintį
Veikia meniu juostoje ir palaiko .strings, .xcstrings bei .stringsdict
Peržiūrėti GitHub

LocaleChain

iOS turi žinomą spragą: jei nėra naudotojo regioninės lokalės (pavyzdžiui, pt-BR), sistema iškart pereina prie anglų kalbos, užuot išbandžiusi susijusią lokalę (pavyzdžiui, pt-PT). LocaleChain – tai Swift paketas, kuris šią problemą išsprendžia konfigūruojamomis atsarginėmis grandinėmis. Viena sąrankos eilutė, jokių esamo kodo pakeitimų.

Vienos eilutės sąranka: LocaleChain.configure()
Skaidriai veikia su NSLocalizedString, SwiftUI Text ir .stringsdict
Integruotos atsarginės grandinės portugalų, ispanų, prancūzų, vokiečių ir kitoms kalboms
Įdiegiama per Swift Package Manager, MIT licencija
Peržiūrėti GitHub

Kaip tai veikia

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.

Jokio rankinio kopijavimo. Jokio eilučių išskyrimo. Tik išversti failai.

Išbandykite i18n Agent dabar

Nuvilkite vertimo failą čia

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

arba spustelėkite norėdami pasirinkti

Tikslinės kalbos

Registruotis nereikiaMomentinis įvertis

Dažnai užduodami klausimai

Kūrėjas?

Įdiekite CLI įrankį ir per 2 minutes išverskite pirmąjį failą.

Įdiegti CLI įrankį

Įmonės komanda?

Vis dar esate įstrigę TMS sutartyje? Aptarkime perkėlimą.