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
推しProposalと広がる夢~Intl.MessageFormatとDomLocalizat...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Saji
November 19, 2025
1
540
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
JSConf JP2025
-
https://jsconf.jp/2025/en
X
-
https://twitter.com/sajikix
Saji
November 19, 2025
Tweet
Share
More Decks by Saji
See All by Saji
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
550
Branded Typesで日時の複雑さと戦う
sajikix
4
1.1k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
310
Lookback TypeScript ESM support and what should we do now.
sajikix
5
770
フロントエンドで日時処理と戦うために 2025 ver
sajikix
6
4.6k
先取り!Temporal
sajikix
0
270
アプリ文言のパースで学ぶ 文字列Literal型パズル入門
sajikix
3
1.2k
The Future of Frontend i18n : Intl.MessageFormat
sajikix
1
4.2k
Temporalを取り巻く仕様を整理する
sajikix
3
1k
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
120
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
98
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
How to Think Like a Performance Engineer
csswizardry
28
2.5k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
A designer walks into a library…
pauljervisheath
210
24k
Transcript
3ZVTFJ4BKJLJ!TBKJLJY ਪ͠1SPQPTBMͱ͕Δເ d*OUM.FTTBHF'PSNBUͱ%PN-PDBMJ[BUJPOd
ਪ͠1SPQPTBM͋Γ·͔͢ʁ
ࣗ*OUM.FTTBHF'PSNBU❤ 6OJDPEF͕ࡦఆ͍ͯ͠Δ*$6.FTTBHF'PSNBUW .' Λ*OUMͰར༻Ͱ͖Δʂ w ݱࡏࠃࡍԽ༻ϥΠϒϥϦͰͬͯΔ͜ͱ Ћ ͕ඪ४Ͱ ݱࡏ4UBHF const
mf = new Intl.MessageFormat("en","Hello {$place}!"); mf.format({ place: "World" }); // ↓ // Hello World!
*$6.FTTBHF'PSNBU .FTTBHFͷϑΥʔϚοτͱ6OJDPEFͷ$-%35$͕ࡦఆͯ͠Δ ࠷ۙ $-%3ʹਖ਼ࣜʹՃ͞Εͨ🎉
*$6.FTTBHF'PSNBU ৭ʑͰ͖Δ w ͕ؔݺͼग़ͤΔ w ϚʔΫΞοϓه๏͋Δ
*$6.FTTBHF'PSNBU ৭ʑͰ͖Δ w มએݴ
*$6.FTTBHF'PSNBU ৭ʑͰ͖Δ w ύλʔϯϚον
ເ͕͕Γ·͢Ͷʂ
͜Ε͑Δͷ+4͚ͩʁ
ˠͦΜͳ͜ͱͳ͍͔ʂʁ
51"$ ઌि։࠵͞Ε͍ͯͨ8$ͷ̍ͷձٞ $ZCP[Vࠓ8$ϝϯόʔʹͳͬͨͷͰΈΜͳͰࢀՃ͖ͯͨ͠
%0.-PDBMJ[BUJPO ͱ͍͏ఏҊ͕͋ͬͨɻͷ͘͢͝؆ܿʹ ޡղΛڪΕͣʹ ·ͱΊΔͱ w จݴϦιʔεϑΝΠϧΛ$44Έ͍ͨʹಡΊΔΑ͏ʹ͢ΔఏҊ w )5.-ଆͰจݴΛ LFZͳͲͰ ࢦఆ͢Δ͜ͱͰϩʔΧϥΠζ͞ΕΔ
w ศར͡Όͳ͍ʁ
.FTTBHF'PSNBU3FTPVSDF'JMF ͪΖΜϦιʔεϑΝΠϧͷதͰ͏ͷ*$6.FTTBHF'PSNBU w ·ͩϦιʔεϑΝΠϧͷܗܾࣜ·͍ͬͯͳ͍͚Ͳ w IUUQTHJUIVCDPNFFNFMJNFTTBHFSFTPVSDFXH
ؾ͍ͮͨΒ͍͢͝େͳʹ
·ͱΊ w *OUM.FTTBHF'PSNBU*$6.FTTBHF'PSNBU໘ന͍Α w +4͚ͩͰͳ͘XFCΛר͖ࠐΜͩʹͳ͍͔ͬͯ͘Ͷʂ w ͜Ε͔Β*OUM.FTTBHF'PSNBU͔Β͕ͤ·ͤΜͶʂ w ࠃࡍԽJO͖ͳਓ͍ͨΒ͔͚ͯ͘͠ΕΔͱخ͍͠Ͱ͢ʂ
4BKJ3ZVTFJ4BKJLJ 'SPOUFOE%FWFMPQFSBU$ZCP[V JOD 𝕏 !TBKJLJY
$ZCP[V ʮϑϩϯτΤϯυΛ࠷ߴʹ͢Δʯ ϝϯόʔΛืू͍ͯ͠·͢ʂ