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
アプリの翻訳管理を楽にする
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kosako
February 23, 2018
Technology
3
1k
アプリの翻訳管理を楽にする
kosako
February 23, 2018
Tweet
Share
More Decks by kosako
See All by kosako
組織の崩壊と再生、その中で何を考え、感じたのか。 そして本当に必要だったもの
kosako
11
8.3k
その乗り換え、ちゃんと理由を説明できますか?
kosako
1
420
SREへの挑戦と失敗
kosako
0
500
Rettyにおけるエンジニア組織の歴史
kosako
0
570
組織を変えるためには何が必要なのか?
kosako
0
710
レジュメで何を見てもらえると思っていますか?
kosako
1
1.4k
オンボーディングの理想と現実
kosako
3
5.8k
組織と向き合うようになるまでの話、そして一年後
kosako
3
3.6k
MicroservicesのCache戦略
kosako
0
1.1k
Other Decks in Technology
See All in Technology
Kubernetesにおける推論基盤
ry
1
410
Keycloak を使った SSO で CockroachDB にログインする / CockroachDB SSO with Keycloak
kota2and3kan
0
150
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
1.8k
Go標準パッケージのI/O処理をながめる
matumoto
0
220
社内レビューは機能しているのか
matsuba
0
140
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
13k
AlloyDB 奮闘記
hatappi
0
130
VPCエンドポイント意外とお金かかるなぁ。せや、共有したろ!
tommy0124
1
680
進化するBits AI SREと私と組織
nulabinc
PRO
1
240
楽しく学ぼう!ネットワーク入門
shotashiratori
1
460
Everything Claude Code を眺める
oikon48
10
6.7k
AIエージェント、 社内展開の前に知っておきたいこと
oracle4engineer
PRO
2
150
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.1k
Designing for Timeless Needs
cassininazir
0
170
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
A designer walks into a library…
pauljervisheath
210
24k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
340
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
What does AI have to do with Human Rights?
axbom
PRO
1
2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
ΞϓϦͷ༁ཧΛָʹ͢Δ QPUBUPUJQT "LJIJSP,PTBLP
ࠃ/P໊࣮άϧϝαʔϏε3FUUZͷӡӦ ݄ؒສ66 ຊɾ߳ߓɾλΠͰαʔϏεఏڙ
ɾ"LJIJSP,PTBLP ɾΤϯδχΞϦϯάϚωʔδϟʔ ɾͬͯΔ͜ͱ J04 1)1 "84 About Me
w ݄ϑϧϦχϡʔΞϧ w 0CKFDUJWF$4XJGU w 8FC7JFXϕʔε/BUJWF 3FBDU/BUJWF Ұ෦ w
3FEVY w 42-JUF3FBMN w 'JSFCBTF ੳ RettyͷiOSΞϓϦʹ͍ͭͯ
w ຊɾ߳ߓɾλΠͰαʔϏεఏڙ w ຊޠɾӳޠɾ౦ޠɾλΠޠ͕͑·͢ w ͷݴޠઃఆͰͳ͘ɺΞϓϦͰݴޠࢦఆ͢Δ RettyͷiOSΞϓϦʹ͍ͭͯ
ҰൠతͳݴޠϦιʔεཧ
w ༁ͷϚελʔΛεϓϨουγʔτΤΫηϧͰ༻ҙ͢Δ w ͦΕͧΕͷݴޠ͝ͱʹ-PDBMJ[BCMFTUSJOHTΛ༻ҙ͢Δ த ,FZ7BMVFͳײ͡ͷςΩετσʔλ w ίʔυதʹ/4-PDBMJ[FE4USJOH LFZ
DPNNFOU ͷΑ͏ͳܗͰຒΊࠐΜͰ͍͘ w TUPSZCPBSEͰݴޠϦιʔεΛ༻ҙ͢Ε༁Λద༻͢ Δ͜ͱ͕Մೳ ͍ͨͩ͠উखΑ͘ͳ͍ w Ϗϧυͯ͠༁͕ө͞Ε͍ͯΔ͔֬ೝ͢Δ ҰൠతͳݴޠϦιʔεཧ
ΊΜͲ͍͘͞
w ༁Օॴͷίʔυ͕ w ໊લܾΊΔͷ͕ΊΜͲ͍͘͞ w ө͢Δͷʹ͍͍ͪͪ࡞ۀ͕ൃੜ͢Δ w λΠϙͱ͔ϛεى͖͍͢ w ϚελʔͱTUSJOHϑΝΠϧ͕ผ
Ͳ͕͜ΊΜͲ͍͘͞?
Ͳ͏ʹ͔ͯ͠ΈΔ
w (PPHMF4QSFBETIFFUΛ͏ w (PPHMF"QQT4DSJQUͰTQSFBETIFFU͔ΒΞϓϦ༻ͷ ϦιʔεϑΝΠϧΛੜ͢Δ w (PPHMFͷόοΫΞοϓͱಉظΛͬͯϩʔΧϧʹࣗಈ%- w ϑΥϧμࢹΛߦ͍ɺมߋ͕͋ͬͨ߹ʹϓϩδΣΫτϑΝ Πϧʹࣗಈಉظͤ͞Δ
ํ
w NBTUFS keyΛ࡞ΔͨΊͷmaster large,middle,smallͷ3֊ʹͯ͠ɺlargeͱmiddlemasterʹొ͞ΕͨͷΛඞͣ༻͢Δ smallΑ͘͏ͷ͚ͩmasterʹొͯ͠ɺجຊతʹͦͷͰϢχʔΫͳͷΛ࠾༻ w 3FBE.F ͬͯΒ͏্Ͱɺޙ͔Βೖ͖ͬͯͨਓͷͨΊͩͬͨΓΤϯδχΞҎ֎͏͜ͱΛߟྀͯ͠Read MeΛ༻ҙ ্༷ͷҙϦιʔεϑΝΠϧΛੜ͢ΔͨΊͷϘλϯͳͲΛ͓͍͍ͯ·͢
࠷ॳϚελʔϑΝΠϧ͕มߋ͞ΕΔͨͼʹॻ͖ग़͠Λߦ͍ͬͯͨͷͰ͕͢ɺ࡞ۀதͷͷ͕ॻ͖ग़͞Εͯ͠·͏ ͋Γɺ໌ࣔతʹॻ͖ग़͠Λ࣮ߦ͢ΔΑ͏ʹ͠·ͨ͠ w MPDBMJ[F ࣮ࡍͷ༁σʔλ IDͷॏෳνΣοΫ༁͞Εͨจݴ͕શͯಉ͡߹alert͕͕͋ΔΑ͏ʹ͍ͯ͠·͢ Google Spreadsheet
None
w (PPHMF%SJWFʹอଘ༻ͷϑΥϧμΛ࡞ͬͯ*%ΛϝϞ͢Δ w ("4ͰอଘઌͷυϥΠϒʹTUSJOHϑΝΠϧΛॻ͖ग़͢ Google Apps ScriptͰσʔλΛॻ͖ग़͢
None
w εΫϦϓτΛ࣮ߦ w ࢦఆͨ͠ϑΥϧμʹ֤ݴޠ༻ͷTUSJOHTϑΝΠϧͱFOVN ͕ఆٛ͞ΕͨTXJGUϑΝΠϧ͕ੜ Google Apps ScriptͰσʔλΛॻ͖ग़͢
w ϑΝΠϧΛΫϥΠΞϯτ1$ʹಉظͤ͞Δ w ࣗಈతʹϓϩδΣΫτϑΝΠϧʹө͞ΕΔΑ͏ʹ͢Δ ੜͨ͠ϑΝΠϧΛϓϩδΣΫτʹө
w (PPHMF%SJWF·ͱΊͯμϯϩʔυ͠Α͏ͱ͢Δͱ <KBTUSJOHTUYU>Έ͍ͨʹUYU֦ுࢠ͕͍ͭͯ͠·͏ w (PPHMF%SJWFͷόοΫΞοϓͱಉظΛΠϯετʔϧ IUUQTXXXHPPHMFDPNJOUMKB@"--ESJWFEPXOMPBE w (PPHMF%SJWF͔Βઌ΄ͲݴޠϑΝΠϧ͕ೖͬͨϑΥϧμ Λಉظ͢Δ ϑΝΠϧΛΫϥΠΞϯτPCʹಉظ
w GTXBUDIΛ༻ w GTXBUDIS<NBDͷHPPHMFESJWFͷQBUI>cYBSHT O*\^DQ\^<өઌϑΥϧμͷQBUI> w ݴޠϦιʔε͕มߋ͞ΕΔͱࣗಈతʹϓϩδΣΫτʹө ͞ΕΔΑ͏ʹͳΔ ࣗಈతʹϓϩδΣΫτϑΝΠϧʹө
w 3FUUZͰ/4-PDBMJ[FE4USJOH༻͍ͯ͠ͳ͍ w 4USJOHʹMPDBMJ[FEͱ͍͏FYUFOTJPOΛੜͯ͠ରԠ w IPHFIPHFMPDBMJ[FE w ΞϓϦͷબݴޠΛݟͯରԠ͢ΔݴޠϦιʔεΛදࣔ ద༻͢Δ
w lIPHFIPHFͷ෦ίϐϖͰೖΕΔඞཁ͋Γ w λΠϙͨ࣌͠ͳͲରԠ͢ΔݴޠϦιʔε͕ͳ͍߹LFZ໊ ͕ͦͷ··ग़ͯ͠·͏ w ؾܰʹLFZ໊Λม͑Δ͜ͱΓʹ͍͘ ՝
͏ͪΐͬͱָʹ͍ͨ͠
enum Localize: String { case generalLabelCancel = "general.label.cancel" case generalLabelDelete
= "general.label.delete" case generalLabelBrowsingHistory = "general.label.browsing_history" func localized() -> String { return self.rawValue.localized() } } enumΛ͏
w FOVN("4͔Βࣗಈੜ w FOVNલlIPHFIPHFzMPDBMJ[FE w FOVNޙ-PDBMJ[FIPHFIPHFMPDBMJ[FE w FOVNʹॻ͖ग़͢͜ͱʹΑΓαδΣετޮ͘
w ϖʔδ໊7JFX$POUSPMMFS໊͔Β୳ͤΔ w λΠϙݴޠϦιʔεͷ༰͕ؒҧ͍ͬͯͨΓSFOBNF͞ Εͨ߹ϏϧυΤϥʔʹͳΔ enumΛ͏
w 2JJUBʹΑΓৄࡉ͕͋Γ·͢ w IUUQTRJJUBDPNBLJJUFNT FFBGF ͬͱ͘Θ͘͠