- ステータス
- 解決済み
- 解決されたバージョン
- 0.3.0
- 関連するプラグイン/テーマ
- Ninja Forms
- トピックタグ
- Compatibility
問題の概要
Ninja Formsには、Repeatable Fieldsという新機能があります。この機能は、高度な翻訳エディタでの翻訳にまだ対応していません。ただし、近日中に対応する予定です。
回避策
- 続行する前に、サイトの完全なバックアップを作成してください。
- バックアップの準備ができたら、2つのファイルを変更します。
- /wp-content/plugins/wpml-ninja-forms/classes/Hooks/NinjaForms/Strings.phpを開きます。
- 76行目を探します。
$package->registerField( $field->get_id(), $field->get_settings() );
- その直後に以下を追加します。
// Register repeater fields strings if ( 'repeater' === $field->get_settings( 'type' ) && $field->get_settings()['fields'] ) { foreach ( $field->get_settings()['fields'] as $subfield) { $package->registerField( $subfield['id'], $subfield ); } } - 次に、/wp-content/plugins/wpml-ninja-forms/vendor/wpml/forms/classes/Translation/Package.phpを開きます。
- 314行目を探します。
return $data;
- その直前に以下を追加します。
// Translate repeater fields strings if ( $data['fields'] ) { foreach ( $data['fields'] as $key => $field ) { $forTranslation = $this->fieldProperties->forTranslation( $field ); foreach ( $forTranslation as $propertyName => $translationSettings ) { $stringValue = $this->fieldProperties->getValue( $field, $propertyName ); if ( $stringValue ) { if ( $this->isArray( $stringValue, $translationSettings ) ) { $field[ $propertyName ] = $this->translateOptions( $stringValue, $field['id'], $translationSettings ); } else { $data['fields'][$key][$propertyName] = $this->translateString( $stringValue, $field['id'], $propertyName ); } } } } }
次のステップ
この問題はNinja Forms Multilingualの次期バージョンで解決される予定です。