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
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
830
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
First-Principles-of-Scrum
hiranabe
3
1.7k
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
280
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
6k
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
140
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
410
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
640
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
320
産業的変化も組織的変化も乗り越えられるチームへの成長 〜チームの変化から見出す明るい未来〜
kakehashi
PRO
1
460
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
9
4.8k
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
0
320
Game over? The fight for quality and originality in the time of robots
wayneb77
1
77
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
420
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
So, you think you're a good person
axbom
PRO
1
1.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How to build a perfect <img>
jonoalderson
1
4.8k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
GitHub's CSS Performance
jonrohan
1032
470k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
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 ͬͱ͘Θ͘͠