- 상태
- 해결됨
- 해결된 버전
- 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의 다음 버전에서 이 문제를 해결할 예정입니다.