💨

iOSアプリのLocalizable stringsをSpread Sheetから作成

2022/12/09に公開

この記事はMoAR - Museum of AR Advent Calendar 2022の9日目の記事です。

背景

多言語対応のアプリを作るときにみなさんどうやって文言をかんりしているのでしょうか?私の関わるプロジェクトでは文言は翻訳担当の人にお願いするため、Google Spread Sheetでアプリ内で使う文言を一括管理してしまうことが多いです。それをXcodeのLocalizable Stringsへ手動反映していては間違いも増えるので、簡単に自動化しました。

絶対あるだろなと思っていくつか検索したものの、今回の動かしているXcode Cloud上でもインストール要らず、設定無しで動くようなシンプルなスクリプトで動くものがほしかったため、自作しておきました。(車輪の再発明)

(本当は英語の複数形などが出てくるときの対応はどうするのかなど、多言語対応には考えることが多いため、規模のでかいアプリの際はおとなしく、何かしらのライブラリを使うと思います。)

コード

screenshot-of-spreadsheet

このようなSpread Sheetを以下のような感じで言語ごとに.lprojフォルダの中に書き出すスクリプトです。

- Localizations
  - en.lproj (英語)
    - Localizable.strings
    - InfoPlist.strings
  - ja.lproj (日本語)
    - Localizable.strings
    - InfoPlist.strings
  - その他対応言語

最初の方のコメントは何書いてんだって感じではありますが、VSCodeのGitHub Copilotを使っているため、事前に色々AIに向けての説明ですw

最終的には、Google App ScriptでJSONで取得できるようにしたり、作品情報をオンラインで更新できるようにしたりとSpread Sheet大活躍でした。

まとめ

次のプロジェクトではGPT3に教えてもらう気がする…。

chatGPT

Discussion