はじめに

データ可視化ツール RAWGraphs を日本語化し、公開しました。

https://rawgraphs-ja.vercel.app/

RAWGraphsは、複雑なデータを美しいビジュアライゼーションに変換できるオープンソースのWebアプリケーションです。コーディング不要で、CSVやJSONデータをドラッグ&ドロップするだけで、様々なチャートを作成できます。

RAWGraphs日本語版のスクリーンショット

RAWGraphsとは

RAWGraphsは、イタリアのDensityDesign Research Labが開発したデータ可視化ツールです。

https://www.rawgraphs.io/

主な特徴:

  • コーディング不要 : ブラウザ上でデータをペーストするだけ
  • 多様なチャート : Alluvial Diagram、Treemap、Voronoi Tessellationなど30種類以上
  • SVGエクスポート : 作成したチャートをSVGやPNG形式でダウンロード可能
  • プライバシー保護 : データはサーバーに送信されず、ブラウザ内で処理

使用ライブラリ

{}""ir1e8ancetx-ti"1:8n"e^x2t1".:10".^01"1,.18.6"

!

最新版のi18nextではなく、互換性のある旧バージョンを使用しています。RAWGraphsのビルド環境(react-scripts 4.x)がオプショナルチェーニング(?.)構文を完全にサポートしていないためです。

実装手順

1. i18nの初期化

src/i18n.js を作成し、多言語対応の基盤を構築しました。

iiiic}cii}emmmmoo11)xppppnejn8..}8lpoooosnasnui)noorrrrt::tsnrlfi.crtttteienanoatr{{s(tsgltnli{tteai(o:le(Sd1rrsttvn{ubr'te8iaaorreirsaplofnnnnuaadtcacoaraissrnnLRevklnauftllcssaeseLagglrRaaellna,dntuetoettsaagcLgia.maiittuta:ogsicoo=iiaInnee1'tnnoog1g':Ct8iIEJ{nne8uehIn11NA::nan{at88=eg'nennffttxe,egmeerrrrlt,se(xxooaao)cd'ttmmnnca'i'ssap,1}llle8aaSV(nf/tttalerlliiolnxooooorugtmccnnae)LaaEJg:n'llNAe=gree.f>'ess}}ga,a//,el{cejtsltnaIen-//tgitte})1rrm8aa(nnn'essixll1taa8'ttniieooxnnt..Ljjnssgoo'nn)'''ja'

2. 翻訳ファイルの構造

src/lejonac//altterrsaa/nnssllaattiioonn..jjssoonn

翻訳ファイルは、セクションごとに整理しました:

{}"}"}a,dp"""""a"""pssssstpus"eeeeeaapu:cccccLslctttttotoc{iiiiiaeaeoooood"dsnnnnne:"s12345r:M"""""""e::::::"ss"""""{a12345g.....e":"",{{""c,"",o",u",n,t}}{{cells}}"

3. コンポーネントへの適用

各コンポーネントで useTranslation フックを使用:

if}mupncrocoertnt<tisud/otri<<d{nnvhp/i{>2>{}pvuD(>t)>>sat{(cc}ett'oeTa}(dulrL'anlao=dttsnaaa::sdutLlesaoddareLaaat(Todtti{raeaaoadr..ndne.llasrsee}tl.unnaapcggf,tacttrisehhocots,monesl('M'u))ecrm}soen<slas/auchgmt}2en-)>'si,1{8{next'

4. 言語切り替えUI

ヘッダーに言語切り替えボタンを追加:

if}mupncrocoertnt<tisud/otri<<d{nnvb/b/i{uocEbuocJbvuL(ctnlNutnlAu>sailtCattCaten1aolstolstTg8snisonisorunscNncNnaaNka>ka>ng}a=m=msem{e{elS=e(=(=aw=){){tiu"iiitsl=1=1ocea>8>8nhTnnnergi.i.}rau1l1l(na8a8af)sgnnnnrle.g.go{a-cucumtshahaiwagag'oinenerntgge(ce=e=a)hL=L=cea=a=trnn-"g'g'i>ueuj1anaa8g'g'neee(?(?x''te'j''naaa'c'c)t)t}i}ivvee''::''}}

翻訳した箇所

以下のUIテキストをすべて日本語化しました:

カテゴリ内容
ナビゲーションヘッダー、フッター
データ読み込みペースト、アップロード、SPARQL、URLからの読み込み
チャート選択チャート一覧、フィルター
データマッピングディメンション、変数の説明
カスタマイズ色、サイズ、アートボード設定
エクスポートダウンロードボタン
エラーメッセージパースエラー、型の不一致など
ツールチップ各種ヒント表示

苦労した点

1. ライブラリの互換性

最新版のi18next(v23以降)を使用すると、ビルド時にエラーが発生しました:

MYooduulmeaypanreseedfaanilaepdp:roUpnreixapteectleodadteorketnohandlethisfiletype.

!

新しいi18nextがオプショナルチェーニング構文を使用しており、古いBabel設定と互換性がないためです。解決策として、互換性のある旧バージョン(v21系)を指定しました。

2. 動的テキストの翻訳

「7 rows (35 cells) have been successfully parsed」のような動的な数値を含むメッセージは、i18nextの補間(interpolation)機能を使用:

"t}s()u'cccdoecauletnlsatssL::Moeaddsdaasettaraag...esll"uee:cnncgg"ett{shh{s,cMoeuscnsotal}gu}em'n,s{{{cells}}"

3. 依存パッケージのバージョン固定

Vercelでのビルド時に、yarn.lock の再生成により依存パッケージがアップデートされ、CSSファイルが見つからないエラーが発生:

Error:Can'tresolve'~react-data-grid/dist/react-data-grid.css'

package.json でバージョンを厳密に固定することで解決:

-+""rreeaacctt--ddaattaa--ggrriidd""::""^77..00..00--ccaannaarryy..1166""

!

キャレット(^)を削除することで、semverによる自動アップデートを防ぎます。

デプロイ

Vercelを使用して自動デプロイを設定しました。GitHubリポジトリにプッシュするだけで、自動的にビルド・デプロイされます。

まとめ

react-i18nextを使用することで、RAWGraphsの日本語化を実現できました。

!

ポイント

  1. ライブラリ選定 : 互換性を確認し、適切なバージョンを選択
  2. 翻訳ファイルの構造化 : セクションごとに整理して保守性を確保
  3. 動的コンテンツ対応 : 補間機能を活用
  4. ユーザー設定の永続化 : localStorageで言語設定を保存

日本語版RAWGraphsをぜひお試しください!

https://rawgraphs-ja.vercel.app/

リポジトリ

https://github.com/nakamura196/rawgraphs-app

参考リンク