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
kosako
February 23, 2018
Technology
3
1k
アプリの翻訳管理を楽にする
kosako
February 23, 2018
Tweet
Share
More Decks by kosako
See All by kosako
組織の崩壊と再生、その中で何を考え、感じたのか。 そして本当に必要だったもの
kosako
11
8.2k
その乗り換え、ちゃんと理由を説明できますか?
kosako
1
400
SREへの挑戦と失敗
kosako
0
490
Rettyにおけるエンジニア組織の歴史
kosako
0
560
組織を変えるためには何が必要なのか?
kosako
0
700
レジュメで何を見てもらえると思っていますか?
kosako
1
1.4k
オンボーディングの理想と現実
kosako
3
5.8k
組織と向き合うようになるまでの話、そして一年後
kosako
3
3.5k
MicroservicesのCache戦略
kosako
0
1.1k
Other Decks in Technology
See All in Technology
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
Everything As Code
yosuke_ai
0
490
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
400
AIと融ける人間の冒険
pujisi
0
110
20251225_たのしい出張報告&IgniteRecap!
ponponmikankan
0
110
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
4.2k
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
320
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.1k
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
5
740
AI with TiDD
shiraji
1
340
「リリースファースト」の実感を届けるには 〜停滞するチームに変化を起こすアプローチ〜 #RSGT2026
kintotechdev
0
540
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
170
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
35
Designing for Timeless Needs
cassininazir
0
110
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.5k
Scaling GitHub
holman
464
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
88
The Curious Case for Waylosing
cassininazir
0
200
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
76
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
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 ͬͱ͘Θ͘͠