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
endam
May 25, 2018
Programming
4
1.2k
僕たちはサービスの多言語化にどう立ち向かうべきか
endam
May 25, 2018
Tweet
Share
More Decks by endam
See All by endam
Web開発における開発環境構築の歴史と変遷〜原始時代から現代(Docker)まで〜
endam
0
140
レガシーなフレームワークで不本意ながらもとことん頑張ってみた
endam
0
370
What is Atomic Design?
endam
0
33
Angular × Atomic Designでデザインリニューアルを行った話
endam
2
540
Postman
endam
0
400
Engineer's Mind
endam
1
110
Be the best development team
endam
0
78
Yarnの導入
endam
0
490
Web APIの現場あるある解決特集〜こうして僕たちのAPIは使いやすくなった〜
endam
0
480
Other Decks in Programming
See All in Programming
Folding Cheat Sheet #1
philipschwarz
PRO
0
210
CircleCIを活用して AWSへの継続的デリバリーを 実践する
coconala_engineer
1
230
Ruby Pattern Matching
bkuhlmann
0
920
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
160
エンターテイメント業界で利用されるAWS
demuyan
0
200
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
ONE WEDGE_company_guide
1wedge_one
0
380
今、知っておきたい! 生成AIエージェントの世界
elith
3
340
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
120
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
The Cost Of JavaScript in 2023
addyosmani
14
3.8k
Thoughts on Productivity
jonyablonski
57
3.8k
The Language of Interfaces
destraynor
151
23k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Adopting Sorbet at Scale
ufuk
67
8.6k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
38k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
Designing with Data
zakiwarfel
95
4.8k
In The Pink: A Labor of Love
frogandcode
138
21k
Transcript
© ISAO | CONFIDENTIAL ͨͪαʔϏεͷଟݴޠԽʹ Ͳ͏ཱ͔ͪ͏͖͔ ٢ాক೭
٢ాক೭ ͩʙ·͞ w݄ʹגࣜձࣾ*4"0ೖࣾ wνʔϜίϥϘϨʔγϣϯαʔϏε ʮ(PBMPVTʯͷϦʔυΤϯδχΞ wΤϯδχΞ࠾༻ɾڭҭʹܞΘ͍ͬͯΔ !FOEBN
MISSION 9 (PBMPVTͱ νʔϜͰΰʔϧΛୡ͢ΔͨΊ ͷϏδωεSNS 㾎ҙࢥܾఆͷεϐʔυ͕രʹ 㾎ࣾһશһاۀͷϏδϣϯΛਁಁ 㾎ಁ໌ੑͷ͋ΔධՁ͕Ͱ͖Δ 㾎৫ͷนͳΜͯײ͡ͳ͍
㾎ͳΜ͔ͩɺࣄָ͕͘͠ͳΔ
9 ւ֎Ͱఏڙ͍ͯ͠Δ
9 ࠓ͜ͷ(PBMPVTͷଟݴޠԽͷ ΈΛม͑Α͏ͱͨ͠Λ͠·͢
9 ͦͷલʹ
9 ͦͦ༁ͱଟݴޠԽͷ ҧ͍ͬͯԿʁ
͋Δݴޠͷݴ༿ΛଞͷݴޠͰද͢͜ͱɻ ʮ୯ޠʯͰͳ͘ʮҙຯʯΛϕʔεͱ͢Δɻ ʮ୯ޠʯϕʔεͩͱ͍ΘΏΔ༁ʹͳͬͯ͠·͍ػցతͳݴ༿ʹͳΓ͕ͪ จ຺എܠɺͦΕΛݟΔϢʔβʔʹͲͷΑ͏ʹ͍͔͑ͨʹΑͬͯ దͳ༁มΘΔɻ ༁ͱଟݴޠԽͷҧ͍ ༁
ϢʔβʔʹԠͯ͡ෳͷݴޠΛΓସ͑ΒΕΔঢ়ଶɺ·ͨͦͷΈ ༁ϓϩηεͷҰ෦ʹա͗ͳ͍ɻ ༁ͱଟݴޠԽͷҧ͍ ଟݴޠԽ
9 (PBMPVTͷ ࠓ·ͰͷଟݴޠԽͷΈ
ࠓ·ͰͷଟݴޠԽͷΈ $BLF1)1JOΛ༻
ࠓ·ͰͷଟݴޠԽͷΈ ҰͭͷQPϑΝΠϧʹશͯͷ༁Λهࡌ
ࠓ·ͰͷଟݴޠԽͷΈ ௨՟දࣔ$BLF1)1ͷϔϧύʔͰରԠ
ࠓ·ͰͷଟݴޠԽͷΈ ͑ɺ͡Ό͋3FBDUͱ͔+4Ͱ͏༁Ͳ͏ͯ͠Μͷɾɾʁ ͏ΜେৎɺແཧΓରԠͯ͠ΔΑ
ࠓ·ͰͷଟݴޠԽͷΈ ·ͣϢʔβʔͷઃఆͨ͠ݴޠʹԠͯ͡දࣔ͢ΔͨΊͷ@@ ؔΛݺͿ
ࠓ·ͰͷଟݴޠԽͷΈ ͔͜͠͠ͷ@@ ؔͰ͍ͬͯΔ͜ͱQPϑΝΠϧ͔Β༁͞Εͨ จݴΛऔಘ͍ͯ͠ΔͷͰͳ͘ɺ1)1ͰϨϯμϦϯάͨ͠ڊେͳ +4ΦϒδΣΫτ͔ΒΩʔʹରԠ͢ΔΛऔಘ͍ͯ͠Δ ʊਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹڊେͳΦϒδΣΫτɹʻ ʉY^Y^Y^Y^Y^Y^Y^Y^Y^Y^Yʉ
ͭ·Γ༁ΛՃ͢Δʹ͜ͷΦϒδΣΫτमਖ਼͢Δඞཁ͕͋Δ
9 ࣮ࡍͷ༁ͷϓϩηε
։ൃऀ͕ը໘දࣔɾϓογϡ௨ɾϝʔϧؚΊͯ༁͕ඞཁͳՕॴΛ ચ͍ग़͢ ચ͍ग़ͨ͠༁ඞཁՕॴΛεϓϨουγʔτʹ·ͱΊͯ༁୲ऀ ΄ͱ ΜͲͷ߹1- ʹ͢˞͜ΕͲ͜ͷ͜ͱΛݴͬͯΔͷͱ͍͏֬ೝগͳ͘ͳ͍ ༁୲ऀ͕༁ͯ͠εϓϨουγʔτʹهೖ ։ൃऀ༁͕ඞཁͳՕॴΛ@@ؔͰғΜͰϚʔΫͨ͠ޙʹ$BLFJO
ίϚϯυΛ࣮ߦͯ͠༁ݩͱͳΔQPUϑΝΠϧΛੜ 1P&EJUͱ͍͏QPϑΝΠϧฤूπʔϧΛͬͯɺ༁ݩͷQPUϑΝΠϧΛ جʹ༁ͨ͠จݴΛهೖ͠ɺQPϑΝΠϧΛߋ৽ ϦϙδτϦʹ1VTI ༁ͷϓϩηε ػೳՃɾվળʹΑΓ৽ͨʹ༁͕ඞཁͱͳΔ߹
9 ҰݴͰݴ͏ͱΊΜͲ͍͘͞
w ։ൃऀ͔͠༁Λߋ৽Ͱ͖ͳ͍ w จݴΛݕࡧͰ͖ͳ͍ w ༁Λߋ৽͍ͯ͠ΔͷͰจݴͷҰ؏ੑ͕ແ͍ ࣅͨΑ͏ͳจݴ͕ ͨ͘͞Μ͋Δ
w ୭͕Ͳ͏͍͏ҙਤͰߋ৽ͨ͠ͷ͔͔Βͳ͍ ༁ͷϓϩηε
9 ͏͜Μͳϓϩηε౿Ήͷݏͩɾɾʂ Ͱػೳ։ൃ͕Ͳ͏ͯ͠༏ઌతʹͳͬͯ͠·͏
9 ͔͋͠͠Δ࣌సػ͕๚Εͨɾɾʂ
9 σβΠϯˍϑϩϯτΤϯυϦχϡʔΞϧ Λ࣮ࢪ͢Δ͜ͱ͕ܾఆʂ
9 ͜ͷػձʹ ଟݴޠԽͷΈม͑Α͏ͥʂ
ϝϦοτ ෳͷϓϥοτϑΥʔϜͰ༻͢Δ༁ͷॏෳ͕ආ͚ΒΕΔ ଟݴޠԽվֵͷऔΓΈ Ҋ%#Ͱ༁σʔλΛҰݩཧ͢Δ σϝϦοτ ΞϓϦέʔγϣϯͷঢ়ଶʹ߹Θͤͨ༁ͷόʔδϣϯཧ͕ग़དྷͳ͍ ༁Λޠमਖ਼͢ΔʹϚΠάϨʔγϣϯ͕ඞཁʹͳΔ ΞϓϦέʔγϣϯͷঢ়ଶʹԠͯ͡
༁όʔδϣϯཧ͞Εͨํ͕ྑ͍
ଟݴޠԽվֵͷऔΓΈ Ҋ$47547ϑΝΠϧͰ༁σʔλΛҰݩཧ͠ɺ(JU)VCϦϙδτ Ϧʹஔ͍ͯόʔδϣϯཧ͢Δɻͦͷ্Ͱ֤ϓϥοτϑΥʔϜʹద ͳܗࣜͷ༁ϑΝΠϧʹมɾ͢Δɻ $47547 .string .xml .json
.po
ଟݴޠԽվֵͷऔΓΈ Ҋ$47547ϑΝΠϧͰ༁σʔλΛҰݩཧ͠ɺ(JU)VCϦϙδτ Ϧʹஔ͍ͯόʔδϣϯཧ͢Δɻͦͷ্Ͱ֤ϓϥοτϑΥʔϜʹద ͳܗࣜͷ༁ϑΝΠϧʹมɾ͢Δɻ ϝϦοτ ΞϓϦέʔγϣϯͷঢ়ଶͱ༁Λඥ͚ͮΒΕΔ σϝϦοτ ݩϑΝΠϧ͔Β֤ϓϥοτϑΥʔϜͰඞཁͳܗࣜͷ༁ϑΝΠϧͷม
Λ࣮͠ͳ͚ΕͳΒͳ͍ͷͰίετ͕͔͔Δ
9 ͪΐͬͱͬͯɻ ͨͪͦͦଟݴޠԽͷҝͷ ։ൃΛ͖ͩ͢Ζ͏͔
ଟݴޠԽվֵͷऔΓΈ ଟݴޠԽͱ͍͏ͷͦΕ͚ͩͰଟେͳίετ͕͔ ͔Δ w ༁Ұཡɾݕࡧ͕ग़དྷΔཧը໘ w ༁Ճɾमਖ਼ɾআ w
༁ཤྺ ୭͕͍ͭͲͷΑ͏ʹ༁Λߋ৽͔ͨ͠ w ༁ϑΝΠϧมɾ w Ҭʹ߹Θͤͨ࣌ɾ௨՟ͷද࣮ࣔ w FUD
9 ଟݴޠԽॏཁͳཁૉͰ͋Δ ͔͠͠։ൃͷຊ࣭Ͱͳ͍ ଟݴޠԽ֎෦αʔϏεʹͤ ։ൃऀΞϓϦέʔγϣϯͷ։ൃʹूத͢Δ
ଟݴޠԽվֵͷऔΓΈ ࠷ऴҊ ֤ϓϥοτϑΥʔϜͰ༻͢Δ༁ϑΝΠϧͦΕͧΕͷ (JU)VCϦϙδτϦʹஔ͍ͯྑ͍ɻ ͔͠͠༁ͷཧ ݕࡧɾՃɾमਖ਼ɾআ ֎෦αʔϏεͰߦ͏ɻ
ͦͷ্Ͱ֎෦αʔϏεͷ༁σʔλͱ(JU)VCϦϙδτϦ ͷ༁ϑΝΠϧΛ࿈ܞ͠ɺόʔδϣϯཧ͢Δɻ
9 Ұମ͓લԿΛݴ͍ͬͯΔΜͩ ʉʔʉʀ
9 ࣮ࡍʹαʔϏεΛհ͠ͳ͕Βઆ໌͠·͢
༁ϚωδϝϯταʔϏεᶃ1ISBTF"QQ Translate Language Files Online in Minutes. https://phraseapp.com/
༁ϚωδϝϯταʔϏεᶃ1ISBTF"QQ (JU)VCϦϙδτϦͷQPϑΝΠϧͱ1ISBTF"QQ ͷϓϩδΣΫτΛඥ͚ {GitHub Personal Access Token} {PhraseApp
Project Id}
༁ϚωδϝϯταʔϏεᶃ1ISBTF"QQ (JU)VC࿈ܞʹΑͬͯಛఆͷϒϥϯν͔Β༁σʔλΛ औΓࠐΉɺ͘͠ٯʹ1VMM3FRVFTUΛ࡞Δࣄ͕Ͱ͖Δ खܰʹ։ൃऀҎ֎Ͱ༁ͷ13Λ࡞Ͱ͖Δ
༁ϚωδϝϯταʔϏεᶄ-PLBMJTF https://lokalise.co/
༁ϚωδϝϯταʔϏεᶄ-PLBMJTF *O$POUFYU&EJUPS ը໘ʹදࣔ͞Ε͍ͯΔจݴ༁Λमਖ਼͢Δ͜ͱ͕Մೳ (PhraseAppಉ༷ͷػೳΛ͍࣋ͬͯΔ) https://docs.lokalise.co/developer-docs/livejs-web-in-context-editor
༁ϚωδϝϯταʔϏεᶄ-PLBMJTF (JU)VCͪΖΜɺ4LFUDI +JSB 4MBDL ༷ʑͳαʔϏεͱ֎෦࿈ܞ͕Մೳ https://lokalise.co/integrations/
·ͱΊ ։ൃऀϢʔβʔʹՁΛಧ͚Δҝͷ։ൃʹઐ೦͠Α͏ɻ ͦΕҎ֎ͷ෦ɺಛʹଟݴޠԽࣗୡͰཧӡ༻ΛͲ ͏ͤͣʹࡁΉ͔Λߟ͑Α͏ɻ
9 5IBOLTGPS-JTUFOJOH ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