Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
locizeでいい感じにi18n対応する
Search
tsukui.tomohiro
June 18, 2019
Programming
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
locizeでいい感じにi18n対応する
React Nativeにlocizeとi18nextを導入することで文言リソースの管理を開発チームから独立させました。
tsukui.tomohiro
June 18, 2019
Other Decks in Programming
See All in Programming
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
780
Event is what happens
moro
2
850
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
700
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
すこし踏み込む CancellationToken
htkym
2
1.7k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.5k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Optimising Largest Contentful Paint
csswizardry
37
4k
Claude Code のすすめ
schroneko
67
230k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
630
Done Done
chrislema
187
17k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
4 Signs Your Business is Dying
shpigford
187
23k
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.