◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Cowork
◈ Cowork/2026-05-30上級

アプリのスクショPSDを一晩で15言語に展開する — Coworkでやって見えたフォントと字形の現実

Android版『綺麗な壁紙』のストア用スクリーンショットPSDを、Coworkで複数言語に一括展開した実作業の記録です。psd-toolsによるテキスト抽出、レイヤー名へ翻訳文を流し込む発想、タイ語・韓国語の字形でつまずいた現実までを残します。

Cowork46psd-toolsローカライズ3App Store9Google Play3Photoshop多言語対応3ASO

✦ プレミアム記事

デザイナーから受け取ったPSDを開いた瞬間、手が止まりました。1440×13333px、220MB。Android版の壁紙アプリ「綺麗な壁紙」のストア掲載スクリーンショットで、日本語で組まれたキャッチコピーが5枚のアートボードに散らばっています。これを少なくとも10言語、できれば15言語に展開したいところでした。けれど翌朝にはストアの差し替え作業を始めたい、という状況でした。

手作業でPhotoshopのテキストレイヤーを1枚ずつ翻訳して差し替えると、5枚 × 15言語で75画面分。コピー&ペーストの取り違えが必ず起きます。そこでCoworkに、このPSDそのものを渡して機械的に処理させることにしました。

やってみると、翻訳よりもフォントと字形のほうがずっと手強い、という当たり前の現実にぶつかります。この記事は、その一晩の作業ログです。

なぜ「スクショのローカライズ」だけは作品制作と切り離せるのか

最初に自分の中で整理したのは、ここでAIに任せてよいのかという線引きでした。個人開発を続けながら現代美術の作品制作も行っていますが、作品本体には一貫してAIを使っていません。手を動かして作ること自体に意味がある、という感覚があるからです。

一方で、作品やアプリを「世に出す」作業は、制作そのものとは別物です。ストアのスクリーンショットは、壁紙という商品の中身ではなく、それを店頭に並べるための値札やポップに近いものです。だからスクリーンショットの版組みとローカライズは、私の中では迷いなくAIに任せられるデザイナー業務に分類されます。

作品の制作とプロモーションを意識して分けておくと、こういう判断が一瞬で済みます。逆にこの線引きが曖昧なままだと、「どこまで自動化してよいのか」を毎回悩むことになり、手が止まります。

アップロードしたPSDの中身を、まず数える

ローカライズの前に、PSDが何でできているのかを正確に把握します。Coworkの作業環境にはPython版のpsd-toolsが入るので、開いて構造をダンプさせました。

なお、この環境の pip は PEP 668 で保護されているため、そのままでは externally-managed-environment で止まります。この点はCowork の Bash で pip install が externally-managed-environment エラーで止まるときに詳しくまとめていますので、先に読んでおくと詰まりません。

from psd_tools import PSDImage
 
psd = PSDImage.open("screenshot.psd")
print(f"canvas: {psd.width} x {psd.height}")
 
for layer in psd.descendants():
    kind = layer.kind  # 'type'(テキスト) / 'pixel' / 'group' など
    if kind == "type":
        print(f"[text] {layer.name!r} @ {layer.bbox} -> {layer.text!r}")
    elif kind == "group":
        print(f"[group] {layer.name!r} children={len(list(layer))}")

出力で分かったのは、5枚のアートボードがそれぞれグループになっていて、1枚あたりおよそ40個のレイヤー(うちテキストは見出し・説明の2系統)で構成されていること。

ここで重要なのは、ワークスペースに前からあったPSDとアップロード版で解像度が違った点でした。正本はアップロードされた1440×13333px・220MBのほうなので、抽出も描画もこのファイルから行うようスクリプトを固定しました。受け取ったファイルが複数あるときは、どれが正本かを最初に1回だけ確定させておくと、後の作り直しを防げます。

クラウド同期フォルダを介してPSDを受け渡す場合、bashからはファイルが見えないのに Finder には見える、という現象も起こります。これはCowork の bash が『ファイルがありません』と言うのに Finder には見える理由で扱いました。220MBのファイルを扱う前に、実体化を済ませておくと安全です。

✦

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

この記事の続きを読む

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

この記事で得られること
✦1440×13333px・220MBのストア用PSDから、psd-toolsでアートボードとテキストレイヤーを機械的に数え上げ、15言語へ流し込む実作業の全手順を追えます
✦psd-toolsが非ASCIIレイヤー名をmac_romanで書いて保存に失敗する罠を、luniブロックへ直接書き込む動作コードで回避する方法が分かります
✦翻訳文がキャンバス幅を超えたときにフォントサイズを自動縮小して収める実装と、31箇所中どこまで自動で到達し、どこから手作業に渡すべきかの線引きを持ち帰れます
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

◈ Cowork2026-10-15
一覧には見えているのに、名前で探すと0件——日本語ファイル名の「濁点が分かれている」問題を数えました
Cowork に渡した作業フォルダで、日本語名のファイルが名前検索に当たらない。約1.9万件を数えると、濁点・半濁点が分かれた名前が17件ありました。数え方と直し方を書き残します。
◈ Cowork2026-10-14
Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
Cowork に頼むたびに同じ注意を書き直していた私が、フォルダの先頭に CLAUDE.md を一枚置いて落ち着いた手順の記録です。書く三つの項目、読まれているかの確かめ方、書きすぎたときの戻し方まで、非エンジニアの方でも追える順番で並べました。
◈ Cowork2026-10-11
つまづき集を毎回全文読ませるのをやめて、番号で一節だけ引くようにしました — 約105KBが約1.5KBになった記録
Web サイト運用のつまづきを書き溜めたメモ(約105KB)を、番号で一節だけ引く仕組みに変えた記録です。最初の抽出スクリプトは120番号のうち30しか引けず、#70 は0バイトを返しました。直した awk と、節の大きさの実測値を残しています。