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
Symfonyでロケールを含むURLを色々いい感じにする
Search
Takashi Kanemoto
March 23, 2015
Programming
930
0
Share
Symfonyでロケールを含むURLを色々いい感じにする
Symfony Meetup #2 LT 資料
https://symfony.doorkeeper.jp/events/21692
Takashi Kanemoto
March 23, 2015
More Decks by Takashi Kanemoto
See All by Takashi Kanemoto
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
2
190
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
5
1.3k
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
540
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
1.3k
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / My Tech Articles 2024
ttskch
2
200
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
48
44k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
2
8k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
2.3k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.7k
Other Decks in Programming
See All in Programming
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
2
330
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
410
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
280
t *testing.T は どこからやってくるの?
otakakot
1
850
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
4
960
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
140
GitHubCopilotCLIをはじめよう.pdf
htkym
0
300
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
320
10 Tips of AWS ~Gen AI on AWS~
licux
5
510
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
380
Don't Prompt Harder, Structure Better
kitasuke
0
800
Featured
See All Featured
A better future with KSS
kneath
240
18k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
190
Un-Boring Meetings
codingconduct
0
280
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
210
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
320
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
170
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
SymfonyͰϩέʔϧΛؚΉ URLΛ৭ʑ͍͍ײ͡ʹ͢Δ #symfony_meetup 2015.03.22 @qckanemoto
@qckanemoto • ໊ݹ͔Βདྷ·ͨ͠ • (ג)ΧϧςοτίϛϡχέʔγϣϯζCTO • PHPྺ3 • ϦεςΟϯάࠂӡ༻πʔϧʮLisketʯ
PURPOSE
ຊޠͱӳޠͷ྆ํͰӾཡ Ͱ͖ΔαΠτʹ͍ͨ͠
symfony/translation
symfony/translation
• Ϣʔβͷϩέʔϧ͕͔Βͳ͍ͱ͖ %locale% ʹϑΥʔϧόοΫ͢Δઃఆ ͜ͷ··ͩͱৗʹຊޠදࣔ
• %locale% ͷ ja ͜ͷ··ͩͱৗʹຊޠදࣔ
Ϣʔβ͝ͱʹϩέʔϧΛ มԽͤ͞ͳ͚Εʢ໋ײʣ
HOW?
(1) Accept-Languageϔομى • HTTPϦΫΤετͷAccept-Languageϔομ͔ ΒࣗಈͰϩέʔϧΛมߋ͢Δ
ҰԠͰ͖Δ͚Ͳɺ͜Ε ͬͪΌμϝͳͭʂ (1) Accept-Languageϔομى
(1) Accept-Languageϔομى • ಉ͡URLͰϢʔβʹΑͬͯදࣔ༰͕ҟͳΔ • ʮಉ͡URL͕ৗʹಉ͡ϦιʔεΛฦ͢ʯͱ͍ ͏Webͷݪଇʹ͍ͯ͠Δ
ͱ͍͏͜ͱͰ
(2) URLʹϩέʔϧΛؚΊΔ • http://hostname/ja • http://hostname/en • http://hostname/ja/foo/bar • http://hostname/en/foo/bar
} }
(2) URLʹϩέʔϧΛؚΊΔ • _locale ϩέʔϧΛηοτ͢ΔͨΊͷಛघͳ ϧʔςΟϯάύϥϝʔλ
Ͱ͖ͨʂ͚Ͳ… • http://hostname/ja • http://hostname/en • http://hostname/ja/foo/bar • http://hostname/en/foo/bar }
}
͜Εཉ͍͠ʂ • http://hostname/ja • http://hostname/en • http://hostname/ja/foo/bar • http://hostname/en/foo/bar •
http://hostname => /ja • http://hostname/foo/bar => /ja/foo/bar } }
Ͱ͖·͢
ϩέʔϧΛ͚ͯϦμΠϨΫτ ͢ΔΞΫγϣϯΛ࡞
ϩέʔϧແ͠ͷURLશ෦ͦ͜ ʹૹΓࠐΉ
Ͱ͖ͨʂ • http://hostname/ja • http://hostname/en • http://hostname/ja/foo/bar • http://hostname/en/foo/bar •
http://hostname => /ja • http://hostname/foo/bar => /ja/foo/bar } }
༨ஊ ͱ͔Ͱ͖ͨΒ͍͍ͷʹɺͱࢥ͚ͬͨͲແཧͰͨ͠
༨ஊͷิ • yml͋͘·ͰઃఆϑΝΠϧͰ͋ͬͯɺޙํࢀ রΈ͍ͨͳॲཧͬΆ͍͜ͱ·Ͱهड़Ͱ͖ͯ͠ ·ͬͯٯʹࠔ • ϧʔςΟϯάͰޙํࢀরͱ͔͚ͨ͠ΕΠϕ ϯτϦεφʔΛ͏ͷ͕Αͦ͞͏
CONCLUSION
ຊޠͱӳޠͷ྆ํͰӾཡͰ͖ΔԽ • symfony/translation Ͱ༁ • URLͰϩέʔϧΛܾఆ • _locale ϧʔςΟϯάύϥϝʔλ •
_locale ͕লུ͞Εͨ߹ σϑΥϧτϩέʔϧͷURLʹϦμΠϨΫτ
PR
WE’RE HIRING! PHPerେืूதʂ
ΤϯδχΞͷಇ͖͢͞େࣄʹͯ͠·͢ WE’RE HIRING!
SNS͔ϝʔϧͰ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞✨ WE’RE HIRING!
Thanks ;)