# gt: General Translation CLI tool: .xcstrings
URL: https://generaltranslation.com/ja/docs/cli/reference/formats/xcstrings-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation CLI で Apple String Catalog を翻訳します。.xcstrings ファイル形式の API リファレンス。

CLI は `.xcstrings` ファイルの翻訳に対応しています。このファイルは、ソースコンテンツとすべてのロケールを 1 つの String Catalog にまとめて格納します。利用には `gt` 2.21.0 以降が必要です。

## 概要 [#overview]

| トピック                   | 説明                                            |
| ---------------------- | --------------------------------------------- |
| [設定](#config)          | カタログを選択し、すべてのロケールを同一ファイル内にまとめて保持します。          |
| [仕組み](#how-it-works)   | アップロード時にソースコンテンツを分割し、ダウンロード時に翻訳済みロケールをマージします。 |
| [ローカル編集](#local-edits) | 同じカタログ内の他のロケールを変更として扱うことなく、編集内容を同期します。        |
| [エラー](#errors)         | 無効なカタログやサポートされていない path 設定を特定します。             |

## 設定 [#config]

`files` の下に `xcstrings` エントリを追加し、各カタログを直接指定する `include` 配列を記述します。

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "ja"],
  "files": {
    "xcstrings": {
      "include": ["Resources/Localizable.xcstrings"]
    }
  }
}
```

String Catalog はすべてのロケールを 1 つのファイルに保持し、インプレースで更新されます。`include` パターンに `[locale]` を含めることはできず、`xcstrings` の config では `transform` を指定できません。

カタログの `sourceLanguage` は、`defaultLocale` と同じ正規ロケールに解決される必要があります。たとえば、`"sourceLanguage": "en"` のカタログでは `"defaultLocale": "en"` を使用できますが、`"defaultLocale": "fr"` は使用できません。

## 仕組み [#how-it-works]

アップロード時、CLI はカタログを読み取り、ソースのみのスライスを API に送信します。各エントリは、ソース言語のローカライゼーションが存在する場合はそれを保持します。キー自体をソーステキストとして使用するエントリは、`localizations` フィールドを持たないままスライスに含まれます。既存の対象ロケールがソースコンテンツとしてアップロードされることはありません。

ダウンロード時、CLI は各対象ロケールをディスク上のカタログにマージします。変更されるのは、一致するエントリにおけるそのロケールのローカライゼーションのみです。その他のロケール、コメント、抽出状態、置換、バリエーション、認識されないフィールドはそのまま残ります。

ダウンロードした翻訳に、ローカルのカタログにもう存在しないキーが含まれている場合、CLI はそのキーをスキップして警告を出力します。ダウンロードされたファイルは、末尾に改行を付けたスペース2つインデントの JSON としてシリアライズされます。

## ローカル編集 [#local-edits]

すべてのロケールが 1 つのファイルを共有している場合でも、ダウンロードの記録はロケールごとに保存されます。これにより、あるロケールがカタログにマージされた後に、変更されていない対象ロケールがローカル編集として送信されるのを防ぎます。

編集した対象ロケールのローカライゼーションを送信するには、[`gt save-local`](/docs/cli/reference/commands/save-local)、[`gt translate --save-local`](/docs/cli/reference/commands/translate)、または [`options.saveLocal: true`](/docs/cli/reference/config#save-local) を使用してください。ローカル編集の同期はオプトイン方式です。

ダッシュボードでも `.xcstrings` の翻訳を編集可能な Raw ビューで開けます。編集を保存すると、カタログ内で選択中の対象ロケールのみが更新されます。

## エラー [#errors]

* 不正なJSON、`sourceLanguage`の欠落や空値、`strings`フィールドがオブジェクトでない場合、CLIはそのカタログをスキップし、検証エラーを報告します。
* `sourceLanguage`が`defaultLocale`と一致しない場合、ファイルがアップロードされる前に実行が停止します。
* `include`パターンに`[locale]`が含まれる場合、または`xcstrings.transform`が設定されている場合、翻訳済みロケールを元のカタログにマージする必要があるため、実行が停止します。
* 予約キー`__proto__`は、文字列マップおよびローカライゼーションマップでは拒否されます。`constructor`や`prototype`という名前のキーはサポートされています。

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
