Skip to main content
AI agent network visualization

アプリを壊さずに .strings ファイルを翻訳

キー、書式指定子、正しい複数形ルールを維持し、Localizable.strings を数日ではなく数秒で翻訳します。

Apple .strings の翻訳は煩雑でミスが起きやすい作業です

Localizable.strings をエクスポートして翻訳者に渡すか汎用ツールに貼り付けると、書式指定子やエスケープシーケンスが壊れ、複数形ルールも崩れがちです。その後、日本語で起動した際にアプリがクラッシュする原因を何時間もデバッグすることになります。

%@、%d、%1$@ などの書式指定子が汎用ツールによって翻訳、並べ替え、削除される

エスケープシーケンス(\n、\"、\t)が破損または二重エスケープされ、文字列解析が失敗

.stringsdict の複数形ルールには言語固有の CLDR カテゴリーが必要だが、多くのツールは完全に無視

翻訳者コメントと文脈のヒントが削除され、誤訳につながる

原文(英語)
Base.lproj/Localizable.strings
/* Localizable.strings (English) */

"welcome_title" = "Welcome to MyApp";
"login_button" = "Sign In";
"greeting" = "Hello, %@!";
"items_count" = "%d items in your cart";
"transfer" = "Send %1$@ to %2$@";
翻訳(日本語)
ja.lproj/Localizable.strings
/* Localizable.strings (Japanese) */

"welcome_title" = "MyAppへようこそ";
"login_button" = "サインイン";
"greeting" = "%@さん、こんにちは!";
"items_count" = "カートに%d個のアイテム";
"transfer" = "%2$@に%1$@を送信";

i18n Agent が維持する要素

書式指定子

位置指定(%1$@)と型指定(%d、%f、%@)の指定子を検出し、そのまま維持

エスケープシーケンス

改行(\n)、タブ(\t)、引用符(\")、Unicode エスケープを正しく維持

.stringsdict の複数形

対象言語ごとに CLDR 複数形カテゴリー(zero、one、two、few、many、other)を正しく設定

コメントと文脈

翻訳者コメントと開発者向け注記を維持し、翻訳の文脈を保持

Apple の各プラットフォームに対応

SwiftUI
UIKit / AppKit
Xcode String Catalogs
macOS アプリ
watchOS / tvOS
Swift パッケージ

iOS ローカライズ向けオープンソースツール

i18n Agent for Xcode

Xcode にワンクリックのローカライズを追加する macOS メニューバーアプリです。作業中のプロジェクトを自動検出し、.strings、.xcstrings、.stringsdict ファイルを翻訳して、正しい .lproj ディレクトリに書き込みます。既存の翻訳を翻訳メモリとして登録し、プロジェクト全体で一貫した結果を得ることもできます。

AppleScript で作業中の Xcode プロジェクトを自動検出
Pull:ファイルを翻訳し、正しい .lproj ディレクトリに書き込み
Push:既存の翻訳を翻訳メモリとしてアップロード
メニューバーに常駐し、.strings、.xcstrings、.stringsdict に対応
GitHub で見る

LocaleChain

iOS には既知の問題があります。利用者の地域ロケール(pt-BR など)がない場合、関連するロケール(pt-PT など)を試さず、直接英語へフォールバックします。LocaleChain は、設定可能なフォールバックチェーンでこの問題を解決する Swift パッケージです。設定は 1 行だけで、既存のコードを変更する必要はありません。

1 行で設定:LocaleChain.configure()
既存の NSLocalizedString、SwiftUI Text、.stringsdict を変更せずに利用可能
ポルトガル語、スペイン語、フランス語、ドイツ語などのフォールバックチェーンを内蔵
Swift Package Manager からインストール可能、MIT ライセンス
GitHub で見る

仕組み

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 の契約に縛られていませんか?移行についてご相談ください。