gpt4 book ai didi

laravel - 日期验证-如何在“今天”和“明天”中本地化/翻译字符串

转载 作者:行者123 更新时间:2023-12-03 23:58:27 24 4
gpt4 key购买 nike

在我的模型中,我使用beforeafter为日期字段定义了一些验证规则:

'birth_date' => 'required|date|before:today|after:01-jan-1920',
'another_date' => 'required|date|before:tomorrow|after:01-jan-1990',


验证工作正常,但是我不知道如何转换验证消息上的字符串 todaytomorrow

validation.php语言文件中, afterbefore消息是可本地化的,但是消息的 :date部分仍显示 todaytomorrow的英文版本。

"after"            => "The :attribute must be a date after :date.",
"before" => "The :attribute must be a date before :date.",


如何在验证消息中本地化这两个词- todaytomorrow

最佳答案

简而言之,将以下代码添加到resources/lang/whichever/validation.php

'values' => [
// or whatever fields you wanna translate
'birth_date' => [
// or tomorrow
'today' => '今天'
]
]


解释:

https://github.com/laravel/framework/blob/7.x/src/Illuminate/Validation/Concerns/FormatsMessages.php#L319

/**
* Get the displayable name of the value.
*
* @param string $attribute
* @param mixed $value
* @return string
*/
public function getDisplayableValue($attribute, $value)
{
if (isset($this->customValues[$attribute][$value])) {
return $this->customValues[$attribute][$value];
}

// the key we want
$key = "validation.values.{$attribute}.{$value}";

// if the translate found, then use it
if (($line = $this->translator->get($key)) !== $key) {
return $line;
}

if (is_bool($value)) {
return $value ? 'true' : 'false';
}

return $value;
}

关于laravel - 日期验证-如何在“今天”和“明天”中本地化/翻译字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36546161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com