Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
tpac_study (2026)
Search
Saji
June 23, 2026
Technology
390
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
Intlのここ数年とこれから
sajikix
0
54
本当はややこしい日時のFormatPattern
sajikix
0
460
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
9.6k
It’s “Time” to use Temporal
sajikix
3
840
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
910
Branded Typesで日時の複雑さと戦う
sajikix
4
1.3k
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
sajikix
2
880
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
400
Lookback TypeScript ESM support and what should we do now.
sajikix
5
850
Other Decks in Technology
See All in Technology
(swiftc) NonCopyableとライフタイム修飾子
teamhimeh
0
140
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
120
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
460
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.8k
LLMの知識とAIエージェント
happysamurai294
0
110
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
490
AIで選択肢が広がった組織設計の理想と現実
konifar
15
6.5k
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
790
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
180
How we choose session proposals
kawaguti
PRO
1
180
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
570
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
1.9k
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
290
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Chasing Engaging Ingredients in Design
codingconduct
0
370
The Language of Interfaces
destraynor
162
27k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Marketing to machines
jonoalderson
1
5.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
720
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
30 Presentation Tips
portentint
PRO
1
440
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
320
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
950
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 ݴޠࣄऀ͕͍ΕΔͱ͍͏͜ͱେ͖͍
ऴΘΓ