$text) { // 지원하지 않는 언어 코드 if (! in_array($lang, $allowedLanguages)) { $fail(__('validation.translatable.unsupported_language', ['lang' => $lang])); return; } // null이거나 빈 문자열이 아닌 경우에만 검증 if ($text !== null && $text !== '') { // 문자열이 아닌 경우 if (! is_string($text)) { $fail(__('validation.translatable.must_be_string', ['lang' => $lang])); return; } // 최대 길이 초과 if (strlen($text) > $this->maxLength) { $fail(__('validation.translatable.max_length', [ 'lang' => $lang, 'max' => $this->maxLength, ])); return; } } } // 필수인 경우 최소 하나의 번역은 있어야 함 if ($this->required) { $hasValue = false; foreach ($value as $text) { if (! empty($text)) { $hasValue = true; break; } } if (! $hasValue) { $fail(__('validation.translatable.at_least_one_required')); } } } }