My suggestion would be to use the parameterized translation parameter in Laravel.
I would suggest creating such a structure:
For content that is shared and reusable:
trans('messages.alerts.update.success', ['item' => 'User']); // results in: 'User has successfully been updated' trans('messages.alerts.update.success.default'); // results in: 'Updated was successfull.'
For content strictly related to a specific area / problem ... (manager in this case):
trans('manager.alerts.update.user.success'); // results in: 'User has successfully been updated'
or
trans('manager.alerts.update.success', ['item' => 'User']); // results in: 'User has successfully been updated' trans('manager.alerts.update.success.default'); // results in: 'Updated was successfull.'
The idea is that for what is characteristic of the manager as having an update-successl message, which is likely to be different from other update-success messages, you should start with something of a specific type: manager.alerts... .. In general cases (where the same message can be used in several use cases). You should start with something general like messages.alerts.update...
Calling, for example, trans('alert.the_user_was_updated_successfully') should be avoided since you might have a BIG problem when you want to change the message. The key will still reflect the old value, while the value will be new.
Regarding your goals:
consistency and reuse . Some content will be duplicated. This cannot be avoided. However, this problem can be minimized by structuring the content and having a file with common words and phrases, for example. commons.words commons.phrases or 2 files (words and phrases) with several categories. Example: commons.time.day , commons.hello_world ...
readability . This will be a problem if you do not give the translator a file that already has all its meanings (in the default language or at the beginning from which it can translate). I really don't understand why you will not have the initial translation / content.
organization . You should try to think in the same way as with the developer. If you are trying to find something specific, you will understand and try to find something under that particular subject ( manager.alerts.... in this case) but if you are looking for something more general, you are most likely to search something in common ( messages.alerts.... in this case)
I have a similar problem and you sent a question about this. Unfortunately, there was also little interest in this issue.