LocalAzz CLI/SDKでIOSアプリを翻訳する方法


のプロセスiOS アプリlocalization 落とし穴がある.あなたの何人かは、すでにドリルを知っているかもしれません.翻訳ファイルをエクスポートし、翻訳者に送ってください.あなたの翻訳者がすべてを正しく翻訳したならば、もう一度あなたのプロジェクトにそれらをインポートしてください.それは間違いなく任意の開発者のお気に入りのタスクではない、それは途中でマニュアル作業の多くが含まれます.
この記事では、このワークフローをLocalAzyで最適化する方法を示し、自動化に関するヒントを提供します.

👨‍💻 新しいアプリを作る


新しいアプリを作成することから始めましょう.あなたが既に既存のアプリケーションを持っている場合externalized strings , 次のセクションまでスキップします.
Xcodeを開き、新しいXcodeプロジェクトを作成します.次に、IOSプラットフォームとアプリケーションのテンプレートを選択します.次の画面で、製品名を選択します.私はそのプロジェクトを「Swiftuiexample」と名付けました.残りのデフォルトオプションを残して確認してください.
あなたは新しいテンプレートプロジェクトで迎えられなければなりません.

私たちの新しいプロジェクトは、すでに翻訳できる1つの文字列を含んでいます.それを適切にローカライズできるが、外部ファイルからロードする必要がある.IOSでは、これは自動的に.strings ファイル形式なので、最初に作成しましょう.
オープンファイル>>⌘N ), 文字列ファイルを選択し、"localizable . string "と命名します.プロジェクトのルートフォルダーのどこかに置いておくとよいでしょう.
その後、結果をチェックします新しいフォルダを作成しますen.lproj , あなたの開発言語によってLocalized.strings 我々がちょうど我々のプロジェクトに加えたファイル.
プロジェクトをローカライズするには、すべてのソースキーをこのファイルに外部化する必要があります.
.文字列ファイルは単純なキー値構造を持っているので、最も基本的なプロジェクトでは以下のようになります.
/* 
  Localizable.strings
  SwiftUIExample
  Created by Jan Bilek on 14.07.2021.
*/

"Hello, Localazy!"="Hello, Localazy!";
これでプロジェクトを実行し、文字列値を変更して、このファイルからテキストが自動的に読み込まれることを確認できます.
💡 ヒント:既存のアプリ
あなた以外の多くの非外部化された文字列を持つアプリケーションがある場合は、製品に移動することによって自動的にローカライズをエクスポートしようとすることができます.
これは、ローカライズ可能なリソースを持つ新しいフォルダを作成します.エクスポートされた文字列を使用してソース言語ファイルを見つけ、その内容を新しく作成しますLocalizable.strings このステップからファイルします.畝

📤 文字列をCLIでアップロードする


まだlocalazyとサインアップしていない場合は、アカウントを作成することができますhere . あなたがサインアップした後、新しいアプリケーションを作成します.私の名前Swift UI Example . その後、空のプロジェクトには、利用可能な統合の一覧を表示する必要がありますにリダイレクトされます.iOSを選択し、迅速な統合ガイドが表示されます.

自動化された方法でLocalAzyと対話するには、お使いのMac上でlocalazyのCLIツールをインストールする必要があります.いくつか異なるinstallation methods , しかし、最も簡単なのは、端末のアプリを開くとHomebrew パッケージマネージャー.
$ brew tap localazy/tools && brew install localazy
インストール終了後、ランニングlocalazy -h すべてをチェックするoptions が正常に終了したことを確認します.
次のステップとして、設定ファイルを作成しますlocalazy.json プロジェクトのルートで.この例をクイックスタートからコピーし、ファイルへのパスを変更するか、以下の例をコピーして置換することもできますreadKey and writeKey あなた自身で.
{

  "writeKey": "<your-write-key>",
  "readKey": "<your-read-key>",

  "upload": {
    "type": "ios-strings",
    "files": "en.lproj/Localizable.strings"
  },

  "download": {
    "files": "${iosLprojFolder}/${file}"
  }

}
設定はCLIにどのようにローカライズファイルを処理するかを指示します.簡単にするためにここで認証キーを設定しますがexternalized .
upload セクションでは、file type アップロードしたいファイルへのパス(パターンがサポートされています).にdownload セクションでは、自動パスを使用して出力パスとファイルを設定しますvariables .

To learn more about the configuration options and uploading existing strings, please refer to the CLI documentation.


では、実行して文字列をアップロードしようとしますlocalazy upload . 最初に設定をテストしたい場合は、実際にファイルをlocalazyにアップロードすることなく、-s フラグを指定して出力をチェックします.

その後、LocalAzyに戻ると、すぐにアップロードされたソース言語が表示されます.アップロードされたコンテンツをソース言語名の横のリストアイコンをクリックすることで閲覧できます.
💡 ヒント:アップロードステップを自動化する
ローカルに変更するたびに文字列を更新することを忘れたくない場合は、XCodeProj設定を開き、ターゲットをビルドします.最後に新しいものを追加し、localazy upload 実行するコマンド.

