LocalePack
ChromeFirefoxEdgeOperaSafariCWS 掲載ページ
Vue.jsReact
Next.jsi18nextReact Native
開発者向けガイド導入事例
Safari 拡張機能のために最適化

AI ローカリゼーションで Safari 拡張機能

元の messages.json をアップロードし、対象言語を選び、1回の支払いで、すぐに公開できる _locales の ZIP をダウンロードできます。

プレースホルダー安全な翻訳
Safari の messages.json に準拠
明確な料金体系
messages.json
ソース言語(例)
{
  "appName": {
    "message": "My Extension",
    "description": "Name"
  },
  "welcomeMsg": {
    "message": "Hello, $USER$!",
    "placeholders": {
      "user": {
        "content": "$1"
      }
    }
  }
}
ドイツ語(出力)
{
  "appName": {
    "message": "Meine Erweiterung",
    "description": "Name"
  },
  "welcomeMsg": {
    "message": "Hallo, $USER$!",
    "placeholders": {
      "user": {
        "content": "$1"
      }
    }
  }
}
52 locales

仕組み

Safari 拡張機能 をローカライズするための簡単な3ステップ。翻訳は支払い後に実行され、ジョブをキューに入れて数分で ZIP を生成します。

01

アップロード

元の messages.json ファイルをドロップしてください。すぐに解析し、Safari 拡張機能 の形式を検証します。

02

言語を選択して料金を確認

52言語から選べます。支払い前に、ファイルサイズに基づく明確な料金を確認できます。

03

ZIP をダウンロード

Stripe で1回だけ支払います。すべての _locales/{lang}/messages.json ファイルを生成し、ZIP にまとめます。

リアルタイム料金デモ

明確な料金見積もり

アップロード前に支払い金額を正確に確認できます。最終見積もりは、アップロード後に文字列の長さと選択した言語に基づいて算出されます。

1. ファイルをアップロード

ここにmessages.jsonをドロップ

またはクリックして参照

Safari WebExtension 形式のみ。最大 500KB。

2. 言語を選択

|

55言語中3言語を選択

3. お見積もり

選択した言語数3

最終価格は、チェックアウトページでファイルをアップロード後に算出されます

一括払い • サブスクリプションなし

開発者のために設計

Safari 拡張機能のロケール形式に特化。汎用的な翻訳ツールではありません。

Safari形式に対応

Safari 拡張機能のmessages.json構造(message、description、placeholders)に特化して構築されています。

プレースホルダー保護

$PLACEHOLDER$構文をそのまま正確に保持します。変数はすべての言語でそのまま維持されます。

説明のコンテキスト

descriptionフィールドを読み取り、より正確なAI翻訳のためのコンテキストヒントとして活用します。

ZIPでエクスポート可能

正しい_locales/{lang}/messages.jsonのフォルダ構成でZIPをダウンロードできます。拡張機能にそのまま入れるだけです。

並列処理

すべての言語を同時に翻訳します。ほとんどのジョブは5分以内に完了します。

一括払い

サブスクなし、月額料金なし。ジョブごとに一度支払えば、いつでもダウンロードできます。

Safari 拡張機能の i18n の仕組み

Safari Web Extensions は Chrome や Firefox と同じ WebExtension 形式を使用しており、_locales/{locale}/messages.json 構造も完全に同一です。Apple は既存の拡張機能を簡単に移植できるよう、標準形式を採用しました。browser.i18n API は Safari Web Extensions で利用でき、LocalePack の出力は完全に互換です。

_locales/ フォルダー構成
_locales/
├── en/
│   └── messages.json   ← default_locale
├── de/
│   └── messages.json
├── fr/
│   └── messages.json
└── ja/
    └── messages.json
messages.json
{
  "appName": {
    "message": "My Extension",
    "description": "Extension name"
  },
  "greeting": {
    "message": "Hello, $USER$!",
    "placeholders": {
      "user": { "content": "$1" }
    }
  }
}

ランタイムAPI

browser.i18n

呼び出し例

browser.i18n.getMessage("appName")

マニフェストで必須

"default_locale"

Mac App Store と iOS App Store は、_locales/ にユーザーの言語が含まれている場合、拡張機能のローカライズされた名前と説明を表示します。App Store Connect は _locales/ フォルダ内のロケールコードを尊重します。

Safari Web Extensions の i18n メモ →

Safari shares the format, not the pipeline

