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

알려진 모든 문제 →