请教关于向 laravel 框架提交翻译提示的 pr 被驳回的疑问

事情是这样的

因为 laravel 的 throttle request 中间键返回的提示信息是英文,我想把它翻译成中文,项目已经安装了 laravel-lang 语言包,而且看到已经翻译了这段文字

"Too Many Attempts.": "尝试次数过多",

于是我向提了一个问题,想请问大家是怎么修改这里的提示信息的:

请问如何修改 Throttle 节流中间件提示文字为中文?

大家的解决方案都是自己处理异常,或新建中间见继承 throttle request 类,重写 buildException 方法。

但我觉得这很不符合 laravel 框架的风格,难道作者没有考虑过这个问题吗?


带着疑问我去查看了框架源码

vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php

protected function buildException($request, $key, $maxAttempts, $responseCallback = null)
{ 

...

return is_callable($responseCallback)
 ? new HttpResponseException($responseCallback($request, $headers))
 : new ThrottleRequestsException('Too Many Attempts.', null, $headers);
}

这里确实返回了字符串 Too Many Attempts.,但这里明明可以直接调用翻译助手函数来适配多语言的问题啊。

__('Too Many Attempts.')

于是我尝试向框架提交了一个 pr
github.com/laravel/framework/pull/...

但是立刻就被驳回了,相关开发人员给我的回复是
请教关于向 laravel 框架提交字段翻译提示 pr 被驳回的疑问

嗯…看的我一头雾水,他大概是想让我去查看以往提交的 pr ?于是我尝试在 pr 中搜索 previous attempts,发现也有其他人尝试提交和我类似的翻译提示消息的
github.com/laravel/framework/pull/...
但是都被驳回了,并且回复也都是一样的

请教关于向 laravel 框架提交字段翻译提示 pr 被驳回的疑问

我不太明白这是什么意思,我尝试了问他有没有相关信息?但没有得到更多回复。

啊!!! 这里我就很奇怪了,我不知道我到底是遗漏了哪里,难道大家都是这么做的?

于是我又去 stackoverflow 上面搜索相关解决方案
stackoverflow.com/questions/580482...

原来大家的解决方法都是一样的,要么就是重写 buildException 方法,要么就是自己捕捉异常进行处理。


不过从 github 上面得到的回复来看,一定是有些东西是我不知道的,或者是我的方法错了,或者作者拒绝这么做是有他的原因的。

但是我就是找不到它,虽然这是一个很简单的问题,但是我就是想弄明白。

拜托大家请问谁了解这其中的原因吗?麻烦告诉我,非常感谢!

悲观者永远正确,乐观者永远前行。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

昨天我差不多翻阅了所有相关 translate 的 PR,先说结论:

  1. Laravel 框架组件本身不能调用 Foundation 层级的 helper 助手,会报错
    "Class translator does not exist"
  2. 作者认为一些错误不应该暴露给客户端,需要开发人员进行捕捉异常和处理,并自定义返回提示消息

file

github.com/laravel/framework/pull/...

github.com/laravel/framework/pull/...

2年前 评论
讨论数量: 3

昨天我差不多翻阅了所有相关 translate 的 PR,先说结论:

  1. Laravel 框架组件本身不能调用 Foundation 层级的 helper 助手,会报错
    "Class translator does not exist"
  2. 作者认为一些错误不应该暴露给客户端,需要开发人员进行捕捉异常和处理,并自定义返回提示消息

file

github.com/laravel/framework/pull/...

github.com/laravel/framework/pull/...

2年前 评论

昨天我差不多翻阅了所有相关 translate 的 PR,先说结论:

  1. Laravel 框架组件本身不能调用 Foundation 层级的 helper 助手,会报错
    "Class translator does not exist"
  2. 作者认为一些错误不应该暴露给客户端,需要开发人员进行捕捉异常和处理,并自定义返回提示消息

file

github.com/laravel/framework/pull/...

github.com/laravel/framework/pull/...

2年前 评论

你得考虑包的依赖,和职责问题,每个包应该只做它最关心的事情——Do one thing and do it well!,ThrottleRequests.php 是在 illuminate/routing 这个包而翻译则需要依赖 illuminate/foundation 这个包,为什么要分包,就是要提高代码的可复用性,同时保留最大程度的自定义空间。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!