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
370
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
52
本当はややこしい日時のFormatPattern
sajikix
0
430
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
9k
It’s “Time” to use Temporal
sajikix
3
760
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
890
Branded Typesで日時の複雑さと戦う
sajikix
4
1.3k
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
sajikix
2
860
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
390
Lookback TypeScript ESM support and what should we do now.
sajikix
5
850
Other Decks in Technology
See All in Technology
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
120
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
0
120
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
220
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
130
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
1
250
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
Kernel testing frameworks
ennael
PRO
0
110
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
340
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
280
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
400
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Abbi's Birthday
coloredviolet
4
10k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
YesSQL, Process and Tooling at Scale
rocio
174
15k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
970
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Practical Orchestrator
shlominoach
192
12k
Prompt Engineering for Job Search
mfonobong
0
480
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
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 ݴޠࣄऀ͕͍ΕΔͱ͍͏͜ͱେ͖͍
ऴΘΓ