フロントエンド開発といえば。
react アプリの初期化( npm init vite@latest <アプリ名> )

react で i18n

npm init vite@latest i18n-ts-app
npm i react-i18next
npm i i18next
npm i i18next-browser-languagedetector
cd src
mkdir i18n
vi i18n/configs.ts

src/i18n/configs.ts

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import translation_en from './en.json';
import translation_ja from './ja.json';

const resources = {
  ja: {
    translation: translation_ja,
  },
  en: {
    translation: translation_en,
  },
};

i18n
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    resources,
    fallbackLng: 'ja',
    interpolation: {
      escapeValue: false,
    },
    debug: process.env.NODE_ENV !== 'production', // production 以外の時は debug モードにする
  });

export default i18n;

src/i18n/ja.json

{
  "header": {
    "アカウント": "アカウント(日本語)"
  }
}

src/i18n/en.json

{
  "header": {
    "アカウント": "Account(English)"
  }
}

main.tsx

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.tsx';
import './index.css';
import './i18n/configs'; //i18n設定

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

src/App.tsx

import './App.css';
import { useTranslation } from 'react-i18next';

function App() {
  const { t, i18n } = useTranslation();

  return (
    <>
      <h1> 翻訳された文字列が表示されます</h1>
      <div>{t('header.アカウント')}</div>
      <div>現在の言語: {i18n.language}</div>
    </>
  );
}

export default App;
No.2468
02/16 17:00

edit