概要
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('こんにちは、世界!');
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 - 構成 options
- LocaleProperties - 詳細な locale 情報
- TranslationResult - 翻訳結果のレスポンス型
- TranslateManyResult - 一括翻訳のレスポンス
- FileToTranslate - ファイル翻訳の設定
- EnqueueFilesOptions - ファイルのキューイング options
- Entry - 翻訳エントリの構造
- EntryMetadata - EntryMetadata の情報
- Content - コンテンツ型の定義
- Variable - Variable の構造
- VariableType - Variable 型の定義
- JsxElement - JSX 要素型
- JsxChild - JSX 子要素型
- JsxChildren - JsxChildren 型
- DataFormat - dataFormat の仕様
- CustomMapping - customMapping の設定
次のステップ
このガイドはいかがですか?