WOVN クラスでは以下のメソッドを提供しています
目次
最新の機能
- Wovn.changeLang(lang: String)
- Wovn.changeToSystemLang()
- Wovn.getCurrentLangCode()
- Wovn.getWovnIgnore(view: View)
- Wovn.getWovnStatus()
- Wovn.setWovnIgnore(view: View, ignore: Boolean)
- Wovn.translate(view: View, activity: Activity, config: WovnTranslationConfig)
- Wovn.translate(view: View, activity: String, config: WovnTranslationConfig)
- Wovn.translateMenu(menu: Menu, screen: String, callback: function)
- Wovn.translateMenu(menu: Menu, activity: Activity, callback: function)
- Wovn.translateView(view: View, screen: String, callback: function)
- Wovn.translateView(view: View, activity: Activity, callback: function)
非推奨の機能
- Wovn.addCallback(callback: function)
- Wovn.async(screen: String, callback: function)
- Wovn.setAdapterDropDownLayoutResource(adapter: Adapter, resource: Int)
- Wovn.setAdapterLayoutResource(adapter: Adapter, resource: Int)
- Wovn.setAdapterLayoutResource(adapter: Adapter, resource: Int)
- Wovn.setImageUrl(view: ImageView, url: String)
- Wovn.setImageUrl(view: ImageView, url: String, density: Int)
- Wovn.setPermission(permission: WovnPermission, enable: Boolean)
- Wovn.translateInMainThread (src: string, ScreenName: string, timeoutMilliSec: int)
- Wovn.renameScreen(screenName: originalScreenName, newScreenName: newScreenName)
最新の機能
Wovn.changeLang(lang: String)
対応SDKバージョン: 2.5.0 ~
表示する言語を引数langs
で指定した任意の言語に変更します。
このメソッドを実行後、translateView()
メソッドを実行する事でViewが翻訳されます。
changeLang
実行後に任意の callback
を追加することができます。
Argument name |
Type |
Explanation |
langs |
Lang |
変更する任意の言語(言語地域コードのCode列を参照) |
callback |
function(String) |
戻り値としてエンドユーザが選択した言語の文字列を返却します |
```kotlin
Wovn.changeLang(lang, langResult -> { textResult.setText(langResult); });
```
Wovn.changeToSystemLang()
対応SDKバージョン: 2.5.0 ~
表示する言語をアプリ利用端末側OS設定のシステム言語に変更します
このメソッドを実行後、translateView()
メソッドを実行する事でViewが翻訳されます。
changeToSystemLang
実行後に任意のcallback
を追加することができます。
Argument name |
Type |
Explanation |
callback |
function(String) |
戻り値としてエンドユーザが選択した言語の文字列を返却します |
```kotlin
Wovn.changeToSystemLang(langResult -> { textResult.setText(langResult);});
```
Wovn.getCurrentLangCode()
対応 SDK バージョン: 1.3.0~
現在適用されている言語の言語コードと地域コードをString?として返します。返却される言語コードの一覧は言語地域コードの「Code」列を参照してください。
Wovn.getWovnIgnore(view: View)
対応SDKバージョン: 1.2.0~
現在の ignore値を取得します
引数名 | 型 | 説明 |
view | View | ignore値を取得する対象の viewオブジェクト |
Wovn.getWovnStatus()
対応SDKバージョン: 1.1.2~
WOVN.app に関するステータスを取得出来ます。
ステータスは WovnStatus クラスによって返却されます。
メンバ | 型 | 説明 |
WovnStatus.wovnApp | Boolean | WOVN.app が利用可能か示します。 |
WovnStatus.offlineMode | Boolean | オフライン翻訳機能が利用可能か示します。 |
WovnStatus.cacheExpired |
Date |
端末に保存されている翻訳データの有効期限を示します。この日時を過ぎると、オフライン翻訳が動作しなくなります。 オフライン翻訳を利用するには、この日時になる前にネットワーク接続を行い、再度翻訳データをダウンロードする必要があります。 |
WovnStatus.offlineCacheSavedAt | Date | 最後に activateOfflineTranslation() を実行してオフライン翻訳データをダウンロードした日時を示します。 |
対応SDKバージョン: 1.6.0~
SDKバージョン 1.6.0以降は、上記に加えて下記パラメーターが追加されました。
メンバ | 型 | 説明 |
WovnStatus.sourceLanguage | String | WOVN管理画面で元言語として設定している言語のコードです。 |
WovnStatus.languages | Set<String> |
WOVN.app SDK で翻訳可能な言語コードの Set です。 WOVN管理画面で翻訳対象言語として設定されていて、1つ以上のページで公開されているすべての言語コードが取得可能です。 |
```kotlin
// 言語リスト取得
Set languages = status.getLanguages();
if (languages != null) {
String[] langListArray = new String[languages.size()];
languages.toArray(langListArray);
Arrays.sort(langListArray);
for (int i = 0; i < langListArray.length; i++) {
// ここでユーザが言語コードを選択できるような実装を行う
}
}
// 言語選択時の処理
String langCode = langListArray[pos];
Wovn.changeLang(langCode)
```
Wovn.setWovnIgnore(view: View, ignore: Boolean)
対応SDKバージョン: 1.2.0~
初期値は False です。
ignore に true を指定する事で、引数で指定した Viewクラスオブジェクトを WOVN によるレポートの送信、翻訳が行われないように明示的に宣言します。
引数名 | 型 | 説明 |
view | View | ignore値を設定する Viewオブジェクト |
ignore | Boolean | View に設定する値 |
Wovn.translate(view: View, activity: Activity, config: WovnTranslationConfig)
対応SDKバージョン: 2.0.0~
EventReporting の動作を細かく設定したい場合に用います。要件に応じて適切なご案内をしますので、ご利用の場合、WOVNカスタマーサポートまでお問い合わせください。
Wovn.translate(view: View, activity: String, config: WovnTranslationConfig)
対応SDKバージョン: 2.0.0~
EventReporting の動作を細かく設定したい場合に用います。要件に応じて適切なご案内をしますので、ご利用の場合、WOVNカスタマーサポートまでお問い合わせください。
Wovn.translateMenu(menu: Menu, screen: String, callback: function)
対応SDKバージョン: 1.9.0~
引数menu
が保持するコンテンツを翻訳します。
引数名 | 型 | 説明 |
menu | Menu | 言語を切り替える対象の Menu型オブジェクト |
screen | String | 表示されている画面を識別するための名前です。WOVNプロジェクト上の screen名と一致している必要があります。 |
callback | function | 省略可能。 翻訳対象の Menu・View の翻訳処理が全て完了した時に Callback として呼ばれます。 翻訳が全て完了してから文言を表示するなど、翻訳後にアプリ側で制御を行いたい場合に利用できます。 |
引数screen
には、任意の名前を指定します。
あらかじめWOVNプロジェクト上で同じ名前の Screen が作成されている事を確認してください。
注意
引数screen
で指定ができるのは半角英数字のみです。
Wovn.translateMenu(menu: Menu, activity: Activity, callback: function)
対応SDKバージョン: 1.9.0~
引数menu
が保持するコンテンツを翻訳します。
引数名 | 型 | 説明 |
menu | Menu | 言語を切り替える対象の Menu型オブジェクト |
activity | Activity | 渡された Activity の Class名を screenName として利用します |
callback | function | 省略可能。 翻訳対象の Menu・View の翻訳処理が全て完了した時に Callback として呼ばれます。 翻訳が全て完了してから文言を表示するなど、翻訳後にアプリ側で制御を行いたい場合に利用できます。 |
Wovn.translateView(view: View, screen: String, callback: function)
対応SDKバージョン: 1.9.0~
引数view
が保持するコンテンツを翻訳します。
View 内に子孫View がある場合、その子孫View も翻訳します。
引数名 | 型 | 説明 |
view | View | 言語を切り替える対象の View型オブジェクト |
screen | String | 表示されている画面を識別する為の名前です。WOVNプロジェクト上の screen名と一致している必要があります。 |
callback | function | 省略可能。 翻訳対象の Menu・View の翻訳処理が全て完了した時に Callback として呼ばれます。 翻訳が全て完了してから文言を表示するなど、翻訳後にアプリ側で制御を行いたい場合に利用できます。 |
引数screen
には、任意の名前を指定します。
あらかじめWOVNプロジェクト上で同じ名前の Screen が作成されている事を確認してください。
注意
引数screen
で指定出来るのは半角英数字のみです。
注意
translateView で翻訳済みのテキストに対して値を代入する事は避けてください。
WOVN.app SDKでは翻訳されたテキストなのか、翻訳前のテキストが判断がつかなくなるので、
値の再代入後に translateView を実行しても翻訳することができません。
Wovn.translateView(view: View, activity: Activity, callback: function)
対応SDKバージョン: 1.9.0~
引数view
が保持するコンテンツを翻訳します。
View 内に子孫View がある場合、その子孫View も翻訳します。
引数名 | 型 | 説明 |
view | View | 言語を切り替える対象の View型オブジェクト |
activity | Activity | 渡された Activity の Class名を screenName として利用します |
callback | function | 省略可能。 翻訳対象の Menu・Viewの翻訳処理が全て完了した時に Callback として呼ばれます。 翻訳が全て完了してから文言を表示するなど、翻訳後にアプリ側で制御を行いたい場合に利用できます。 |
注意
translateView で翻訳済みのテキストに対して値を代入する事は避けてください。
WOVN.app SDKでは翻訳されたテキストなのか、翻訳前のテキストが判断がつかなくなるので、
値の再代入後に translateView を実行しても翻訳することができません。
非推奨の機能
Wovn.addCallback(callback: function)
対応SDKバージョン: 1.3.0~
あらかじめこのメソッドを定義した処理をWovn.translateView
メソッドの完了後に実行します。
従って、translateView
メソッドが呼ばれる前にこのメソッドが実行されている必要があります。
このメソッドでは、param
オブジェクトストラクチャのプロパティとして4つのパラメータが提供されています。
プロパティ名 | 内容 |
param.target | translateView メソッドで呼ばれた View 単体 |
param.src | View が持つ元テキスト |
param.dst | View が持つ対訳テキスト |
param.langCode | View の持つ現在の言語コード |
```kotlin
Wovn.addCallback { param ->
Log.v("WOVN-demo", "${param.langCode} ${(param.target as View).id} ${param.src} ${param.dst}")
}
```
Wovn.async(function)
対応SDKバージョン: 1.11.0~
WovnClient
クラスをパラメータとして受け取るコールバックを実装し、ここでWovnClient.translate
メソッドを実行することで任意の文字列を翻訳できます。
引数名 | 型 | 説明 |
screenName | String |
省略可能。 表示されている画面を識別する為の名前です。WOVNプロジェクト上の screen名と一致している必要があります。 |
callback | function |
任意の文字列を翻訳するための function です。 |
- 文字列を翻訳する
```kotlin
Wovn.async("asyncScreen") {client ->
val translated = client.translate("Hello")
Log.v("WOVN-demo", "translated text : $translated")
}
```
- ダイアログを翻訳する
```kotlin
private void translateTexts(String[] sourceTexts) {
translate(getScreenName(), sourceTexts, translatedTexts-> {
Handler mainHandler = new Handler(Looper.getMainLooper());
mainHandler.post(() -> {
String title = translatedTexts[0];
String message = translatedTexts[1];
//Here you can show the pop-up
mActivity.showLangChangePop(title,message, buttonView);
//Logging to show that the texts are translating
Log.d(LOG_TAG, "Title: " + title);
Log.d(LOG_TAG, "Message: " + message);
});
});
}
private interface TranslationCallback {
void run(String[] translatedTexts);
}
private void translate(String screen, String[] sourceTexts, TranslationCallback callback) {
Wovn.async(screen, client -> {
String[] translatedTexts = new String[sourceTexts.length];
for (int i = 0; i < sourceTexts.length; i++){
translatedTexts[i] = client.translate(sourceTexts[i]);
}
callback.run(translatedTexts);
});
}
```
Wovn.setAdapterDropDownLayoutResource(adapter: Adapter, resource: Int)
対応SDKバージョン: 1.0.0~
Spinner の Adapter を翻訳する場合、 dropdown list の layout resourceを 通知します。
引数名 | 型 | 説明 |
adapter | Adapter |
翻訳対象の Adapter です。 |
resource | Int |
レイアウトリソースです。 ※このレイアウトリソースを省略した場合、デフォルトのリソースが使用されます。 android.R.layout.simple_spinner_dropdown_item |
CustomAdapter を使用する場合
CustomAdapter を使用する場合は、内部の View や Model を別途翻訳する実装を検討してください。
Wovn.setAdapterLayoutResource(adapter: Adapter, resource: Int)
対応SDKバージョン: 1.0.0~
AutoCompleteTextView または SpinnerのAdapter を翻訳する場合、layout、resource を通知します。
引数名 | 型 | 説明 |
adapter | Adapter |
翻訳対象の Adapter です。 ※CustomAdapter を使用する場合は、内部の View や Model を別途翻訳する実装を検討してください。 |
resource | Int |
レイアウトリソースです。 ※このレイアウトリソースを省略した場合、デフォルトのリソースが使用されます。 android.R.layout.simple_dropdown_item_1line |
CustomAdapter を使用する場合
CustomAdapter を使用する場合は、内部の View や Model を別途翻訳する実装を検討してください。
Wovn.setImageUrl(view: ImageView, url: String)
対応SDKバージョン: 1.0.0~
引数imageView
が保持する画像コンテンツをWOVN.ioへ送信します。
引数名 | 型 | 説明 |
view | ImageView | WOVNプロジェクトに通知する画像プロジェクト |
url | String |
置換対象画像の URL です。 引数 |
注意
置換元画像がインターネット上に公開されておらず、画像URL が用意できない場合は正規の画像としてレポート送信出来ません。
Wovn.setImageUrl(view: ImageView, url: String, density: Int)
対応SDKバージョン: 1.0.0~
引数imageView
が保持する画像コンテンツを WOVN へ送信します。
引数名 | 型 | 説明 |
view | ImageView | WOVN プロジェクトに通知する画像プロジェクト |
url | String |
置換対象画像の URL です。 引数 |
density | Int |
url にアップロードした画像の density を設定してください。 |
Wovn.setImageStateUrlMap(view: ImageView, stateUrlMap: LinkedHashMap<IntArray, String>)
対応SDKバージョン: 1.0.0~
引数imageView
が保持する画像コンテンツを WOVN へ送信します。画像が selector(StateListDrawable)で指定されている場合に使用します。
引数名 | 型 | 説明 |
view | ImageView | WOVN プロジェクトに通知する画像プロジェクトです。 |
stateUrlMap | LinkedHashMap<IntArray, String> |
State の IntArray / 置換対象画像の URLマップです。 |
```kotlin
val urlMap = LinkedHashMap<IntArray, String>()
urlMap[intArrayOf(android.R.attr.state_pressed)] = "image_url_pressed"
urlMap[intArrayOf(-android.R.attr.state_enabled)] = "image_url_disabled"
urlMap[IntArray(0)] = "image_url_default"
Wovn.setImageStateUrlMap(imageButton, urlMap)
```
Wovn.setPermission(permission: WovnPermission, enable: Boolean)
対応SDKバージョン: 1.12.0~ 2.1.0~
report, dynamic loading, error report機能でのデータ送信について、アプリ利用ユーザの同意有無を設定します。
詳細は Data Safety について を参照してください。
引数名 | 型 | 説明 |
permission | WovnPermission |
アプリ利用ユーザーの許可有無を設定する機能を指定します。
|
enable | Boolean |
アプリユーザー同意結果を指定します。 true:同意 false:拒否 |
Wovn. translateInMainThread (src: string, ScreenName: string, timeoutMilliSec: int)
対応SDKバージョン: 2.5.0 ~
文字列をWOVNに送信し、指定したScreenNameに保存し、翻訳結果を受け取ります。
通常のSDKの翻訳処理との違いは、バックエンドではなくメインスレッドで実行することです。
これによりアプリの処理タイミングの違いで翻訳後の文字列が上書きされたり翻訳すべき文字列が翻訳できない状況を防ぐことができます。
また、timeoutMilliSec
オプションを使用することで翻訳情報がない場合にタイムアウトする(ソース言語を表示する)ことができます。
引数名 |
型 |
説明 |
src |
String |
翻訳対象の文字列 |
ScreenName |
String |
送信先のスクリーン名 |
(Optional) timeoutMilliSec |
Int |
オプション)タイムアウト値。100msを推奨。 |
```kotlin
String translatedString = Wovn.translateInMainThread("Hello", "TranslateInMainThread", 100);
```
Wovn.renameScreen(screenName: originalScreenName, newScreenName: newScreenName)
対応SDKバージョン: 2.6.0 ~
レポート先の CACHE NAME を任意の名前に変更します。
引数名 | 型 | 説明 |
src |
String |
翻訳対象の文字列 |
ScreenName |
String |
オリジナルの ScreenName |
newScreenName |
String |
新しい ScreenName |