1<?php
2
3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
4// See the LICENCE file in the repository root for full licence text.
5
6return [
7 'invalid' => 'Invalid :attribute specified.',
8 'not_negative' => ':attribute cannot be negative.',
9 'required' => ':attribute is required.',
10 'too_long' => ':attribute exceeded maximum length - can only be up to :limit characters.',
11 'url' => 'Please enter a valid URL.',
12 'wrong_confirmation' => 'Confirmation does not match.',
13
14 'beatmapset_discussion' => [
15 'beatmap_missing' => 'Timestamp is specified but beatmap difficulty is missing.',
16 'beatmapset_no_hype' => "Beatmap can't be hyped.",
17 'hype_requires_null_beatmap' => 'Hype must be done in the General (all difficulties) section.',
18 'invalid_beatmap_id' => 'Invalid difficulty specified.',
19 'invalid_beatmapset_id' => 'Invalid beatmap specified.',
20 'locked' => 'Discussion is locked.',
21
22 'attributes' => [
23 'message_type' => 'Message type',
24 'timestamp' => 'Timestamp',
25 ],
26
27 'hype' => [
28 'discussion_locked' => "This beatmap is currently locked for discussion and can't be hyped",
29 'guest' => 'Must be signed in to hype.',
30 'hyped' => 'You have already hyped this beatmap.',
31 'limit_exceeded' => 'You have used all your hype.',
32 'not_hypeable' => 'This beatmap can not be hyped',
33 'owner' => 'No hyping your own beatmap.',
34 ],
35
36 'timestamp' => [
37 'exceeds_beatmapset_length' => 'Specified timestamp is beyond the length of the beatmap.',
38 'negative' => "Timestamp can't be negative.",
39 ],
40 ],
41
42 'beatmapset_discussion_post' => [
43 'discussion_locked' => 'Discussion is locked.',
44 'first_post' => 'Can not delete starting post.',
45
46 'attributes' => [
47 'message' => 'The message',
48 ],
49 ],
50
51 'comment' => [
52 'deleted_parent' => 'Replying to deleted comment is not allowed.',
53 'top_only' => 'Pinning comment reply is not allowed.',
54
55 'attributes' => [
56 'message' => 'The message',
57 ],
58 ],
59
60 'follow' => [
61 'invalid' => 'Invalid :attribute specified.',
62 ],
63
64 'forum' => [
65 'feature_vote' => [
66 'not_feature_topic' => 'Can only vote a feature request.',
67 'not_enough_feature_votes' => 'Not enough votes.',
68 ],
69
70 'poll_vote' => [
71 'invalid' => 'Invalid option specified.',
72 ],
73
74 'post' => [
75 'beatmapset_post_no_delete' => 'Deleting beatmap metadata post is not allowed.',
76 'beatmapset_post_no_edit' => 'Editing beatmap metadata post is not allowed.',
77 'first_post_no_delete' => 'Can\'t delete starting post',
78 'missing_topic' => 'Post is missing topic',
79 'only_quote' => 'Your reply contains only a quote.',
80
81 'attributes' => [
82 'post_text' => 'Post body',
83 ],
84 ],
85
86 'topic' => [
87 'attributes' => [
88 'topic_title' => 'Topic title',
89 ],
90 ],
91
92 'topic_poll' => [
93 'duplicate_options' => 'Duplicated option is not allowed.',
94 'grace_period_expired' => 'Can\'t edit a poll after more than :limit hours.',
95 'hiding_results_forever' => 'Can\'t hide results of a poll that never ends.',
96 'invalid_max_options' => 'Option per user may not exceed the number of available options.',
97 'minimum_one_selection' => 'A minimum of one option per user is required.',
98 'minimum_two_options' => 'Need at least two options.',
99 'too_many_options' => 'Exceeded maximum number of allowed options.',
100
101 'attributes' => [
102 'title' => 'Poll title',
103 ],
104 ],
105
106 'topic_vote' => [
107 'required' => 'Select an option when voting.',
108 'too_many' => 'Selected more options than allowed.',
109 ],
110 ],
111
112 'legacy_api_key' => [
113 'exists' => 'Only one API key is provided per user for the moment.',
114
115 'attributes' => [
116 'api_key' => 'api key',
117 'app_name' => 'application name',
118 'app_url' => 'application url',
119 ],
120 ],
121
122 'oauth' => [
123 'client' => [
124 'too_many' => 'Exceeded maximum number of allowed OAuth applications.',
125 'url' => 'Please enter valid URLs.',
126
127 'attributes' => [
128 'name' => 'Application Name',
129 'redirect' => 'Application Callback URL',
130 ],
131 ],
132 ],
133
134 'user' => [
135 'contains_username' => 'Password may not contain username.',
136 'email_already_used' => 'Email address already used.',
137 'email_not_allowed' => 'Email address not allowed.',
138 'invalid_country' => 'Country not in database.',
139 'invalid_discord' => 'Discord username invalid.',
140 'invalid_email' => "Doesn't seem to be a valid email address.",
141 'invalid_twitter' => 'Twitter username invalid.',
142 'too_short' => 'New password is too short.',
143 'unknown_duplicate' => 'Username or email address already used.',
144 'username_available_in' => 'This username will be available for use in :duration.',
145 'username_available_soon' => 'This username will be available for use any minute now!',
146 'username_invalid_characters' => 'The requested username contains invalid characters.',
147 'username_in_use' => 'Username is already in use!',
148 'username_locked' => 'Username is already in use!', // TODO: language for this should be slightly different.
149 'username_no_space_userscore_mix' => 'Please use either underscores or spaces, not both!',
150 'username_no_spaces' => "Username can't start or end with spaces!",
151 'username_not_allowed' => 'This username choice is not allowed.',
152 'username_too_short' => 'The requested username is too short.',
153 'username_too_long' => 'The requested username is too long.',
154 'weak' => 'Blacklisted password.',
155 'wrong_current_password' => 'Current password is incorrect.',
156 'wrong_email_confirmation' => 'Email confirmation does not match.',
157 'wrong_password_confirmation' => 'Password confirmation does not match.',
158 'too_long' => 'Exceeded maximum length - can only be up to :limit characters.',
159
160 'attributes' => [
161 'username' => 'Username',
162 'user_email' => 'Email address',
163 'password' => 'Password',
164 ],
165
166 'change_username' => [
167 'restricted' => 'You cannot change your username while restricted.',
168 'supporter_required' => [
169 '_' => 'You must have :link to change your name!',
170 'link_text' => 'supported osu!',
171 ],
172 'username_is_same' => 'This is already your username, silly!',
173 ],
174 ],
175
176 'user_report' => [
177 'no_ranked_beatmapset' => 'Ranked beatmaps cannot be reported',
178 'not_in_channel' => 'You\'re not in this channel.',
179 'reason_not_valid' => ':reason is not valid for this report type.',
180 'self' => "You can't report yourself!",
181 ],
182
183 'store' => [
184 'order_item' => [
185 'attributes' => [
186 'quantity' => 'Quantity',
187 'cost' => 'Cost',
188 ],
189 ],
190 ],
191];