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
870
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / 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
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
760
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
32k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
580
Leading Effective Engineering Teams in the AI Era
addyosmani
4
390
Six and a half ridiculous things to do with Quarkus
hollycummins
0
170
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
210
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
170
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
230
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
170
CSC509 Lecture 06
javiergs
PRO
0
260
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
490
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Why Our Code Smells
bkeepers
PRO
339
57k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
How STYLIGHT went responsive
nonsquared
100
5.8k
Thoughts on Productivity
jonyablonski
70
4.9k
Building Applications with DynamoDB
mza
96
6.7k
Optimizing for Happiness
mojombo
379
70k
BBQ
matthewcrist
89
9.8k
RailsConf 2023
tenderlove
30
1.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
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 ;)