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
Symfony2のi18n対応
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
はない
April 24, 2016
Technology
840
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Symfony2のi18n対応
Symfony Meetup #11の発表資料
はない
April 24, 2016
More Decks by はない
See All by はない
2018年目標を達成できなかった私が 今年こそ達成するためにしていること
hanahiroaze
3
540
組み合わせテストを簡単にするgemを作った話
hanahiroaze
0
270
MySQLとデッドロックの話
hanahiroaze
1
1.4k
ここが変だよ。このテスト〜テストケース爆発と戦う〜
hanahiroaze
1
1.6k
Symfony Best Practiceを読もう!(ついでに翻訳した話)
hanahiroaze
2
950
E2E Test Tips
hanahiroaze
0
180
テストことはじめ
hanahiroaze
0
510
開発合宿に行ってきました
hanahiroaze
0
160
GitHubよちよち会#3
hanahiroaze
0
180
Other Decks in Technology
See All in Technology
「休む」重要さ
smt7174
7
1.8k
AIで楽になるはずが、なぜ疲れる?
kinopeee
0
130
最新IoT事例11選に学ぶ!現場の成功パターンと実践のコツ【SORACOM Discovery 2026】
soracom
PRO
0
110
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/aidevday2026
thara0402
0
110
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
150
数値で見る Microsoft MVP 〜Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード〜
yutakaosada
0
150
なぜMIXIはゼロトラスト基盤として クラウドフレアを選んだのか - Cloudflare Peer Point SASE User Voices
mixi_engineers
PRO
2
120
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
0
210
【公開用】AI_Dev_Ex2026_AI_登壇資料
matsuritechnologies
PRO
2
720
データ活用研修 データマネジメント【MIXI 26新卒技術研修】
mixi_engineers
PRO
4
700
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
380
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.4k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.4k
It's Worth the Effort
3n
188
29k
Ethics towards AI in product and experience design
skipperchong
2
330
New Earth Scene 8
popppiees
3
2.4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
390
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
390
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
180
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
290
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Curse of the Amulet
leimatthew05
2
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Transcript
ΫϥγοΫγϯϑΥχʔָஂ JOରԠ !IBOBIJSP@B[F
ͳ·͑ɿՖҪɹߦ UXJUUFSɿ!IBOBIJSP@B[F ॴଐɿIJUPNFEJB 4ZNGPOZྺɿ̍ େ͕9ܥ
࣭
)PXNBOZMBOHVBHFT EPZPVSTFSWJDFTVQQPSU
ຊޠ͚ͩ +BQBOFTFBOE&OHMJTI ᾀ&OHMJTIBOE'SFODI ᾁ0UIFST
ɹɹ
8FTVQQPSUʜ
Έͳ͞ΜͷαʔϏεΛ ඞཁͱ͍ͯ͠Δͷɺ ຊޠϢʔβʔ͚ͩͰ͠ΐ͏ ͔ʁ
ෳݴޠʹରԠͯ͠ɺ ϏδωεͷػձΛ ͛·͠ΐ͏ʂ
ࠓճ 4ZNGPOZͷ͠·͢Α
TUFQͰෳݴޠʹରԠ͢Δ ϧʔςΟϯάʹݴޠ MPDBMF ΛՃ͢Δɻ දࣔݴޠΛఆ͢ΔͨΊʹɺ &WFOU-JTUOFSΛ࡞͢Δɻ ༁ϑΝΠϧΛ࡞Δɻ
UXJHͷදࣔΛෳݴޠʹରԠ͢Δɻ
4UFQϧʔςΟϯάʹݴޠ MPDBMF ΛՃ͢Δɻ !3PVUF \@MPDBMF^
EFGBVMUT\@MPDBMFKB^ SFRVJSFNFOUT\ @MPDBMFKBcFO ^ QVCMJDGVODUJPOMBOHVBHF"DUJPO 3FRVFTUSFRVFTU \ JOGPSNBUJPO݄ͱ݄ͷ৽ணใΛՃ͠·ͨ͠ɻ SFUVSOUIJTSFOEFS 5PQQBHFJOEFYIUNMUXJH <JOGPSNBUJPOJOGPSNBUJPO> ^ ˏ"QQ#VOEMF5PQQBHF$POUSPMMFS
4UFQදࣔݴޠΛఆ͢ΔͨΊʹ &WFOU-JTUOFS Λ࡞͢Δɻ ˏ"QQ#VOEMF&WFOU-JTUFOFS-PDBMF-JTUFOFS http://symfony.com/doc/current/cookbook/session/locale_sticky_session.html ˏDPOpHTFSWJDFTZNM app.locale_listener: class:
AppBundle\EventListener\LocaleListener arguments: ['%kernel.default_locale%'] tags: - { name: kernel.event_subscriber }
4UFQ༁ϑΝΠϧΛ࡞Δɻ ˏ3FTPVSDFTUSBOTMBUJPOTNFTTBHFTFOZNM btn: detail: Detail navi: title: Classic Symfony
Orchestra top: Top performance: Performance information profile: About us blog: Blog inquiry: Inquiry ・ ・ ・
4UFQ༁ϑΝΠϧΛ࡞Δɻ ɾվߦ5XJHͷʮOMCSʯϑΟϧλʔΛ༻͢ΔͨΊɺ <aO>Ͱදݱ͢Δɻ ɾZNMͰॻ͍ͨLFZΛͱʹը໘ʹදࣔ͢Δϝοηʔ δΛࠪ͢ΔͷͰɺʮը໘ͷηΫγϣϯ໊ϝοηʔδ ΩʔʯͷΑ͏ͳ໋໊ʹͯ͠Έͨɻ ɾࠓճZNMʹ͠·͕ͨ͠ɺ%#ʹ֤ݴޠͷใΛ࣋ͭ ͷ͋Γʁ
ɾ༁ͭΒ͍ɻɻɻ
4UFQUXJHͷදࣔΛෳݴޠʹରԠ͢Δɻ ˏ3FTPVSDFTWJFXT5PQQBHFJOEFYIUNMUXJH <section id="just-intro"> <div class="container”> ・・・ <h4><strong>{{ 'navi.performance'|trans
}}</strong></h4> <p> {{ 'performance.message.main'|trans|nl2br }} </p> <a href="{{ path("app_concert_index") }}" class="btn btn-primary"> {{ 'btn.detail'|trans }} </a> ・・・ </div> </section>
ͦͷଞͷઃఆ ˏDPOpHDPOpHZNMʹσϑΥϧτݴޠͷઃఆՃ framework: translator: { fallbacks: ["en"] }
OFYUTUFQ ຊޠɾӳޠͷซهʹରԠ͍ͨ͠ɻ ํ ɾUXJHͷϑΟϧλʔ<NMBOH\NBJO-BOH TVC-BOH^> Λࣗ࡞͢Δɻ ɾUSBOTϑΟϧλʔˠNMBOHϑΟϧλʔʹஔ͖͑ɻ
OFYUTUFQ ˏDPOpHTFSWJDFTZNM parameters: subLocale: 'en’ services: twig.mlang_extension: class: AppBundle\Twig\MLangExtension
arguments: - '@translator.default' - '%subLocale%' tags: - { name: twig.extension }
OFYUTUFQ @AppBundle/Twig/MLangExtension ・・・ public function multiTrans($message, array $arguments = array(),
$domain = null, $locale = null, $subLocale = null) { $str = ""; $str .= $this->translator->trans($message, $arguments, $domain, $locale); $str .= "\n"; $str .= $this->translator->trans($message, $arguments, $domain, ! empty($subLocale) ? $subLocale : $this->subLocale); return $str; } ・・・ http://symfony.com/doc/current/cookbook/templating/twig_extension.html
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