メインコンテンツまでスキップ

公開APIリファレンス

このリファレンスでは Flutter SDK v4 が公開している主要メソッドをまとめています。SDK の初期化、翻訳、言語切り替え、WebView 連携に利用してください。

設定 API

initialize

Wovn.initialize({required String token, LocalSettings? config})

SDK を起動します。翻訳対象のウィジェットを描画する前に呼び出してください。

Parameters:

  • token: WOVN が発行するプロジェクトトークン。
  • config: 任意の LocalSettingslogLevel (0=trace, 1=info, 2=warning) と translationPreviewMode (bool) を指定できます。

Example:

await Wovn.initialize(
token: 'YOUR_TOKEN',
config: const LocalSettings(
logLevel: 0, // 0 = trace, 2 = warn
translationPreviewMode: false,
),
);

wrapApp

Wovn.wrapApp(Widget app) -> Widget

ルートウィジェットをラップし、言語変更の通知を受け取れるようにします。

Parameters:

  • app: ルートウィジェット。

Returns: runApp に渡すウィジェットを返します。

Example:

runApp(Wovn.wrapApp(const MyApp()));

翻訳 API

translate

Wovn().translate(String text, {BuildContext? context, String? screenName}) -> String

未対応ウィジェットやログ出力など、任意の文字列を翻訳します。

Parameters:

  • text: 翻訳元の文字列。
  • context: 画面名推定に使う BuildContext (任意)。
  • screenName: 明示的に指定する画面名 (任意)。

Returns: 翻訳結果。該当がない場合は元の文字列を返します。

Example:

final label = Wovn().translate('Welcome!', screenName: 'HomeScreen');

WovnText, WovnRichText, WovnListenableBuilder

言語変更に合わせて自動で再描画される置き換え用ウィジェットです。利用するには package:wovn_flutter/wovn_flutter.dart を import します。

Notes:

  • すべての WOVN ウィジェットは isIgnored プロパティをサポートしています。isIgnored: true を設定すると特定のテキストを翻訳から除外できます。
  • 詳細な例や代替アプローチについては 翻訳の除外 を参照してください。

Example:

WovnText('Welcome!', isIgnored: false);

言語 API

changeLang

Wovn().changeLang(Locale locale)

指定のロケールへ切り替えます。

Parameters:

  • locale: 例 const Locale('ja')

changeLangUsingLocaleString

Wovn().changeLangUsingLocaleString(String code)

IETF 言語タグを指定してロケールを切り替えます。

Parameters:

  • code: en-USja など。

changeToSystemLang

Wovn().changeToSystemLang()

端末のシステム言語に合わせます。

lang / langCode

Wovn().lang -> Locale および Wovn().langCode -> String

現在のロケールを Locale または言語タグで返します。

languagesListCode

Wovn().languagesListCode -> List<String>

利用可能な言語コードの一覧を返します。

sourceLanguage / secondaryLanguage

Wovn().sourceLanguage -> Locale および Wovn().secondaryLanguage -> Locale?

プロジェクトに設定されたソース言語とセカンダリ言語を返します。

有効化/無効化 API

v4.1.0 以降で利用可能

isWovnEnabled

Wovn().isWovnEnabled -> bool

WOVN 機能が現在有効かどうかを返します。

Returns: WOVN が有効な場合 (翻訳が動作し、レポートが有効な状態) は true、それ以外は false を返します。

Example:

if (Wovn().isWovnEnabled) {
debugPrint('WOVN translations are active');
}

enable

Wovn().enable()

WOVN 機能を有効化します。

有効化された状態では:

  • テキストの翻訳が実行されます
  • 未翻訳の文字列が WOVN サーバーにレポートされます
  • WebView が翻訳されます

Example:

Wovn().enable();

disable

Wovn().disable()

WOVN 機能を無効化します。

無効化された状態では:

  • 元の (未翻訳の) テキストが返されます
  • WOVN サーバーへのレポートは行われません
  • WebView は翻訳されません
  • 言語設定は再度有効化されるまで保持されます

Example:

Wovn().disable();

WebView API

followWebViewController

Wovn().followWebViewController(WebViewController controller, {bool shouldTranslateImmediately = true})

webview_flutter で作成した WebViewController を登録します。

Parameters:

  • controller: 追跡する WebViewController
  • shouldTranslateImmediately: false の場合はページ遷移ごとに translateWebViews を呼び出してください。

Example:

late final WebViewController controller;

void initState() {
controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setNavigationDelegate(
NavigationDelegate(onPageFinished: (_) => Wovn().translateWebViews()),
);

Wovn().followWebViewController(controller, shouldTranslateImmediately: false);
}

translateWebViews

Wovn().translateWebViews()

追跡中の WebView へ翻訳を注入します。

getTranslateWebViewScript

Wovn().getTranslateWebViewScript() -> String

WebView 用の JavaScript スニペットを返します (高度な用途向け)。

旧 API

startVisualUpdating

Wovn().startVisualUpdating(BuildContext context)

旧方式のポーリング翻訳です。WovnListenableBuilder を使う場合は避けてください。

runAppWithWovn / init

Wovn().runAppWithWovn(...)Wovn().init()

v1 で提供されていた API です。Wovn.initializeWovn.wrapApp を利用してください。

ステータス API

Wovn.isInitialized

Wovn.isInitialized -> bool

Wovn.initialize が完了したら true を返します。

Example:

if (Wovn.isInitialized) {
debugPrint('WOVN is ready');
}

getWovnStatus

Wovn().getWovnStatus() -> String

トークン、言語、利用可能言語、プレビューフラグ、Client ID を含む複数行のサマリー文字列を返します。

Example:

final status = Wovn().getWovnStatus();
debugPrint(status);

getClientId

Wovn().getClientId() -> String

Development Mode 登録に使う Client ID を返します。

isRunningInDevelopmentMode

Wovn().isRunningInDevelopmentMode() -> bool

端末がダッシュボードで承認済みかどうかを返します。

token

Wovn().token -> String

現在のプロジェクトトークンを返します。

version

Wovn.version -> String

SDK バージョン文字列を返します。

translationPreviewMode

Wovn().translationPreviewMode -> bool

プレビューモードが有効かつ端末が認証済みの場合のみ true を返します。