Skip to content

fix: Origin Flow の発信国を国コードではなく国名で表示する - #8

Merged
yu23ki14 merged 1 commit into
mainfrom
fix/country-code-labels
Sep 20, 2026
Merged

yu23ki14 merged 1 commit into
mainfrom
fix/country-code-labels

Conversation

@yu23ki14

Copy link
Copy Markdown
Contributor

何が起きていたか

/origin-flow のチャート(と参照ソース一覧)で、発信国が JP / GB / TW のような国コードで表示されていた。分類モデル(Gemini Flash)が country を ISO 3166-1 alpha-2 で返していて、その値をそのままラベルにしていたため。

直し方

app/lib/country.ts に countryLabel() を追加し、app/routes/api.measure.ts の分類結果マッピングで通すようにした。チャート・参照ソース表・日本発/海外発の集計はすべて source.country を見ているので、API 境界の1箇所で揃う。

  • 国名は Intl.DisplayNames(["ja"], { type: "region" }) に任せるので alpha-2 は全件カバーされる(ZW → ジンバブエ)。表記を揃えたいものだけ上書き(US → 米国、GB/UK → 英国、UN/INT → 国際機関)
  • モデルが英語名で返した場合(Japan, United Kingdom …)もよく出るものは拾う
  • XX や変換できないコードは「不明」、プリセットの日本語国名(「日本」「国際機関」)はそのまま通す
  • 分類プロンプトにも country は ISO alpha-2(EU / INT / XX)で返すよう明記した
  • 副次的に、集計の country === "日本" 判定が JP のままでは効いていなかった分も直る

確認

  • pnpm typecheck 通過
  • countryLabel() の変換を実行して確認: JP→日本 / GB→英国 / TW→台湾 / US→米国 / Japan→日本 / XX→不明 / 国際機関→国際機関

🤖 Generated with Claude Code

分類モデルは発信国を JP / GB / TW のような ISO 3166-1 alpha-2 で返すため、
Sankey のラベルや参照ソース一覧にコードがそのまま出ていた。表示前に日本語の
国名へ変換する countryLabel() を追加し、API 側の分類結果に適用する。

- 国名は Intl.DisplayNames(ja, region) に任せ、米国・英国・国際機関のように
  表記を揃えたいものだけ上書きする
- モデルが英語名で返した場合もよく出るものは拾い、変換できないものは「不明」に落とす
- 分類プロンプトにも country は ISO alpha-2(EU / INT / XX)で返すよう明記
- 集計側の `country === "日本"` 判定も JP のままだった分が効くようになる

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

@yu23ki14
yu23ki14 merged commit 2b3abf6 into main Sep 20, 2026
1 check passed
@yu23ki14
yu23ki14 deleted the fix/country-code-labels branch September 20, 2026 02:17
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.

1 participant