アプリをリリースするたびに一番面倒だったのがリリースノートの翻訳でした。KOOTDをリリースする時、韓国語、英語、日本語にそれぞれ翻訳しなきゃいけなくて、毎回翻訳サイトで1つずつ翻訳してフォーマット合わせてコピペする。非効率すぎました。
最初は我慢してました。でもアップデートのたびに同じことの繰り返しだから「これ自動化すればいいんじゃない?」と。他のリリースノートジェネレーターも探してみたけど、ログインが必要だったり無料枠がきつかったり。自分で作った方が早いなと思いました。
どう作ったかというと
まずGoogle翻訳APIで翻訳機能を作りました。クライアントから直接呼ぶとCORSエラーが出るので、Next.js API Routeを経由させました。
// pages/api/translate.js
export default async function handler(req, res) {
const { text, targetLang } = req.body;
try {
const result = await translate(text, { to: targetLang });
res.status(200).json({ success: true, translatedText: result.text });
} catch (error) {
res.status(500).json({ success: false, error: error.message });
}
}
Google PlayストアとApp Storeでフォーマットが違うので両方対応する必要がありました。Playストアは<ko-KR>内容</ko-KR>形式で、App Storeは言語ごとに別入力です。
// Google Playストア形式
const generateGoogleFormat = (translations) => {
let formatted = '';
for (const [lang, text] of Object.entries(translations)) {
const playStoreLang = getPlayStoreLanguageCode(lang);
formatted += `<${playStoreLang}>\n${text}\n</${playStoreLang}>\n`;
}
return formatted;
};
UIは最初は機能だけ作ったんですが、使ってみると不便で。言語選択をグループ分けして、進捗バーを入れて、各言語ごとの個別コピーボタンを追加しました。バージョン情報みたいに翻訳せずそのまま前に付ける固定テキスト機能も入れました。
実際に使ってみると
翻訳品質はGoogle翻訳レベルです。リリースノート程度ならだいたい問題なく出ます。複雑な文章はたまにおかしくなりますが。
以前10〜15分かかっていたのが今は2〜3分で終わります。言語が多いほど差が大きいです。韓国語で書いて、翻訳する言語を選んで、ボタン押して、各言語ごとにコピーして貼り付ける。以上。
これから考えていること
AI翻訳サービスを連携して品質を上げたいし、テンプレート機能も良さそうです。よく使うリリースノートの形式を保存しておくやつ。でもそれにはバックエンドの接続が必要で、そうなると維持費が月10ドルは増えるし…悩みどころです。
正直、最初はただ面倒だから作っただけなのに、実際にアプリ更新するたびに使ってます。こういう小さなツールがトラフィックを集めて収益化に繋がればいいんですが、それはまだ分かりません。
試してみたい方はリリースノートジェネレーターからどうぞ。