$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
React 多言語対応
Search
tatsuaki
October 31, 2023
Programming
0
360
React 多言語対応
2023/11/11 ENGINE登壇資料
tatsuaki
October 31, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
420
Cell-Based Architecture
larchanjo
0
140
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
200
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
450
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1k
dotfiles 式年遷宮 令和最新版
masawada
1
800
Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあるよ~ #clrh111
katsuyuzu
0
120
俺流レスポンシブコーディング 2025
tak_dcxi
14
9.2k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
180
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
150
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.3k
Deno Tunnel を使ってみた話
kamekyame
0
180
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
32
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
91k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
First, design no harm
axbom
PRO
1
1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
290
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
The agentic SEO stack - context over prompts
schlessera
0
550
Deep Space Network (abreviated)
tonyrice
0
18
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Transcript
React 多言語対応 プロダクトデザイン部 松岡龍紀
目次 ▼ Webサイトにおける「多言語化対応」とは ▼ Reactで多言語化対応する術 ▼ やってみる
Webサイトにおける「多言語化対応」とは
Webサイト上のコンテンツを自国以外の言語を利用して、 外国人向けにフォーマット すること。 また、多言語対応には様々なポイントや課題があるが、その中で下記が挙げられる。 • ニーズに応じて取捨選択 • 技術的にコストがかかると同時に予算工数にも影響が出てくる懸念 英語 日本語
Reactで多言語対応する術 ※これから紹介するのは、あくまで一例で他にもやり方はありま す。
• Format.JS • react-i18next
Format.JS • <Formatted**> コンポーネントを使用して多言語化を実現する。 • フォーマット機能も提供されている。 こんにちは 2016年4月05日
react-i18next • ビルトインされているメソッドを使用する。 • 記述がシンプル。 • 併用できるパッケージが多数ある。 こんにちは
やってみる
ディレクトリ構成
ディレクトリ構成 後々使用するメソッドで型を得るためにアンビ エントで型を定義。 言語管理するためのjsonファイルと、設定ファ イル。
use 使用するパッケージ (プラグイン)を登録 lng デフォルトで使用する言語 debug デバッグ情報表示有無 defaultNS 使用するネームスペース。複数の言語ファイルを使用 するときなどに活用。
resources 翻訳に使用する元ファイルを登録。 etc https://www.i18next.com/overview/configuration-options config.ts
テキストにアクセスするためのkeyと翻訳に使用したいテキストをvalueに設定。 例では、言語ごとにファイルを分けて、中身をコンポーネント名で分割している。 ネームスペースをうまく使えば、コンポーネントごとにファイルを分割できたりする。 json 日本語 英語
useTranslationからtメソッドを取得。 翻訳対象の要素にtメソッドをかまして多言語 化する。 tメソッドの引数にjsonファイルで定義したkey でアクセスし対象要素を表示できる。 ComponentA.tsx
アンビエントで定義した型ファイルを用 意すれば、tメソッドに型が適用される。 jsonに定義されていない内容にアクセス すると型エラーになると同時にコード補 完もされるのでケアレスミスの回避にもつ ながる。 ComponentA.tsx
ルートコンポーネントでconfigファイルを importすることでi18nを適用できる。 i18nextから生えているchangeLanguage メソッドを使用してボタン切り替えで言語 切替をできる。 App.tsx
https://github.com/bita-matsuoka/react-i18next 今回用意したコード
• i18next-browser-languageDetector ブラウザの言語設定を自動判別してその言語を適用させるパッケージ。 • i18next-http-backend ファイルシステムから言語ファイルをロードするためのパッケージ。 • locize 言語ファイルを管理できるプラットフォーム。 エンジニアが関わらずとも翻訳チームだけで運用可能にできたり、文言修正のコストを削減できた
りする。 etc … https://www.i18next.com/overview/plugins-and-utils 有用なパッケージ
参考文献 • react-i18next https://react.i18next.com/ • react-18next sample code https://github.com/i18next/react-i18next/tree/master/example/react-typescript • Format.JS https://formatjs.io/