The same result can be achieved by running an upload step in your favorite CI tool, after each push or depending on your workflow. Read about the process in Automated Localization: GitHub Actions ❤ Localazy for more automation tips.


📥 ダウンロードこの動画またはmp 3


我々が我々のストリングをダウンロードしようとする前に、新しい言語を加えて、それを翻訳しましょう.スペイン語を選択し、すぐに言語リストに表示されます.翻訳ボタンをクリックすると、Aをもたらすでしょうtranslation このジョブを完了するために必要なすべてのコンテキストで画面を表示します.
ソースファイルの文字列の上にコメントが反映されていることに注意してください.これは、簡単にあなたのソースファイルから翻訳者のための追加のコンテキストを提供することができますので、特に便利です.

Xcodeにローカルファイルから追加の翻訳をロードするように指示するには、XCodeProj設定に再度移動し、インフォメーション->ローカライズセクションに移動し、そこにスペイン語を追加する必要があります.

私たちはすでに前のセクションで私たちのファイルのCLIダウンロードを構成しているので、今すぐダウンロードコマンドを実行しましょう.
$ localazy download
スペイン語に電話を設定すると、プロジェクトを再構築し、あなたのアプリケーションがローカライズされて表示されますああ!🎉
できるだけ多くの新しい言語を繰り返します.

💡 ヒント:自動ダウンロードのステップ
我々は、アップロードの手順を自動化したのと同じようにダウンロードを自動化することができます.プロジェクトのビルドフレーズにダウンロードコマンドを追加したり、お気に入りのCIツールでステップを構成することによって.

💡 局所化試験のヒント


別の言語をチェックするたびに設定で携帯電話の言語を変更すると退屈で時間がかかるかもしれませんしかし、あなたはすぐにも、同時に様々な言語でアプリケーションをチェックするために使用できるトリックのカップルがあります.
  • 最初に、アプリケーション言語の設定があります.さらにこのオプションを見つけるには⌘< ショートカット、それは直接このウィンドウを開きます.

  • Did you know that you can display multiple language versions of your app in the automatic preview canvas? Just add the following code to your content view and restart the preview.


    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ForEach(["en", "es"], id: \.self) { id in
                ContentView()
                    .environment(\.locale, .init(identifier: id))
            }
        }
    }
    

    📲 SDKによる翻訳の提供


    LocalAzy CLIを使用すると、特にいくつかのCI/CDツールとリリースサイクルと組み合わせて、特に便利です.しかし、私はどのような場合は、アプリケーションストア内の新しいバージョンを公開する必要がなく、すぐにあなたのユーザーにあなたの更新された翻訳を提供する方法を教えてください?
    確かにそれはLocalazy Swift SDK そして、それはあなたのアプリケーション内のいわゆる空気のアップデート(OTA)を可能にすることができます.それがどのように働くかについて、速い旅行をしましょう.
    始めるためには、Swift Package Manager . 次のURLをコピーして、迅速なパッケージ依存性に追加してください.
    https://github.com/localazy/localazy-swift
    

    次に、新しいLocalazy.plist 設定ファイルとreadKey それに.この構成ファイルでは、SDKの様々なパラメータを微調整することが可能ですただし、readKey 選択したプロジェクトからデータを正常に読み込む必要があります.より多くの設定オプションのチェックアウトthe documentation .
    次のステップインポートLocalazy_iOS あなたのビューにライブラリを更新Text 使用するコンストラクタlocalazyKey パラメータ.localazyLocalized デフォルトのメソッドではなくSDKを使用した読み込みトランスレーションへの文字列拡張.
    struct ContentView: View {
        var body: some View {
            VStack {           
                Text(localazyKey: "Hello, Localazy!")
                .padding()
            }
        }
    }
    

    To read more about the basic usage and methods of the SDK check out the documentation.



    最後のステップは翻訳をテストすることです.LocalAzyに戻って別の言語を追加します.例えばフランス語を選びました.それを完全に翻訳し、完了するには、出版プロセスを待ちます.

    現在、フランス語、再構築し、あなたのアプリケーションの言語を切り替えるには、翻訳をお使いのデバイスに表示されるはずです.すべての変更もすぐに出版後に表示する必要があります.
    ⚠️ ただSDKを含むあなたのアプリケーションの複数のレベルにキャッシュメカニズムがあるかもしれないので注意してくださいLocalazy.shared.forceReload() デバッグ方法.

    SDKの最大の利点は、既存のユーザーのライブにすべての翻訳を提供することができます、あなたが必要とするときにあなたのアプリケーションのコピーを更新し、さらにその場で新しい言語を公開することです.それはちょうど動作しますそれを試してみてください!

    📚 資源

  • Localazy Swift SDK
  • SDK documentation on Localazy
  • Full project repository on Github
  • SwiftUIExample project in Localazy