Google AI

Google GeminiとLingo.dev CompilerによるAI翻訳

Google AIとは何ですか?

Google AI Studioは、GeminiなどのGoogleの生成AIモデルを活用したアプリケーションの構築、テスト、デプロイのためのウェブベースの開発環境です。開発者はプロンプトを試したり、レスポンスを微調整したり、APIを通じてモデルをアプリに統合したりすることができます。すべてがGoogle Cloudに接続された使いやすいインターフェースで提供されています。

APIキーの設定

Google AIはLingo.dev Compilerからのリクエストを認証するためにAPIキーを必要とします。あなたのワークフローに最適なセットアップ方法を選択してください:

オプション1:環境変数(ターミナル)

ファイルを変更せずに素早く実験やテストを行うのに最適です。

ターミナルセッションで直接キーを設定します:

export GOOGLE_API_KEY="your-api-key-here"

このキーはターミナルウィンドウを閉じるまで有効です。

オプション2:プロジェクト設定(.env)

プロジェクト固有の設定やチーム環境に最適で、各プロジェクトで異なる認証情報を使用する場合に便利です。

プロジェクトのルートに.envファイルを作成します:

touch .env

ファイルに次の行を追加します:

GOOGLE_API_KEY="your-api-key-here"

Lingo.dev Compilerは次の優先順位で環境ファイルをチェックします:

  1. .env.development(最高優先度)
  2. .env.local
  3. .env(最低優先度)

優先度の高いファイルの値は、優先度の低いファイルの値を上書きします。

オプション3:グローバル設定(ユーザー設定)

すべてのプロジェクトで同じAPIキーを使用したい個人開発者に最適です。

ホームディレクトリに設定ファイルを作成します:

touch ~/.lingodotdevrc

ファイルに次の内容を追加します:

[llm]
googleApiKey="your-api-key-here"

この設定はマシン上のすべてのターミナルセッションとプロジェクトで持続します。

設定の優先順位

複数の設定方法が使用されている場合、Lingo.dev Compilerは次の順序でAPIキーを確認します:

  1. 環境変数(最優先)
  2. プロジェクトの.envファイル(それぞれの優先順位に従う)
  3. ユーザー設定ファイル ~/.lingodotdevrc(最低優先)

最初に見つかった有効なAPIキーが使用されます。

Google AIの使用

Google AIを有効にするには、コンパイラオプションでmodelsプロパティを設定します:

import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
import { type UserConfig } from "vite";

// https://vite.dev/config/
const viteConfig: UserConfig = {
  plugins: [react()],
};

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja"],
  rsc: false,
  useDirective: false,
  debug: false,
  models: {
    "*:*": "google:gemini-1.5-flash",
  },
});

export default withLingo(viteConfig);

このプロパティは以下のようなオブジェクトを受け付けます:

  • キーはソースロケールとターゲットロケールのペアで、*は任意のロケールを表します
  • 値はモデル識別子(例:google:gemini-1.5-flash)です

Google AIを使用して以下の翻訳が可能です:

  • すべてのロケール間
  • 特定のソースロケールから
  • 特定のターゲットロケールへ
  • 特定のソースとターゲットロケール間

すべてのロケールの翻訳

ワイルドカードパターン*:*を使用して、すべての翻訳ペアに同じGoogleモデルを適用します:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // すべての翻訳ペアにGemini 1.5 Flashを使用
    "*:*": "google:gemini-1.5-flash",
  },
});

特定のソースロケールからの翻訳

特定のソースロケールとワイルドカードターゲットを使用して、そのソースからのすべての翻訳にモデルを適用します:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 英語からのすべての翻訳にGemini 1.5 Proを使用
    "en:*": "google:gemini-1.5-pro",
    // スペイン語から任意の言語への翻訳にGemini 1.5 Flashを使用
    "es:*": "google:gemini-1.5-flash",
    // その他のソース言語のフォールバック
    "*:*": "google:gemini-1.5-flash-latest",
  },
});

特定のターゲットロケールへの翻訳

ワイルドカードソースと特定のターゲットロケールを使用して、そのターゲットへのすべての翻訳にモデルを適用します:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 日本語への翻訳には特殊なモデルを使用
    "*:ja": "google:gemini-1.5-pro",
    // 中国語への翻訳にはGemini 1.5 Flashを使用
    "*:zh": "google:gemini-1.5-flash",
    // ドイツ語への翻訳にはGemini 1.5 Proを使用
    "*:de": "google:gemini-1.5-pro-latest",
    // その他のターゲット言語のデフォルト
    "*:*": "google:gemini-1.5-flash",
  },
});

特定のロケール間の翻訳

特定の言語の組み合わせを処理するモデルをきめ細かく制御するために、正確なソースターゲットペアを定義します:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // 最適なモデルを持つ特定のペア
    "en:es": "google:gemini-1.5-flash", // 英語からスペイン語
    "en:ja": "google:gemini-1.5-pro", // 英語から日本語
    "en:zh": "google:gemini-1.5-pro", // 英語から中国語
    "es:en": "google:gemini-1.5-flash", // スペイン語から英語
    "fr:en": "google:gemini-1.5-flash-latest", // フランス語から英語
    "de:en": "google:gemini-1.0-pro", // ドイツ語から英語

    // 未指定のペアのフォールバック
    "*:*": "google:gemini-1.5-flash",
  },
});