#kintone100日チャレンジ Day087:フィールドを増やさず多言語対応!「多言語AI翻訳」プラグインを作ってみた

#kintone100日チャレンジ Day087:フィールドを増やさず多言語対応!「多言語AI翻訳」プラグインを作ってみた

記事
IT・テクノロジー
面倒解決エンジニアの森田ユウゴです。
台湾からお届けする「#kintone100日チャレンジ」の87日目。

台湾は大雨警報が出ているレベルで天気が悪いです。こんな日ばかりは、在宅フリーランスで良かった…と思えます。
ただ、出社でしか得られない経験も多いのでここはトレードオフ。

本日は、外国人スタッフを抱える製造・サービス・観光業など多言語対応が必要な現場向けの「多言語AI翻訳」を開発しました!

「多言語AI翻訳」について

🎯 なぜ開発したか?(現場の課題とベネフィット)

現場の「不」: 外国人スタッフが増えてもkintoneには1フィールド1つの値入力が基本です。言語ごとに別フィールドを作ると翻訳文章の管理が煩雑になり、人手翻訳では入力コストと時間がかかりすぎる。

導入後の世界(ベネフィット): レコードを保存するだけでGemini AIが自動翻訳。日本語・英語・中国語など複数言語の翻訳結果を1フィールドにJSON管理するので、フィールドが言語の数だけ増えることもない。表示言語はヘッダーのセレクターで即切替できる。

元々、翻訳プラグインには挑戦してきたのですが、今やサクっと作った完全バイブコーディングの方が品質高く、想定通り動いてしまう…。
(当時はClaude 3.5 SonnetあたりでAIコーディングを試してみて、かつハーネスも組む知識が無かったものでボロボロだった記憶)

✨ これで出来ること(機能概要)

まずはこちらをご覧ください。
Gemini AI自動翻訳: レコード保存時にGemini API(Flash / Pro / Flash Liteを選択可)へ自動でリクエスト。日本語・英語・中国語など設定した全言語の訳文をJSONで一括保存する。

言語セレクターで表示・編集言語を切替: 一覧・詳細・編集・作成画面のヘッダーに言語切替ドロップダウンを表示。選択した言語でフィールドの表示値と編集値がリアルタイムに切り替わる。

差分翻訳でAPIコストを最小化: フィールド値のSHA-256ハッシュを保存し、前回翻訳時から内容が変わっていない場合はGeminiへのリクエストをスキップ。変更があった箇所だけを翻訳する。…ただ、主言語以外から翻訳をすると、翻訳に翻訳を重ねて意図が変わってしまう可能性も。

課題

現時点では下記のような課題が残っています。

詳細画面のテーブルセル表示置換でDOM直接操作が必要
kintone JavaScript APIにはサブテーブルのセル単位で要素を取得するAPIが存在しない。DOM構造に依存するためkintoneのアップデートで動作しなくなる可能性があり、セキュアコーディングガイドラインで推奨される「DOM構造に依存しない実装」から逸脱しています…。

一覧画面のテーブルセル翻訳は非対応
一覧表示では、サブテーブルが折りたたみ可能な別行(recordlist-subtablerow)に描画される。getFieldElements(テーブルコード)ではトグルボタンのセルしか取得できず、展開・折りたたみ状態にも安全に追従できないため断念しました。

さいごに

#kintone100日チャレンジ として、2026年4月から毎日プラグインをバイブコーディングしています。明日もお楽しみに!

私森田ユウゴはココナラでkintoneに関する各種サービスを出品しております。

SIerの中でもインフラSEとして約10年、特に「運用保守」にはベンダーとして深く携わってきました。
作りっぱなしにしない導入やカスタマイズのご提案が可能です。
お気軽にご相談をくださいませ
→森田ユウゴのプロフィールはこちら👇


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す