概要
generaltranslation ライブラリの概要
はじめに
generaltranslation ライブラリは、翻訳やフォーマットのためのユーティリティ関数とクラスを備えた、GT の中核となる i18n ライブラリです。
通常は gt-next や gt-react などのフレームワーク向けパッケージと併用されますが、単体のライブラリとしても利用できます。
import { GT } from 'generaltranslation';
const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id',
  sourceLocale: 'en',
  targetLocale: 'es',
});
// コンテンツを翻訳
const result = await gt.translate('Hello, world!', 'es');
// "¡Hola, mundo!"
// 数値、日付、通貨の書式設定
const formattedPrice = gt.formatCurrency(29.99, 'USD');
const formattedDate = gt.formatDateTime(new Date());
// "$29.99"
// "9/25/2025"
// ロケールの操作
const localeProps = gt.getLocaleProperties('fr-CA');
const isValid = gt.isValidLocale('de');
// { language: "fr", region: "CA", ... }
// trueインストール
npm install generaltranslationyarn add generaltranslationbun add generaltranslationpnpm add generaltranslation例
翻訳には大きく分けて、文字列翻訳とファイル翻訳の2種類があります。
セットアップ
翻訳を有効化するには、プロジェクトのidとAPIキーを指定する必要があります。
詳しくはconstructorメソッドを参照してください。
const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id',
  targetLocale: 'es',
});文字列翻訳
詳しくは translate メソッドを参照してください。
try {
  const result = await gt.translate('Hello, world!');
  console.log(result); // "¡Hola, mundo!"
} catch (error) {
  console.error('翻訳に失敗しました:', error.message);
}ファイル翻訳
ファイルはジョブ単位で翻訳されます。 ファイルをアップロードするとジョブが開始されます。 複数のファイルをアップロードすると、その分だけ複数のジョブが開始されます。
詳しくは、uploadSourceFiles
および checkFileTranslations メソッドを参照してください。
// アップロードするファイル
const files = [
  {
    source: {
      fileName: 'src/components/Button.tsx',
      fileFormat: 'TSX',
      locale: 'en',
      content: '...',
    },
  },
];
// ソースファイルをアップロード
await gt.uploadSourceFiles(files);目次
GT クラス
翻訳と locale 機能を提供するメインクラス:
- Constructor - 設定を指定して GT インスタンスを初期化
- setConfig - GT インスタンスの設定を更新
翻訳メソッド
- translate - 主要な翻訳機能
- translateMany - バッチ翻訳
- setupProject - プロジェクトのセットアップ
- shouldSetupProject - セットアップが必要かを判定
- checkSetupStatus - セットアップ状況を確認
- getProjectData - プロジェクト情報を取得
- uploadSourceFiles - 翻訳対象ファイルをアップロード
- enqueueFiles - ファイルを処理キューに追加
- checkFileTranslations - 翻訳ステータスを確認
- downloadTranslatedFile - 翻訳済みファイルを1件ダウンロード
- downloadFileBatch - 複数の翻訳済みファイルをダウンロード
- querySourceFile - ソースファイル情報を取得
フォーマット用メソッド
- formatMessage - テキストの国際化フォーマット
- formatNum - 数値のフォーマット
- formatDateTime - 日付と時刻のフォーマット
ロケール関連メソッド
- getLocaleName - ロケールの表示名を取得
- getLocaleProperties - ロケールの詳細情報を取得
- getLocaleDirection - ロケールの文字方向を取得
- getLocaleEmoji - ロケールの旗のemojiを取得
- getRegionProperties - リージョンの情報とプロパティを取得
- isValidLocale - ロケールコードを検証
- resolveAliasLocale - 正準ロケールをエイリアスに変換
- resolveCanonicalLocale - エイリアスロケールを正準形に変換
- standardizeLocale - ロケールコードの表記を標準化
- isSameDialect - ロケールが同一方言を表すか確認
- isSameLanguage - ロケールが同一言語を表すか確認
- isSupersetLocale - ロケールの階層関係を確認
- determineLocale - 優先設定から最適なロケールを特定
- requiresTranslation - 翻訳が必要か判定
ユーティリティ関数
フォーマット関数
- formatMessage - テキストの単体フォーマット
- formatNum - 数値の単体フォーマット
- formatDateTime - 日時の単体フォーマット
ロケール関数
- getLocaleName - 独立したロケール名ユーティリティ
- getLocaleProperties - 独立したロケールプロパティユーティリティ
- getLocaleDirection - 独立したテキスト方向ユーティリティ
- getLocaleEmoji - 独立したemojiユーティリティ
- getRegionProperties - 独立したリージョンプロパティユーティリティ
- isValidLocale - 独立したロケール検証ユーティリティ
- resolveAliasLocale - 独立したエイリアスロケール解決ユーティリティ
- standardizeLocale - 独立したロケール標準化ユーティリティ
- isSameDialect - 独立した方言比較ユーティリティ
- isSameLanguage - 独立した言語比較ユーティリティ
- isSupersetLocale - 独立したロケール階層チェックユーティリティ
- determineLocale - 独立したロケールネゴシエーションユーティリティ
- requiresTranslation - 独立した翻訳要否チェックユーティリティ
型とインターフェース
TypeScript の定義:
- GTConstructorParams - 構成オプション
- LocaleProperties - 包括的な locale 情報
- TranslationResult - 翻訳結果の型
- TranslateManyResult - 一括翻訳の結果
- FileToTranslate - ファイル翻訳の設定
- EnqueueFilesOptions - ファイルのキューイング options
- Entry - 翻訳 Entry の構造
- EntryMetadata - Entry のメタデータ
- Content - コンテンツ型の定義
- Variable - Variable の構造
- VariableType - Variable の型定義
- JsxElement - JSX 要素型
- JsxChild - JSX 子要素型
- JsxChildren - JsxChildren 型
- DataFormat - DataFormat の仕様
- CustomMapping - CustomMapping の設定
次のステップ
このガイドはどうでしたか?

