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
Saji
November 19, 2025
710
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
推し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
tpac_study (2026)
sajikix
0
43
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
7.2k
It’s “Time” to use Temporal
sajikix
3
360
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
760
Branded Typesで日時の複雑さと戦う
sajikix
4
1.2k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
360
Lookback TypeScript ESM support and what should we do now.
sajikix
5
820
フロントエンドで日時処理と戦うために 2025 ver
sajikix
6
4.7k
先取り!Temporal
sajikix
0
320
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
260
Documentation Writing (for coders)
carmenintech
77
5.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
HDC tutorial
michielstock
2
730
Being A Developer After 40
akosma
91
590k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
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 ʮϑϩϯτΤϯυΛ࠷ߴʹ͢Δʯ ϝϯόʔΛืू͍ͯ͠·͢ʂ