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
670
1
Share
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
JSConf JP2025
-
https://jsconf.jp/2025/en
X
-
https://twitter.com/sajikix
Saji
November 19, 2025
More Decks by Saji
See All by Saji
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
4.3k
It’s “Time” to use Temporal
sajikix
3
320
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
690
Branded Typesで日時の複雑さと戦う
sajikix
4
1.2k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
350
Lookback TypeScript ESM support and what should we do now.
sajikix
5
800
フロントエンドで日時処理と戦うために 2025 ver
sajikix
6
4.7k
先取り!Temporal
sajikix
0
310
アプリ文言のパースで学ぶ 文字列Literal型パズル入門
sajikix
3
1.3k
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
350
We Have a Design System, Now What?
morganepeng
55
8.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
The Curse of the Amulet
leimatthew05
1
13k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
It's Worth the Effort
3n
188
29k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
340
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 ʮϑϩϯτΤϯυΛ࠷ߴʹ͢Δʯ ϝϯόʔΛืू͍ͯ͠·͢ʂ