CLAUDE LABEN
SLACK — Claude TagがSlackでベータ提供。チャンネルで@Claudeにタスクを委譲し、ツール・データ・コードベースを接続できますSECURITY — Claude Codeにsandbox.credentials設定が追加。認証ファイルや秘密の環境変数の読み取りをブロックできますFIX — リモートMCPツール呼び出しの5分ハングを修正。応答なしで止まらずエラーで中断しますMCP — 組織向けMCPコネクタがOktaプロビジョニングに対応。初回ログインでゼロタッチ接続できますMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますSLACK — Claude TagがSlackでベータ提供。チャンネルで@Claudeにタスクを委譲し、ツール・データ・コードベースを接続できますSECURITY — Claude Codeにsandbox.credentials設定が追加。認証ファイルや秘密の環境変数の読み取りをブロックできますFIX — リモートMCPツール呼び出しの5分ハングを修正。応答なしで止まらずエラーで中断しますMCP — 組織向けMCPコネクタがOktaプロビジョニングに対応。初回ログインでゼロタッチ接続できますMODEL — Claude Fable 5は100万トークン文脈・常時アダプティブ思考・128K出力を備えますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられます
記事一覧/API & SDK
API & SDK/2026-06-26上級

Claude API でApp Storeの多言語ストア掲載情報を文字数制限つきで生成する

翻訳をそのまま貼ると文字数制限で弾かれるApp Storeの掲載情報を、Claude APIの構造化出力と再検証・修復ループで各ロケールの上限内に収めて生成する実装を解説します。

api-sdk12tool-use19localization2app-store3structured-output4

プレミアム記事

App Store Connect のローカライズ画面に各言語の Subtitle を貼り付けた瞬間、「30文字を超えています」と赤く表示される——個人開発で多言語対応のアプリを更新するたびに、私自身が毎回ぶつかってきた地点です。英語で考えた魅力的なキャッチコピーを翻訳すると、ドイツ語では平気で1.5倍に膨らみ、日本語では全角で詰め込みすぎて読めなくなります。

翻訳の品質そのものより先に、この「フィールドごとに違う、言語ごとに違う文字数の壁」が運用のボトルネックになります。ここでは Claude API の Tool Use(構造化出力)を使い、各ロケールの掲載情報を上限内に収めながら生成し、超過したら自動で詰め直す仕組みを作っていきます。

なぜ翻訳をそのまま貼ると弾かれるのか

App Store Connect のローカライズ可能なメタデータには、フィールドごとに固定の文字数上限があります。2026年6月時点での主な上限は次の通りです(将来変わり得るため、公式の最新値は必ず確認してください)。

フィールド上限(文字)役割
App名(name)30検索インデックス対象。最重要
サブタイトル(subtitle)30検索インデックス対象。一覧での補足
キーワード(keywords)100カンマ区切り全体で100文字。非表示
プロモーションテキスト(promotional_text)170審査なしで差し替え可能
概要(description)4000検索インデックス対象外

厄介なのは、この上限がコードポイント単位で数えられる点です。バイト数ではないので、日本語の全角文字も「1文字」として扱われます。つまり日本語30文字は英語30文字と同じ枠ですが、日本語は1文字あたりの情報量が多いので、英語の発想で書くと逆にスカスカになります。一方ドイツ語やフィンランド語のような連結語の多い言語は、同じ意味でも文字数が伸びて簡単に上限を突破します。

さらにキーワードフィールドには独自の作法があります。カンマ区切りで合計100文字、スペースは入れないa,b,c であって a, b, c ではない)、App名に含めた単語は重複して入れない、複数形・単数形を両方入れない——これらを守らないと貴重な100文字を無駄にします。翻訳エンジンはこうした「プラットフォーム固有の制約」を一切知りません。

文字数制限を「スキーマ」として設計する

最初にやるべきは、上限を散らばった定数ではなく、1か所のスキーマとして固定することです。後段の生成・検証・修復がすべてこの定義を参照します。

# app_store_limits.py
# App Store Connect のローカライズ可能なメタデータと文字数上限(2026年6月時点)
FIELD_LIMITS = {
    "name": 30,
    "subtitle": 30,
    "keywords": 100,
    "promotional_text": 170,
}

この FIELD_LIMITS をそのまま Tool Use の入力スキーマ(maxLength)に流し込みます。スキーマで上限を宣言しておくと、モデルへの指示が二重化され、破られたときの検証も同じ数値で行えます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
翻訳をそのまま貼って文字数オーバーで弾かれていた状態から、各ロケールのSubtitleやキーワードを制限内に収めて生成できるようになります
Tool Useの構造化出力と再検証・修復ループを組み合わせ、モデルが上限を破っても自動で詰め直す実装が手に入ります
キーワードフィールドの100文字を無駄なく使う正規化処理と、用語集をプロンプトキャッシュで共有してコストを抑える設計を導入できます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-06-17
多言語アプリの訳ブレを止める — Batch API と用語集キャッシュで Localizable.strings を一貫翻訳する設計
UI文字列を1本ずつ翻訳すると用語がブレます。Claude の Message Batches API と用語集のプロンプトキャッシュを組み合わせ、Localizable.strings を10言語以上へ一貫翻訳するパイプラインを、実測コストと落とし穴つきで設計します。
API & SDK2026-05-05
Claude API のツール実行エラーを Claude 自身に診断させる — 自己修正ループの設計と本番実装
Tool Use実装で避けられないツール実行エラーの対処法を解説。is_errorフラグを活用してエラー情報をClaudeに返し、自己診断・修正ループを実装する実践的なPythonコードと本番でのアンチパターンも紹介します。
API & SDK2026-05-05
「考えながら調べる」AIエージェントの作り方 — Claude API 拡張思考 × Tool Use 本番実装ガイド
Claude APIの拡張思考(Extended Thinking)とTool Useを組み合わせる実装パターンを詳解。頻出エラーの根本原因、リサーチエージェントの完全実装コード、本番でのコスト・タイムアウト設計まで体系的に解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →