Нет, в общем случае вы не можете предположить, что количество прочитанных байтов будет равно количеству запрошенных байтов, даже если в файле есть байты, оставшиеся для чтения.
Если вы читаете из локального файла вероятность того, что количество запрошенных байтов будет действительно прочитано, но это никоим образом не гарантировано (и вряд ли это произойдет, если вы читаете файл по сети).
См. документацию по методу ReadableByteChannel.read(ByteBuffer)
(что также относится к FileChannel.read(ByteBuffer)
). Предполагая, что канал находится в режиме блокировки, единственная гарантия заключается в том, что будет прочитан хотя бы один байт.
Посмотрите Специфичные для поля пользовательские сообщения в официальной документации.
Вы в основном должны предоставить собственный диктант для каждого языка, который вы хотите переопределить.
Я полагаю, что валидатор использует cpf
в качестве имени поля, а не правила валидации в этом случае.
Мне неясно, почему правило cpf
должно вызывать правило required
, но если вы передаете входному атрибуту name
или data-vv-name
, например:
<input type="text" data-vv-name="cpf" v-validate="required">
[ 1115] и передайте следующие аргументы в localize
:
Validator.localize('pt_BR', {
custom: {
cpf: {
required: 'Favor preencher o cpf'
}
}
})
Это будет отображать ваше локализованное сообщение, когда поле пусто.
Вот пример сообщения об ошибке для конкретного поля (при необходимости замените 'en' на 'pt_BR')
VeeValidate.Validator.localize('en', {
custom: {
cpf: {
required: 'Favor preencher o cpf'
}
}
})
Vue.use(VeeValidate)
new Vue({
el: '#app'
})
p {
color:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://unpkg.com/vee-validate@latest"></script>
<div id="app">
<input type="text" data-vv-name="cpf" v-validate="'required'">
<p>{{ errors.first('cpf') }}</p>
</div>