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
tpac_study (2026)
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Saji
June 23, 2026
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
tpac_study (2026)
#tpac_study
-
https://web-study.connpass.com/event/378948/
X
-
https://twitter.com/sajikix
Saji
June 23, 2026
More Decks by Saji
See All by Saji
本当はややこしい日時のFormatPattern
sajikix
0
350
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
7.8k
It’s “Time” to use Temporal
sajikix
3
580
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
810
Branded Typesで日時の複雑さと戦う
sajikix
4
1.2k
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
sajikix
2
770
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
370
Lookback TypeScript ESM support and what should we do now.
sajikix
5
830
フロントエンドで日時処理と戦うために 2025 ver
sajikix
6
4.7k
Other Decks in Technology
See All in Technology
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.6k
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
260
JavaScript 研修 (2026)
recruitengineers
PRO
0
240
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
110
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.7k
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
340
SnowflakeCoCoでデータエンジニアリング!
foursue
0
170
モバイルアプリ開発概論2026
recruitengineers
PRO
1
290
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
110
[MIRU26] To What Extent Does MLLM-as-a-Judge Exhibit Cross-Model Preference Bias?
keio_smilab
PRO
0
200
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
140
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
280
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
Navigating Weather and Climate Data
rabernat
0
440
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
920
The Invisible Side of Design
smashingmag
301
52k
Discover your Explorer Soul
emna__ayadi
2
1.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Building an army of robots
kneath
306
46k
Designing Experiences People Love
moore
143
24k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
820
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Transcript
3ZVTFJ4BKJLJ!TBKJLJY "NCJUJPOBOE*NQSPWFNFOUJOJO UQBD@TUVEZ
4BKJ3ZVTFJ4BKJLJ 'SPOUFOE%FWFMPQFSBU$ZCP[V JOD 𝕏 !TBKJLJY
͕ࣗओʹࢀՃͨ͠8(TFTTJPO ࣗͷڵຯ*OUM࣌ࠃࡍԽͱ͔ͳͷͰ w *O8( ϝΠϯ w *OपΓͷKPJOUNFFUJOHCSFBLPVUTFTTJPO w 8JOUFS5$
গ͚ͩ͠ w 8FC&EJUJOH গ͚ͩ͠ Έ͍ͨͳײ͡
͕ࣗओʹࢀՃͨ͠8(TFTTJPO *O8(ͷ༷ࢠ
"NCJUJPO
৺తͩͳͱࢥͬͨఏҊΛͭհ #SFBLPVU4FTTJPOͳͲͰ݁ߏ৺తͳ༷ఏҊͷ͕ଟ͔ͬͨ ݸਓతʹ࣌ʹ໘ന͔ͬͨͷ͕ҎԼͷͭ %0.-PDBMJ[BUJPO "NPVOU&MFNFOU
%0.-PDBMJ[BUJPO จݴϦιʔεΛ؆୯͔ͭॊೈʹಡΈࠐΉఏҊ w $44ʹࣅͨܗͰར༻͢ΔจݴϦιʔεΛએݴͰ͖ΔΑ͏ʹ͍ͨ͠ w )5.-ଆͰจݴΛ LFZͳͲͰ ࢦఆ͢Δ͜ͱͰϩʔΧϥΠζ͞ΕΔ ͬͯݴΘΕͯ🤔
%0.-PDBMJ[BUJPO Ծ จݴϦιʔεͷಡΈࠐΈ w $44ಉ༷ʹಡΈࠐΉ <html> <head> <link rel="localization" src="uri/for/resource.mf"
/> </head> </html>
%0.-PDBMJ[BUJPO Ծ จݴͷࢦఆ w ઐ༻ͷଐੑͰจݴͷLFZҾΛࢦఆͰ͖Δ <body> <h1 l10n-id="greeting" l10n-args="userName: John"></h1>
</body>
લఏͱͳΔ༷ͨͪ %0.-PDBMJ[BUJPOΛ࣮ݱ͢ΔͨΊʹؔ࿈͢Δඞཁͳ༷͕͋Δ w ϝοηʔδࣗମͷߏจͷ༷ w ˠ*$6.FTTBHF'PSNBUW w ϝοηʔδΛ+4͔Βѻ͏ͨΊͷ༻ w ˠ*OUM.FTTBHF'PSNBU
w ෳͷϝοηʔδΛ·ͱΊͨϦιʔεϑΝΠϧͷ༷ w ˠ.FTTBHF3FTPVSDFT
*$6.FTTBHF'PSNBU 6OJDPEFͷ$-%35$͕ࡦఆͯ͠ΔจݴϑΥʔϚοτͷ༷ w 6OJDPEFͷग़͢$-%3WͰ4UBCMFʹͳͬͨ w Α͋͘ΔΑ͏ͳϓϨΠεϗϧμͷຒΊࠐΈҎ֎ʹ w ϝοηʔδͰͷมએݴɾؔݺͼग़͠ w NBUDIߏจʹΑΔύλʔϯϚον
w ϚʔΫΞοϓॻࣜ
*$6.FTTBHF'PSNBU ύλʔϯϚον ؔݺͼग़͠
*OUM.FTTBHF'PSNBU .FTTBHF'PSNBUΛ*OUMͰॻࣜԽͰ͖ΔΑ͏ʹ͢Δ༷ w ݱࡏ&$."4DSJQUͷ4UBHF const mf = new Intl.MessageFormat("en","Hello {$place}!");
mf.format({ place: "World" }); // ↓ // Hello World!
ϦιʔεϑΝΠϧͷ༷ .FTTBHF'PSNBUWͰॻ͔Ε֤ͨจݴΛ·ͱΊͨϦιʔεϑΟϧͷܗࣜ w ݱࡏ8$ͷJO8(Ͱڠ͕ٞਐΜͰ͍Δஈ֊ ݱࡏఏҊ͞Ε͍ͯΔྫ มΘΔՄೳੑଟ͍ʹ͋Γ @locale en-US ---
one = A plain, simple message. [section] two = Another message with a {$placeholder}.
%0.-PDBMJ[BUJPO ·ͩ·ͩ͜Ε͔Β w հͨ͠Α͏ʹલఏͱͳΔܾΊͳ͖Ό͍͚ͳ͍༷͕ଟ͍ w Өڹൣғ͘͢͝େ͖͍ w )5.-ͷ༷ʹେ͖͘खΛೖΕΔඞཁ͕͋Δ w ܾ·ͬͯͳ͍ͱ͜Ζͨ͘͞Μ͋Δ
w ৽͍͠ςϯϓϨʔτΤϯδϯΈ͍ͨͳΒͳ͍ʁΈ͍ͨͳ࣭ w 51"$Ͱʮ·ͣ8(࡞Δͱ͔͜ΒͩͶ͐ʯΈ͍ͨͳ݁ʹͳͬͯͨ
"NPVOUཁૉ ୯ҐͱΛηοτʹ࣋ͯΔ৽͍͠)5.-ཁૉͷఏҊ w ୯ҐΛͱηοτͰએݴ͢Δ͜ͱͰҎԼͷΑ͏ͳ͜ͱ͕؆୯ʹ w ୯Ґม w ϩʔΧϥΠζ w ͢ͰʹUJNFཁૉEBUFཁૉ͋Δ͕
w ୯Ґ͕ݶఆతͰ͋Γɺͬͱ֦ுੑͷߴ͍ͷʹ͍ͨ͠
"NPVOUཁૉ VOJUWBMVFͱ͍ͬͨଐੑΛ࣋ͭ w VOJUଐੑ4*୯Ґܥʹ͋ΔΑ͏ͳཧ୯Ґ w WBMVFଐੑλά͡Όͳ͘WBMVFͱͯ͠ॻ͚Δ <amount value=42.2 unit=km>42,2</amount>
&$."4DSJQUͷ"NPVOUͷఏҊ "NPVOUͱ͍͏&$."4DSJQUͷ4UBHFͷఏҊ͕͋Δ w ݩʑ3FQSFTFOUJOH.FBTVSFTͱݺ͍ͯͨఏҊ w ॳ୯ҐมػೳͳͲαϙʔτ͢Δ༧ఆ͕༷͕ͩͬͨݮ͞ΕͯΔ w ݱঢ়Ͱ୯ҐͱΛηοτͰཧ͢Δσʔλܗࣜͱͯ͠ͷఏҊ +4 ↔︎
)5.-Ͱࠓޙ࿈ܞ͕ͱΒΕ͍͔ͯ͘ let a = new Amount("42.195", { unit: "km" });
"NPVOUͷఏҊ ݸਓతʹ&$."4DSJQUଆͷ༷Λڵຯ࣋ͬͯͬͯͨ *OUM͖ͳͷͰ w ͦͦ&4ͷ༷ఏҊͰ୯Ґͱ͍ͬͨ෦͕࠷ۙΞπΠ w ࣗͷڵຯͱͭͳ͕͖ͬͯͨͷͰݸਓతʹ໘ന͔ͬͨ ࠷ۙ&$."ͷ༷ࡦఆͷͳ͔ͷϓϩηεʹJO8(ͷϨϏϡʔ͕ೖΔ w
ඪ४Խஂମҧͬͯͭͳ͕͍ͬͯΔ࣮ײ
*NQSPWFNFOU
༷ఏҊ͢Δ͚ͩ͡Όͳ͍ *O8(ͷΔ͜ͱ༷ఏҊΛ͢Δ͚ͩͰͳ͍ w ଞͷ8(ʹΑΔఏҊͷϨϏϡʔ w ༷ࡦఆͷ్தͰϨϏϡʔ͕ೖΔ w ཧͯ͠ΔυΩϡϝϯτ͕݁ߏ͋Δ w దٓߋ৽ɾमਖ਼ͯ͠Δ
JO8(ͷ%PDVNFOU ಡΜͩ͜ͱ͋Δʁ🖐
ࣗͪΌΜͱ Βͳ͔ͬͨ🙇
JO8(ͷ͍࣋ͬͯΔ%PDVNFOU w IUUQTXXXXPSHCMPHJOUFSOBUJPOBMʹߦͬͯΈΑ͏
JO8(ͷ͍࣋ͬͯΔ%PDVNFOUΛ ҎԼͷΑ͏ͳ%PDVNFOU͕ฒΜͰΔ w -BOHVBHF&OBCMFNFOU w ݴޠʹΑΔ֤ػೳͷαϙʔτঢ়گ w %FWFMPQQFS4VQQPSU w ༷ͷࡦఆʹؔ͢ΔυΩϡϝϯτϒϥβ࣮͚ͷυΩϡϝϯτ
w &EVDBUJPO0VUSFBDI w ίϯςϯπ࡞ɾ։ൃऀ͚ͷίϯςϯπ
ΞϓϦ։ൃऀʹࢀߟʹͳΓͦ͏ͳͷ (FUUJOH4UBSUFEXJUI*OUFSOBUJPOBMJ[BUJPO w JOͱMOͷҧ͍ͳͲ͔Βελʔτͯ͠ߨ࠲ܗࣜͰֶΔهࣄ܈ "VUIPSJOH)5.-$44 w )5.-$44Λॻ্͘Ͱ߲͝ͱʹJO8(ͷ%PD-JOL͕·ͱ·ͬͯΔ w ͔͜͜ΒؾʹͳΔͷΛ୳͢ͷ͕ૣ͍ "SUJDMFMJTU
51"$Ͱಛʹ໘ന͔ͬͨٞ 51"$Ͱ%PDVNFOUͷߋ৽ͳͲ͕ੵۃతʹߦΘΕ͍ͯͨ ͦͷதͰಛʹ໘ന͔ͬͨٞɾ%PD w ʮจࣈԽ͚ʯͷఆٛͷ w 4USJOH4FBSDIJOHͷυΩϡϝϯτվળ
51"$Ͱ໘ന͔ͬͨٞNPKJCBLFͷఆٛ *O8(Ͱ*OUFSOBUJPOBMJ[BUJPO(MPTTBSZͱ͍͏༻ޠूΛཧͯ͠Δ ͦͷதʹຊޠ͔Βͦͷ··࠾༻͞ΕͨʮNPKJCBLFʯ͕͋Δ ٞ͞Εͯͨ͜ͱ w ϑΥϯτ͕ͳͯ͘ϨϯμʔͰ͖ͳ͍͜ͱͱNPKJCBLFҟͳΔͷͰʁ w ͦͦTQFDͰΘΕΔʁ w தࠃͰಉ͡Α͏ͳ֓೦͕͋Δʁ
51"$Ͱͬͨ໘ന%PD4USJOH4FBSDIJOH *O8(Ͱ4USJOH4FBSDIJOHͱ͍͏จࣈྻݕࡧػೳͷͨΊͷจॻ͕͋Δ w ͜ͷ࣌Ͱ͍͢͝ จࣈྻݕࡧ͚ͩͰҎԼͷΑ͏ͳ͜ͱΛؾʹ͢Δඞཁ͕͋Δ w શ֯֯ʁେจࣈখจࣈʁ w ࣈͱ͔ଞݴޠͷࣈจࣈώοτ͢Δจࣈͷೖͬͨه߸ͷѻ͍ ͜ͷ%PD5"1$தʹ͍͔ͭ͘ࢀߟจݙͷՃ6QEBUF͕ͳ͞Εͨ
·ͱΊͱ͔ײͱ͔ࢥ͍ͱ͔ 8$ʹ͓͚ΔࠃࡍԽͷͨΊͷӦΈଟذʹΘͨΔ w ఏҊ͞ΕΔ༷໘ന͍͚ͲɺͦΕҎ֎ͷ׆ಈ͋Δ͍ͩ͠͡ w ͔ͤͬ͘ॻ͍ͯΔ%PDVNFOUಡ·Εͯཉ͍͠ͳ ࣗগͣͭ͠ಡΜͰΔ ૾ΑΓͣͬͱগͳ͍ਓ͕ͳΜͱ͔ࢧ͍͑ͯΔঢ়ଶͩͬͨ w
֤ਓͷࣝྔͱࠃࡍԽͷࢥ͍ͰͳΜͱΓཱͬͯΔ Α͏ʹݟ͑ͨ w ຊޠͱ͍͏ׂͱಛघͳݴޠΛ͍ͬͯΔҎ্ɺશવਓ͝ͱ͡Όͳ͍ w ݴޠࣄऀ͕͍ΕΔͱ͍͏͜ͱେ͖͍
ऴΘΓ