Part 1

API リファレンス

AstroGlass のコンポーネントおよびユーティリティに関する技術的な API リファレンスです。

AstroGlass で使用される主要な関数、型、および構成オブジェクトの詳細なリファレンスです。

useTranslations(locale)

指定されたロケールに対する翻訳取得関数を返します。

モジュール: src/utils/i18n.ts

シグネチャ:

function useTranslations(locale: Locale): (key: string) => string;

パラメーター:

パラメーター説明
localeLocale ('en' | 'ru')翻訳をロードする言語のロケール コード。

戻り値: ドット記法のキーを翻訳された値に解決する関数 t(key: string): string を返します。キーが見つからない場合、キー自身をそのまま返し、開発 (development) モードでは警告 (warning) をログに出力します。

使用法:

---
import { useTranslations } from '../utils/i18n';
import { getLocaleFromUrl } from '../utils/locale-utils';
const locale = getLocaleFromUrl(Astro.url);
const t = useTranslations(locale);
---
<h1>{t('hero.title')}</h1>
<p>{t('hero.subtitle')}</p>

主な動作 (Behavior):

  • common.json のキーはルート レベルで展開されます (例: t('title'))
  • その他すべてのファイルはファイル名で名前空間が分けられます (例: t('hero.title')t('pricing.plans.pro.name'))
  • 欠落しているキーは、本番環境ではキーの文字列を返し、開発環境では警告をログに記録します

getLocaleFromUrl(url)

現在の URL からロケール コードを抽出します。

モジュール: src/utils/locale-utils.ts

シグネチャ:

function getLocaleFromUrl(url: URL): Locale;

URL パスからロケールのプレフィックスを返します。見つからない場合のデフォルトは 'en' です。


buildNavLinks(locale, section)

ドキュメントのサイドバー用のナビゲーション リンクを生成します。

モジュール: src/utils/docs-nav.ts

シグネチャ:

function buildNavLinks(locale: string, section?: string): NavLink[];

ドキュメントのサイドバー コンポーネントで使用される、ナビゲーション リンク オブジェクトの配列を返します。


getEnabledThemes()

有効になっているすべてのテーマ定義を返します。

モジュール: src/config/themes.ts

シグネチャ:

function getEnabledThemes(): ThemeDefinition[];

getThemeById(id)

ID によって特定のテーマ定義を返します。

モジュール: src/config/themes.ts

シグネチャ:

function getThemeById(id: string): ThemeDefinition | undefined;

型 (Type): ThemeDefinition

interface ThemeDefinition {
id: string; // URL スラッグ (例: 'liquid', 'aurora')
name: string; // 表示名
color: string; // Tailwind のグラデーション クラス
icon: string; // 絵文字アイコン
sections: string[]; // 有効なセクション
enabled: boolean; // テーマがアクティブかどうか
premium: boolean; // プレミアム フラグ
description: string; // 一行での説明
}

型 (Type): LocaleConfig

interface LocaleConfig {
code: string; // ISO 言語コード
name: string; // 英語での名称
nativeName: string; // ネイティブ言語での名称
flag: string; // 国旗の絵文字
direction: 'ltr' | 'rtl';
enabled: boolean;
}

利用可能なテーマ

ID名前アイコン
liquidLiquid💧
glassGlass🪟
neoNeo
luxuryLuxury👑
minimalMinimal
auroraAurora🌌