Skip to main content
AI agent network visualization

Преведете Xcode String Catalogs за секунди

Формите за множествено число са правилни според CLDR. Вариантите за различни устройства се запазват. Състоянията на превода се проследяват. Вашите .xcstrings файлове се превеждат, без да напускате своята IDE.

Преводът на String Catalog е по-сложен, отколкото изглежда

Xcode 15 String Catalogs замениха .strings и .stringsdict с един JSON файл, но сложността остана. Формите за множествено число изискват правилните CLDR категории за всеки език, вариантите за различни устройства (iPhone, iPad или Mac) трябва да останат свързани със своите ключове, а проследяването на състоянията в Xcode означава, че само едно грешно поле може да направи целия запис невалиден.

Всеки език изисква различни CLDR категории за множествено число — арабският изисква всичките шест, японският само 'other', а руският четири отделни форми

Вариантите на низовете за различни устройства (iPhone, iPad, Mac, Apple Watch) трябва да останат правилно свързани със своите родителски ключове

Xcode проследява състоянията на превода (new, needs_review, translated, stale) — грешните стойности за състояние карат Xcode да пренебрегва преводите или да ги отбелязва неправилно

Преминаването от старите .strings/.stringsdict към .xcstrings въвежда разлики във формата, с които универсалните инструменти не се справят

Изходен текст (английски)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
Превод (немски)
Localizable.xcstrings (с 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Какво запазва i18n Agent

Форми за множествено число

За всеки целеви език се създават правилните CLDR категории за множествено число — от единствената категория за японски до шестте категории за арабски

Варианти за различни устройства

Вариантите на низовете за iPhone, iPad, Mac и Apple Watch остават правилно свързани със своите родителски ключове

Отчитане на състоянията

Състоянията на превода (new, needs_review, translated) се задават правилно, за да работи безпроблемно процесът на локализация в Xcode

Съвместимост на формата

Резултатът е напълно съвместим с редактора на String Catalog в Xcode и се интегрира безпроблемно както с нови, така и с мигрирани проекти

Работи в средите за разработка на Apple

Xcode 15+ String Catalogs
Локализация със SwiftUI
UIKit / AppKit
Swift Packages

Как работи

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.

Без ръчно копиране и поставяне. Без извличане на низове. Получавате направо преведените файлове.

Изпробвайте i18n Agent сега

Пуснете тук Вашия файл за превод

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

или натиснете, за да изберете файл

Целеви езици

Не се изисква регистрацияНезабавна оценка

Често задавани въпроси

Разработчик ли сте?

Инсталирайте CLI инструмента и преведете първия си файл за 2 минути.

Инсталирайте CLI инструмента

Корпоративен екип ли сте?

Все още сте обвързани с договор за TMS? Нека обсъдим миграцията.