Apple adopted the standard WebExtension format, so your locale files port directly — the difference is in how Safari extensions are built and distributed.

Standard WebExtension layout
Safari Web Extensions use the same _locales/{locale}/messages.json structure as Chrome and Firefox. Apple adopted the standard format specifically to make porting existing extensions straightforward.
browser.i18n is available
The browser.i18n API works in Safari Web Extensions, so runtime string lookup behaves the way it does on Firefox.
Distribution runs through App Store Connect
Unlike the other browsers, a Safari extension is distributed through the Mac and iOS App Stores, so store metadata is managed in App Store Connect rather than a web dashboard.
One source, every browser
Because the format is shared, the same messages.json you translate for Chrome covers Safari — you are porting a build, not redoing localization.

Safari's format compatibility is real, but its build and submission pipeline is not shared with the Chromium browsers — budget time for that separately.

なぜ汎用ツールではダメなのか?

汎用の翻訳ツールはSafari 拡張機能形式を理解しません。

LocalePack
手動翻訳
汎用TMS
セットアップ時間2分言語ごとに数時間30分以上
料金の透明性
Safari形式の安全性
プレースホルダー保護
速度(52言語)5分未満週時間
最適な用途Safari 拡張機能小規模プロジェクトエンタープライズ向け Web アプリ

導入事例

LocalePack を使って、最大 52 言語でグローバルなユーザーに届けた実際のプロジェクト。

AstrologerAI AI astrology app localized into 52 languages

AstrologerAI: an AI astrology app localized into 52 languages

How the AstrologerAI app translated its entire experience into 52 languages with LocalePack — 6.3M tokens for $58.73 — to reach a worldwide audience in their own language.

DevToys.pro developer tools web app localized into 52 languages

DevToys.pro: 400% international traffic growth across 52 languages

How the DevToys.pro web app translated its entire UI into 52 languages with LocalePack — 5.8M tokens for $58.44 — and quadrupled its international organic traffic.

DevToys New Tab Chrome extension localized into 52 languages

DevToys New Tab: a Chrome extension localized UI + store listing in 52 languages

How the DevToys New Tab Chrome extension localized both its in-extension UI and its Chrome Web Store listing into 52 languages to reach a global audience.

The LocalePack site localized into 52 languages with LocalePack

LocalePack localized itself into 52 languages — with LocalePack

We used our own tool to translate the entire LocalePack site into 52 languages — 2.9M tokens for $27.37 — so developers worldwide find us in their own language.

成功事例をすべて見る

拡張機能開発者に信頼されています

“面倒な作業を何時間も節約できました。messages.json をアップロードしたら、必要な形式そのままで完璧な翻訳が返ってきました。”

Sarah K.

個人開発者、AdBlock 拡張機能

“ついに Safari 拡張機能の形式を理解してくれるツールが登場。翻訳後に壊れたプレースホルダーを直す必要がなくなりました。”

Marcus T.

拡張機能メンテナー

“透明な料金体系が決め手でした。何かをアップロードする前に、支払う金額が正確に分かりました。”

Dev J.

オープンソース貢献者

52

対応ロケール

100%

プレースホルダーを安全に保持

ZIP

すぐにリリース可能

よくある質問

LocalePack について知っておくべきことをまとめました。

Related developer guides

Deep dives on the formats, APIs and errors behind this page — written for developers, not translators.

Safari Web Extensions localization notes

How Safari Web Extensions use the same messages.json/_locales format as Chrome and Firefox, and what to know for Mac App Store submission.

messages.json format explained (with placeholders)

A complete reference for the WebExtension messages.json format: the message, description, and placeholders fields, $PLACEHOLDER$ syntax, $1 positional substitutions, and common mistakes.

Store listing localization vs in-extension i18n (Chrome + AMO pitfalls)

The difference between localizing your Chrome Web Store listing and localizing in-extension strings — and the _MSG_ pattern that bridges them.

Chrome extension locale codes: all 55

Every locale code Chrome accepts as a _locales folder name, with language and native names, the underscore-vs-hyphen trap that makes pt-BR silently ignored, and how Chrome picks a locale at runtime.

Browse all guides →

Safari 拡張機能 を世界中にリリースする準備はできましたか?

一度支払い - ZIP をダウンロード - 世界中にリリース

LocalePackを試す
LocalePack
ガイドプライバシー利用規約サポート

© 2025 LocalePack. All rights reserved.

このプロジェクトは次を使用して翻訳されました LocalePack logoLocalePack