Skip to content

Conversation

Copy link

Copilot AI commented Jan 9, 2026

対応Issue

resolve #0

概要

next-i18nextを使用した日本語・英語の多言語対応実装に対するコードレビューを実施。全体的な実装パターンは良好だが、以下の重要な問題を発見:

  • validate.tsのバリデーションメッセージがi18n未対応(日英を\nで連結)
  • テストページにgetStaticPropsが欠落

実装詳細

レビューで確認した実装

✅ 良好な実装

  • next-i18nextの基本設定(config、HOC、getStaticProps)
  • カスタムフック(useXxxTexts)による翻訳テキスト取得の統一
  • LanguageSwitcherコンポーネントの適切な配置
  • labelKeyベースのリストデータ構造への変更

⚠️ 要修正: バリデーションメッセージ

現状(NG):

// user/src/utils/validate/validate.ts
z.string().nonempty('入力してください\nPlease enter')

問題点:

  • 言語切り替えに非対応
  • ユーザーに両言語が同時表示される
  • 他コンポーネントのi18n実装パターンと不一致

推奨修正:

z.string().min(1, 'form.validation.required')
// エラー表示時: t(error.message)

約50箇所の修正が必要。

⚠️ 要修正: テストページのSSG設定

test_pr.tsxtest_venuemap.tsxgetStaticPropsが欠落。翻訳が動作しない。

追加が必要:

export const getStaticProps: GetStaticProps = async ({ locale }) => ({
  props: {
    ...(await serverSideTranslations(locale ?? 'ja', ['common'])),
  },
});

統計

  • 変更ファイル: 125
  • コミット数: 54
  • 翻訳キー数: 約892行

画面スクリーンショット等

N/A(コードレビューのみ)

テスト項目

  • validate.tsのバリデーションメッセージを翻訳キーベースに修正
  • テストページにgetStaticPropsを追加
  • 言語切り替え時にバリデーションエラーが正しく翻訳されることを確認
  • 全ページで翻訳が正常に動作することを確認

備考

改善提案(優先度低)

  • 翻訳ファイルの分割検討(common.json、applications.json等)
  • 翻訳キーの型安全性向上(TypeScript型定義の追加)

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Add multilingual support with i18n for Japanese and English i18nによる日本語、英語の多言語対応 - コードレビューフィードバック Jan 9, 2026
Copilot AI requested a review from hikahana January 9, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants