Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
locizeでいい感じにi18n対応する
Search
tsukui.tomohiro
June 18, 2019
Programming
0
1.9k
locizeでいい感じにi18n対応する
React Nativeにlocizeとi18nextを導入することで文言リソースの管理を開発チームから独立させました。
tsukui.tomohiro
June 18, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
KotlinConf 2025 現地参加の土産話
n_takehata
0
100
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
320
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
380
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
220
Passkeys for Java Developers
ynojima
3
870
Java on Azure で LangGraph!
kohei3110
0
150
CSC307 Lecture 17
javiergs
PRO
0
120
Development of an App for Intuitive AI Learning - Blockly Summit 2025
teba_eleven
0
120
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
960
単体テストの始め方/作り方
toms74209200
0
500
從零到一:搭建你的第一個 Observability 平台
blueswen
1
950
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
A designer walks into a library…
pauljervisheath
206
24k
How STYLIGHT went responsive
nonsquared
100
5.6k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
4
190
Facilitating Awesome Meetings
lara
54
6.4k
Agile that works and the tools we love
rasmusluckow
329
21k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Git: the NoSQL Database
bkeepers
PRO
430
65k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
Optimizing for Happiness
mojombo
379
70k
Transcript
locizeでいい感じにi18n対応する 読めない⾔言語をコピペする作業が⾟辛いので
ecbo 株式会社 Tech Lead Tsukui Tomohiro @two2q 2018年年4⽉月からecbo cloakというアプリ をReact
Nativeで開発しています。 もともと業務系Webサービスを開発して いたのでecbo cloakが初めてのアプリで す。
エクボクローク 「荷物を預けたい⼈人」と、 「荷物を預かるスペースを持つお店」 をつなぐシェアリングサービス。
ビジネスモデル
ビジネスモデル 荷物を預けるユーザー ・アプリDL→検索→予約→クレカ決済 ・バッグサイズ 300円 /スーツケースサイズ 600円
ビジネスモデル 荷物を預けるユーザー ・アプリDL→検索→予約→クレカ決済 ・バッグサイズ 300円 /スーツケースサイズ 600円 荷物を預かるオーナー ・登録/導⼊入/維持費 ¥0
・利利⽤用料料⾦金金の50%が 店舗の副収⼊入に ・新規顧客獲得も
先週⾦金金曜⽇日に今⽇日のAPPに取り上げていただきました :tada:
ecbo cloakは半数以上が外国⼈人ユーザー i18n対応はかなり重要!
翻訳はエンジニアにとって完全に専⾨門外 理理想を⽬目指した エンジニアはラベルの配置のみに責任を持ち、 ラベルの中身については翻訳チームに委ねたい
ecbo cloakでは結構理理想系に近づけたので 共有させてください!
この組み合わせ
None
locizeが提供しているもの ・ダッシュボード ・翻訳管理理 ・権限管理理 ・バージョン管理理 ・検索 ・Slack通知 ・API
ダッシュボード
ダッシュボード 翻訳済の進捗がわかる
ダッシュボード メモもつけられるよ!
これだけだとただの翻訳管理理
locizeの翻訳データをアプリと同期する
i18nextを使う JSのためのi18nライブラリ locizeの創業者がメンテナンス
i18nextのbackendにlocizeを指定する i18nextは翻訳データの取得先をカスタマイズが可能。 ファイルから取得やAsyncStorageから取得ができる。 locizeからも取得できる
i18nextのbackendにlocizeを指定する # yarn $ yarn add i18next i18next-locize-backend
i18nextのbackendにlocizeを指定する import i18next from 'i18next'; import LocizeBackend from 'i18next-locize-backend'; export
default (callback) => i18next .use(LocizeBackend) .init({ lng: 'ja', debug: true, fallbackLng: { // lngに指定した⾔言語が翻訳されていない場合に参照する⾔言語 default: ['en'] }, // locizeに登録されているnamespace。demoの場合はtranslation defaultNS: 'translation', backend: { // locizeのプロジェクトIDです projectId: 'your project id', // saveMissingがtrueの時に必要です。 apiKey: 'your api kei', // locizeで設定されているreferenceLngを指定してください。saveMissingがtrueのときに必要です。 referenceLng: 'en', // locizeのどのバージョンの⾔言語を取得するのかを指定します。デフォルトはlatestです version: 'latest', }, }, callback ); 起動時のオプションで⾔言語をjaでは なくdevにすることで画⾯面にキーが 表示される
i18nextのbackendにlocizeを指定する import i18next from 'i18next' {...} <Text>{i18next.t('key')}</Text> keyがlocizeに登録されていなかった 場合にはlocizeに⾃自動で登録するオ プションもある!
起動時にlocizeから翻訳ファイルを取得するので 常に最新の⽂文⾔言のアプリを提供できる
弊社の流れ デザイナー:⽂文⾔言は配置だけfixしてデザインする。 エンジニア:実装とlocizeへのキー登録 翻訳チーム・デザイナー:実機で確認して、違和感があれば随時変更更 翻訳チーム:新しいキーが登録されたことがSlackに通知されるので翻訳
⽂文⾔言修正業務を翻訳チームやデザイナーなどに⽢甘えることができる Engineers Translators 強⼒力力なダッシュボードを獲得できる(検索、進捗管理理、バージョン管理理など) 翻訳チームだけで他国展開可能に! ⽂文⾔言の確定を遅延できる。リリース後の変更更も⾃自分のタイミングで可能! Designers
神ツールとの声 実機で確認しながら翻訳できる翻訳チームと 中国語のコピペから解放されたエンジニアチームの 稀に⾒見見るWin-Winな関係!
いつの間にかアプリが韓国語対応していた セールスチームが韓国翻訳者に依頼し、 韓国語対応を実現。エンジニアはほぼ何もしていない。
気になるお値段は?
Tips 起動時にlocizeに翻訳ファイルを取得しに⾏行行くので、 電波が悪い時には⾔言語のキーのみが出てしまう可能性がある i18nextのbackendをlocizeとfileの⼆二つにすることで、locizeからの 取得に失敗した時にはfileから読めるようにする。 fileはpostInstallでlocizeからAPI経由で取得するようにして⾃自動化。
少ない⼈人数で プロダクトをスケール出来る仕組みを構築したいので いいサービスご存知でしたら教えてください!
Qiitaにもコードがあります https://qiita.com/tsukushi0104/items/74a380ea9642cae91990
FIN.