527 Views
November 16, 25
スライド概要
https://gdg-tokyo.connpass.com/event/369416/
what's up, dogs?
Geminiで実現!完全自動・ Webサイト20言語対応 Automating 20 language support with Gemini haruki 1
自己紹介 haruki • 2026卒 大学生 - uni student • 卒業後IT企業に就職予定 - will join IT company • google dev fest 初参加 - first time 2
自己紹介 haruki • 個人開発web運用中 - operating a web 260k users ◦ 某国際イベントの非公式情報サイト unofficial info web for an international event ◦ 最近 韓国からのアクセスが増加 increasing access from Korea recently → 海外対応したい - internationalization wanted 3
調子に乗って20言語対応w 20 languages available just for fun lmao 한국어, English, Беларуская, Dansk, Deutsch, Español, Eesti, Français, Gaeilge, हिन्दी, Magyar, Italiano, Bahasa MY, Norsk, Polski, Português, தமிழ், 简体中文, 繁體中文 GBBINFO-JPN 4
So, How? どうやって20言語対応を実現したか 5
Flask-Babel • Flask (Python library) に 多言語対応 (i18n) を追加 ◦ Django, FastAPI版もある - also available • 事前に翻訳ファイルを用意し、コンパイル prepare translation files in advance, then compile 6
翻訳ファイル生成 1. テキスト抽出 - text extract ◦ コマンドでやる - do it with command 2. 翻訳ファイルに自分で翻訳を記入 - add translations ◦ ここを自動化! - automation 3. コンパイル - compile 7
下準備 messages.po CLIで作成 - create by command msgid "こんにちは" msgstr "" #, python-brace-format msgid "Google Devfest Tokyo {year} へようこそ" msgstr "" 8
下準備 messages.po 自分で書く or 自動化 - Write it yourself or automate msgid "こんにちは" msgstr "Hello" #, python-brace-format msgid "Google Devfest Tokyo {year} へようこそ" msgstr "Welcome to Google Devfest Tokyo {year}" 9
translate.py import polib from my_function import translate # 翻訳関数 path = "PATH_TO_PO_FILE" po = polib.pofile(path) # ファイルを読み込む untranslated_entries = po.untranslated_entries() for entry in untranslated_entries: # 翻訳実行 translated_text = translate("English", entry.msgid) entry.msgstr = translated_text po.save(path) # 保存 10
Hey Gemini, translate this!
from google import genai # Gemini API
def translate(language, text):
client = genai.Client()
prompt = f"translate this to {language}!: {text}"
response = client.models.generate_content(
model="gemini-3.0-pro",
contents=prompt,
)
return response.text
11
Why Gemini? • AI無料で使いたいじゃん - why not use AI for free in 2025 • 他の関数でGeminiを使っており、コードを共有できる Using Gemini elsewhere, can reuse the client model • 100言語以上対応 - available more than 100 languages 12
100言語以上対応できる...!! • 現在対応言語は20 - now 20 languages available • あと80いける - 80 more...? nah lazy 13
ありがとうございました! 감사합니다! Thank you! Спасибо!, Tak!, Danke!, Gracias!, Aitäh!, Merci!, Go raibh maith agat!, धन्यवाद!, Köszönöm!, Grazie!, Terima kasih!, Takk!, Dziękuję!, Obrigado!, நன்றி!, 谢谢!, 謝謝!, شكراً!, Teşekkür ederim!, ขอบคุณ!, Cám ơn!, Dank je!, Tack!, Ευχαριστώ!, Salamat! 14