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
0
910
Symfonyでロケールを含むURLを色々いい感じにする
Symfony Meetup #2 LT 資料
https://symfony.doorkeeper.jp/events/21692
Takashi Kanemoto
March 23, 2015
Tweet
Share
More Decks by Takashi Kanemoto
See All by Takashi Kanemoto
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
400
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
890
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / My Tech Articles 2024
ttskch
2
150
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
47
40k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
1
6.6k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
2.1k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.6k
symfony/pantherでWordleを解いてみた
ttskch
0
360
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡
ttskch
16
20k
Other Decks in Programming
See All in Programming
CSC509 Lecture 06
javiergs
PRO
0
260
Six and a half ridiculous things to do with Quarkus
hollycummins
0
210
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
2
660
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
610
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
ALL CODE BASE ARE BELONG TO STUDY
uzulla
27
6.6k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
390
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
Webサーバーサイド言語としてのRustについて
kouyuume
1
3.8k
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
270
Go言語はstack overflowの夢を見るか?
logica0419
0
510
AI Agent 時代的開發者生存指南
eddie
4
2k
Featured
See All Featured
Designing for Performance
lara
610
69k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Why Our Code Smells
bkeepers
PRO
340
57k
How STYLIGHT went responsive
nonsquared
100
5.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Building Applications with DynamoDB
mza
96
6.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Making Projects Easy
brettharned
120
6.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
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 ;)