Upgrade to Pro — share decks privately, control downloads, hide ads and more …

localization-saas-for-ios

4fd283672253efa184ec8f63fb1a8d02?s=47 hexarf
September 19, 2021

 localization-saas-for-ios

4fd283672253efa184ec8f63fb1a8d02?s=128

hexarf

September 19, 2021
Tweet

Transcript

  1. Mobility Technologies Co., Ltd. ローカライゼーションマネージメントプラット フォーム導入の話 ByungJun, Park

  2. Mobility Technologies Co., Ltd. Park ByungJun (パク ビョンジュン) Work ・

    Mobility Technologies - 2019 〜 JapanTaxi iOS アプリ開発 - 2020 〜 GO iOSアプリ開発 Hobby ・Cycling 自己紹介 2
  3. Mobility Technologies Co., Ltd. 『JapanTaxi』アプリでの ローカライゼーション 3 01

  4. Mobility Technologies Co., Ltd. 4 - 5ヶ国語対応 『JapanTaxi』アプリでのローカライゼーション

  5. Mobility Technologies Co., Ltd. - コンポーネント別のStringsにテーブル名指定 『JapanTaxi』アプリでのローカライゼーション 5

  6. Mobility Technologies Co., Ltd. POEditor 『JapanTaxi』アプリでのローカライゼーション 6

  7. Mobility Technologies Co., Ltd. 文言反映までのコミュニケーションの流れ ローカライゼーションのコミュニケーションコスト 7 プロダクト ドキュメント デザイン(figma,

    adobe xd, sketch) など アプリ (iOS, Android) Product Manager Designer Deveolper QA ローカライズ ドキュメント Translator
  8. Mobility Technologies Co., Ltd. 問題点 - ローカライズ別デザインの作成が非現実的 - リリース直前に文言が1個を変更したい場合 デザイン修正・翻訳再依頼・QA、

    開発者に内容共有 - ヒューマンエラーが多い - 翻訳する側がデザインやアプリにアクセスしてないと品質高い翻訳結果を得ら れない可能性がある 通常のローカライゼージョンプロセスでの問題 8
  9. Mobility Technologies Co., Ltd. その結果ローカライゼーションに疲れてしまうと... 通常のローカライゼージョンプロセスでの問題 9 全言語分の適 用結果を見れ ない

    忙しいと日本語か英語 だけ見るか最悪日本語 だけ見てしまう “アカウントを削除します” のつもりが...
  10. Mobility Technologies Co., Ltd. 『GO』での ローカライゼーション 10 02

  11. Mobility Technologies Co., Ltd. • L10n(=I18n)プラットフォーム選定 ◦ Lokalise ◦ Lingoport

    ◦ Transfix ◦ Memsource ◦ Phrase ◦ etc... 『GO』でのローカライゼーション 11
  12. Mobility Technologies Co., Ltd. • 求めたこと ◦ required ▪ iOS/android

    localization stringサポート ▪ api or cliツール or githubによるstringのpull ,push ▪ figma, sketch, adobe xdなどデザインツール連動 ▪ スクリーンショット ◦ optional ▪ branching, Review ▪ automatic snapshot ▪ OTA ▪ rest api 『GO』でのローカライゼーション 12
  13. Mobility Technologies Co., Ltd. Lokalise VS Phrase 13 VS

  14. Mobility Technologies Co., Ltd. Phrase - Figma 同期 Phraseを使ったローカライズ 14

  15. Mobility Technologies Co., Ltd. Phraseを使ったローカライズ 15 言語別の Page自動 生成

  16. Mobility Technologies Co., Ltd. Phraseのコンソールでの確認 Phraseを使ったローカライズ 16

  17. Mobility Technologies Co., Ltd. phrase initするだけ phrase.yml Phraseを使ったローカライズ - 導入

    17 phrase: access_token: token project_id: project pull: targets: - file: ./Localizable/<locale_code>.lproj/project_1.strings params: file_format: strings tags: project_1 encoding: UTF-8 - file: ./Localizable/<locale_code>.lproj/project_2.strings params: file_format: strings tags: project_2 encoding: UTF-8
  18. Mobility Technologies Co., Ltd. Phraseを使った文言のアプリ側反映の流れ 1. $ phrase pull 2.

    figmaで<key>を確認 3. R.string.<tag>.<key>で反映 Phraseを使ったローカライズ 18 $ phrase pull You can get the latest version from https://phrase.com/cli. Downloaded ja to APP/Localizable/ja.lproj/tag1.string s APP/Localizable/en.lproj/tag1.strin gs
  19. Mobility Technologies Co., Ltd. String placeholder 1.Placeholder styleを決める 2.client側でconvert_placeholder設定 Attributed

    string ・attribute別にバラバラ ・htmlを使う サーバサイド文言のローカライズ ・リクエストヘッダーに 言語コード ・api.phrase.com, api.lokalise.com その他の課題 19
  20. Mobility Technologies Co., Ltd. OTAの仕組み OTA(Over-The-Air) localization 20 アプリ機動 アップデート

    可能なローカ ライズがある かをチェック CDN経由でローカライズフ ァイルダウンロード Main Bundle swizzling (各 SDK) アプリ内のLocalizable.string を利用 OTA完了
  21. Mobility Technologies Co., Ltd. LokaliseのOTA実践 OTA(Over-The-Air) localization 21 // Provide

    SDK Token and Project ID and enable Swizzling Lokalise.shared.setProjectID("Project ID", token:"SDK Token") Lokalise.shared.swizzleMainBundle() func applicationDidBecomeActive(_ application: UIApplication) { Lokalise.shared.checkForUpdates { (updated, errorOrNil) in print("Updated: ¥(updated)¥nError: ¥(errorOrNil)") } } NSLocalizedString("key", comment: "comment") There is no need to update your code with swizzling enabled!
  22. Mobility Technologies Co., Ltd. OTA後にUI更新 OTA(Over-The-Air) localization 22 override func

    viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver( self, selector: #selector(updateUserInterface), name: NSNotification.Name.LokaliseDidUpdateLocalization, object: nil ) } func fetchOTALocalization { Lokalise.shared.checkForUpdates { (updated, errorOrNil) in print("Updated: ¥(updated)¥nError: ¥(errorOrNil)") } } *Live Editも別の方法で可能
  23. Mobility Technologies Co., Ltd. おわりに Hope we remove your stress

    - Developer, Desinger, Product Manager, QA and Translator 23 L10n SaaS
  24. Mobility Technologies Co., Ltd. 24 03 お知らせ

  25. Mobility Technologies Co., Ltd. 25 タクシーアプリ『GO』の開発を一緒にしませんか https://hrmos.co/pages/m o-t/jobs/2100002

  26. 文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。 Mobility Technologies Co., Ltd. 26