目次
概要
Event Reporting または translateView を設定すると、アプリ全体または設定した範囲のコンポーネントの値が WOVN へ送信されて、翻訳されます。
個人情報や、機械翻訳をする必要がないコンテンツは、下記手順を設定することで、翻訳の対象外にすることができます。
設定方法
コンポーネントに 直接 wovnIgnore を設定する
WOVN.app SDK が導入された環境は、自動的に UIView クラス拡張によって、 wovnIgnore プロパティが追加されています。
対象外にしたいコンポーネント に対して wovnIgnore を true に設定してください。
@IBOutlet weak var firstNameLabel: UILabel!
@IBOutlet weak var lastNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
firstNameLabel.wovnIgnore = true
lastNameLabel.wovnIgnore = true
Wovn.changeLang(lang: WOVNswift.Lang.english)
}
また、セッターを使うこともできます。
@IBOutlet weak var firstNameLabel: UILabel!
@IBOutlet weak var lastNameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Wovn.setWovnIgnore(firstNameLabel, true)
Wovn.setWovnIgnore(lastNameLabel, true)
Wovn.changeLang(lang: WOVNswift.Lang.english)
}
注意
translateView() メソッドを設定している場合、かならず translateView() メソッドが実行される前に wovnIgnore プロパティに対する定義が参照されるようにしてください。
wovnIgnore の設定が読み取られる前に translateView() が実行されることで、意図せず翻訳対象外に設定したコンポーネントがWOVNへ送信される可能性があります。
ID を指定して 設定ファイルから wovnIgnore を設定する
専用の設定ファイルを作成して、対象コンポーネントの ID を記述することで、直接ソースコードに手を加えることなく 翻訳対象外のコンポーネントを設定することができます。
-
翻訳対象から除外したいコンポーネントにマーカを付与します。3つのうちどれかを利用できます。
-
accessibilityIdentifier
-
restorationIdentifier
-
tag
-
-
以下のテキストファイルを作成してください。リソースとして取得できれば良いので、プロジェクトの配下であればどこでも動作します。
-
wovn-ignore.plist
-
-
作成したファイルに翻訳対象外にするコンポーネントのマーカを記述します。
ルートは Dictionary です。配下に
accessibility_id
、restoration_id
、tag
を追加できます。-
accessibility_id
の配下には、翻訳対象外にするコンポーネントのaccessibilityIdentifier
を記述します。
配下にscreens
またはcommons
を追加できます。-
screens
: 画面ごとに翻訳対象外を指定できます。value は Dictionaryです。-
さらに配下に各Screen を key として追加できます。
-
各Screen の value は Array です。この array で翻訳対象外コンポーネントの ID を羅列します。
-
-
commons
: プロジェクト全体で翻訳対象外を指定できます。value は Array です。
この array で翻訳対象外コンポーネントの ID を羅列します。
-
-
restoration_id
の配下には、除外するコンポーネントのrestorationIdentifier
を記述します。
配下にscreens
またはcommons
を追加できます。
各項目に関してはaccessibility_id
と同じです。 -
tag
の配下には、翻訳対象外にするコンポーネントのtag
を登録します。
配下にscreens
またはcommons
を追加できます。-
screens
: 画面ごとに翻訳対象外を指定できます。value は Dictionaryです。-
さらに下に各Screen を key として追加できます。
-
各Screen の value は Array です。この array で翻訳対象外コンポーネントの tag を Number type で羅列します。
※ tag の場合、0 を設定しても適用されません
-
-
commons
: プロジェクト全体で翻訳対象外を指定できます。value は Array です。
この array で除外対象コンポーネントの tag を Number typeで羅列します。
※ tagの場合、0 を設定しても適用されません
-
-
サンプルファイル
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList
1.0.dtd">
<plist version="1.0">
<dict>
<key>accessibility_id</key>
<dict>
<key>commons</key>
<array>
<string>commonAccessID3</string>
</array>
<key>screens</key>
<dict>
<key>ScreenA</key>
<array>
<string>accessID1</string>
<string>accessID2</string>
</array>
<key>ScreenB</key>
<array>
<string>accessID1</string>
</array>
</dict>
</dict>
<key>restoration_id</key>
<dict>
<key>commons</key>
<array>
<string>commonRestID3</string>
</array>
<key>screens</key>
<dict>
<key>ScreenA</key>
<array>
<string>restID1</string>
<string>restID2</string>
</array>
<key>ScreenB</key>
<array>
<string>restID1</string>
</array>
</dict>
</dict>
<key>tag</key>
<dict>
<key>commons</key>
<array>
<integer>103</integer>
</array>
<key>screens</key>
<dict>
<key>ScreenA</key>
<array>
<real>101</real>
</array>
<key>ScreenB</key>
<array>
<real>1</real>
</array>
</dict>
</dict>
</dict>
</plist>
```
運用イメージ
1. アプリから、翻訳除外にしたいコンポーネントを確認します。
2. コードから、該当コンポーネントを特定し、 Accessibility ID
を付与します。既にIDを持っているコンポーネントの場合はこの手順を省略します。
-
storyboardから、該当コンポーネントの
Identity Inspector
を開き、Accessibility
を有効にします。 -
Identifier
に一意のidを設定します。 -
プログラムの
viewDidLoad
イベント内でaccessibilityIdentifier
を設定しても同じ結果が得られます。
3. ソースコードのプロジェクトのルートに wovn-ignore.plist
ファイルを作成します。
4. 翻訳除外するコンポーネントのidをplistファイルに記載します。
- まず、Root配下に
accessibility_id
,restoration_id
,tag
を追加します。属性は全てDictionaryです。 accessibility_id
,restoration_id
,tag
の配下に、それぞれcommons
とscreens
を追加します。属性はcommons
がArray、screens
はDictionaryです。- 以下、
screens
の下にViewControllerを追加する際にはArray属性で追加します。 - 以下、
commons
配下またはscreens
>ViewController名
の配下にidを追加する際には、String属性で追加します。 - 特定のViewControllerに配置されたコンポーネントであれば、
accessibility_id
>screens
>ViewController名
の配下に設定します。 - 共通パーツなど、ViewControllerが特定できないコンポーネントであれば、
accessibility_id
>commons
の配下に設定します。
5. 実装が完了しました。アプリを再度起動し、コンポーネントが翻訳対象外になっていることを確認します。
6. SDKのログからでも ignoreが正常に適用されているかを確認することができます。WOVNswift.plist
ファイルに loglevel
パラメータを 0(Number)
で設定すれば見ることができます。
7.accessibility_id
だけでなく、 restoration_id
, tag
でも同様に実装することが可能です。
-
-
それぞれ
wovn-ignore.plist
の該当する場所に設定してください。 -
restoration_id
の場合はString、tag
の場合はNumber属性で追加すると動作します。
ただし、tag
の0値は無視されます。
-