@djangocfg/i18n 2.1.567 → 2.1.569

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/locales/ru.ts CHANGED
@@ -6,578 +6,526 @@ import type { I18nTranslations } from '../types'
6
6
  export const ru: I18nTranslations = {
7
7
  ui: {
8
8
  select: {
9
- placeholder: 'Выберите...',
10
- search: 'Поиск...',
11
- noResults: 'Ничего не найдено.',
12
- selectAll: 'Выбрать все',
13
- clearAll: 'Очистить все',
14
- moreItems: '+{count} ещё',
15
- loading: 'Загрузка...',
9
+ placeholder: "Выберите...",
10
+ search: "Поиск...",
11
+ noResults: "Ничего не найдено.",
12
+ selectAll: "Выбрать все",
13
+ clearAll: "Очистить все",
14
+ moreItems: "+{count} ещё",
15
+ loading: "Загрузка...",
16
16
  },
17
-
18
17
  pagination: {
19
- previous: 'Назад',
20
- next: 'Вперёд',
21
- first: 'В начало',
22
- last: 'В конец',
23
- page: 'Страница {page}',
24
- of: 'из {total}',
25
- showing: '{from}-{to} из {total}',
18
+ previous: "Назад",
19
+ next: "Вперёд",
20
+ first: "В начало",
21
+ last: "В конец",
22
+ page: "Страница {page}",
23
+ of: "из {total}",
24
+ showing: "{from}-{to} из {total}",
26
25
  },
27
-
28
26
  dialog: {
29
- close: 'Закрыть',
30
- confirm: 'Подтвердить',
31
- cancel: 'Отмена',
32
- ok: 'ОК',
33
- yes: 'Да',
34
- no: 'Нет',
35
- delete: 'Удалить',
36
- save: 'Сохранить',
37
- discard: 'Отменить',
38
- // Alert dialog
39
- alertTitle: 'Уведомление',
40
- // Confirm dialog
41
- confirmTitle: 'Подтверждение',
42
- confirmDelete: 'Вы уверены, что хотите удалить?',
43
- // Prompt dialog
44
- promptTitle: 'Введите значение',
45
- promptPlaceholder: 'Введите...',
27
+ close: "Закрыть",
28
+ confirm: "Подтвердить",
29
+ cancel: "Отмена",
30
+ ok: "ОК",
31
+ yes: "Да",
32
+ no: "Нет",
33
+ delete: "Удалить",
34
+ save: "Сохранить",
35
+ discard: "Отменить",
36
+ alertTitle: "Уведомление",
37
+ confirmTitle: "Подтверждение",
38
+ confirmDelete: "Вы уверены, что хотите удалить?",
39
+ promptTitle: "Введите значение",
40
+ promptPlaceholder: "Введите...",
46
41
  },
47
-
48
42
  form: {
49
- submit: 'Отправить',
50
- cancel: 'Отмена',
51
- save: 'Сохранить',
52
- delete: 'Удалить',
53
- edit: 'Редактировать',
54
- create: 'Создать',
55
- update: 'Обновить',
56
- reset: 'Сбросить',
57
- clear: 'Очистить',
58
- loading: 'Загрузка...',
59
- saving: 'Сохранение...',
60
- deleting: 'Удаление...',
61
- required: 'Обязательное поле',
62
- optional: 'Необязательно',
63
- minLength: 'Минимум {min} символов',
64
- maxLength: 'Максимум {max} символов',
65
- invalidEmail: 'Введите корректный email',
66
- invalidUrl: 'Введите корректный URL',
67
- invalidPhone: 'Введите корректный номер телефона',
68
- passwordMismatch: 'Пароли не совпадают',
43
+ submit: "Отправить",
44
+ cancel: "Отмена",
45
+ save: "Сохранить",
46
+ delete: "Удалить",
47
+ edit: "Редактировать",
48
+ create: "Создать",
49
+ update: "Обновить",
50
+ reset: "Сбросить",
51
+ clear: "Очистить",
52
+ loading: "Загрузка...",
53
+ saving: "Сохранение...",
54
+ deleting: "Удаление...",
55
+ required: "Обязательное поле",
56
+ optional: "Необязательно",
57
+ minLength: "Минимум {min} символов",
58
+ maxLength: "Максимум {max} символов",
59
+ invalidEmail: "Введите корректный email",
60
+ invalidUrl: "Введите корректный URL",
61
+ invalidPhone: "Введите корректный номер телефона",
62
+ passwordMismatch: "Пароли не совпадают",
69
63
  },
70
-
71
64
  datetime: {
72
- today: 'Сегодня',
73
- yesterday: 'Вчера',
74
- tomorrow: 'Завтра',
75
- now: 'Только что',
76
- secondsAgo: '{count} секунд назад',
77
- minutesAgo: '{count} минут назад',
78
- hoursAgo: '{count} часов назад',
79
- daysAgo: '{count} дней назад',
80
- pickDate: 'Выберите дату',
81
- pickTime: 'Выберите время',
82
- pickDateTime: 'Выберите дату и время',
83
- pickDateRange: 'Выберите период',
65
+ today: "Сегодня",
66
+ yesterday: "Вчера",
67
+ tomorrow: "Завтра",
68
+ now: "Только что",
69
+ secondsAgo: "{count} секунд назад",
70
+ minutesAgo: "{count} минут назад",
71
+ hoursAgo: "{count} часов назад",
72
+ daysAgo: "{count} дней назад",
73
+ pickDate: "Выберите дату",
74
+ pickTime: "Выберите время",
75
+ pickDateTime: "Выберите дату и время",
76
+ pickDateRange: "Выберите период",
84
77
  },
85
-
86
78
  file: {
87
- upload: 'Загрузить',
88
- uploading: 'Загрузка...',
89
- dragDrop: 'Перетащите файлы сюда',
90
- browse: 'Выбрать файлы',
91
- remove: 'Удалить',
92
- maxSize: 'Макс. размер: {size}',
93
- invalidType: 'Неверный тип файла',
94
- tooLarge: 'Файл слишком большой',
79
+ upload: "Загрузить",
80
+ uploading: "Загрузка...",
81
+ dragDrop: "Перетащите файлы сюда",
82
+ browse: "Выбрать файлы",
83
+ remove: "Удалить",
84
+ maxSize: "Макс. размер: {size}",
85
+ invalidType: "Неверный тип файла",
86
+ tooLarge: "Файл слишком большой",
95
87
  },
96
-
97
88
  table: {
98
- noData: 'Нет данных',
99
- loading: 'Загрузка данных...',
100
- showing: 'Показано {from}-{to} из {total}',
101
- rowsPerPage: 'Строк на странице',
102
- sortAsc: 'Сортировка по возрастанию',
103
- sortDesc: 'Сортировка по убыванию',
104
- filter: 'Фильтр',
105
- clearFilters: 'Сбросить фильтры',
106
- selectAll: 'Выбрать все',
107
- deselectAll: 'Снять выделение',
108
- selected: 'Выбрано: {count}',
89
+ noData: "Нет данных",
90
+ loading: "Загрузка данных...",
91
+ showing: "Показано {from}-{to} из {total}",
92
+ rowsPerPage: "Строк на странице",
93
+ sortAsc: "Сортировка по возрастанию",
94
+ sortDesc: "Сортировка по убыванию",
95
+ filter: "Фильтр",
96
+ clearFilters: "Сбросить фильтры",
97
+ selectAll: "Выбрать все",
98
+ deselectAll: "Снять выделение",
99
+ selected: "Выбрано: {count}",
109
100
  },
110
-
111
101
  actions: {
112
- view: 'Просмотр',
113
- copy: 'Копировать',
114
- copied: 'Скопировано!',
115
- copyToClipboard: 'Копировать в буфер',
116
- download: 'Скачать',
117
- share: 'Поделиться',
118
- refresh: 'Обновить',
119
- retry: 'Повторить',
120
- expand: 'Развернуть',
121
- collapse: 'Свернуть',
122
- showMore: 'Показать больше',
123
- showLess: 'Показать меньше',
124
- seeAll: 'Смотреть все',
125
- goBack: 'Назад',
126
- remove: 'Удалить',
127
- previousSlide: 'Предыдущий слайд',
128
- nextSlide: 'Следующий слайд',
102
+ view: "Просмотр",
103
+ copy: "Копировать",
104
+ copied: "Скопировано!",
105
+ copyToClipboard: "Копировать в буфер",
106
+ download: "Скачать",
107
+ share: "Поделиться",
108
+ refresh: "Обновить",
109
+ retry: "Повторить",
110
+ expand: "Развернуть",
111
+ collapse: "Свернуть",
112
+ showMore: "Показать больше",
113
+ showLess: "Показать меньше",
114
+ seeAll: "Смотреть все",
115
+ goBack: "Назад",
116
+ remove: "Удалить",
117
+ previousSlide: "Предыдущий слайд",
118
+ nextSlide: "Следующий слайд",
129
119
  },
130
-
131
120
  phone: {
132
- searchCountries: 'Поиск стран...',
133
- noCountries: 'Страны не найдены',
121
+ searchCountries: "Поиск стран...",
122
+ noCountries: "Страны не найдены",
134
123
  },
135
-
136
124
  navigation: {
137
- title: 'Навигация',
125
+ title: "Навигация",
138
126
  },
139
-
140
127
  states: {
141
- loading: 'Загрузка',
142
- empty: 'Пусто',
143
- error: 'Ошибка',
144
- success: 'Успешно',
145
- warning: 'Предупреждение',
146
- info: 'Информация',
147
- pending: 'Ожидание',
148
- active: 'Активно',
149
- inactive: 'Неактивно',
150
- enabled: 'Включено',
151
- disabled: 'Отключено',
128
+ loading: "Загрузка",
129
+ empty: "Пусто",
130
+ error: "Ошибка",
131
+ success: "Успешно",
132
+ warning: "Предупреждение",
133
+ info: "Информация",
134
+ pending: "Ожидание",
135
+ active: "Активно",
136
+ inactive: "Неактивно",
137
+ enabled: "Включено",
138
+ disabled: "Отключено",
152
139
  },
153
-
154
140
  errors: {
155
- generic: 'Что-то пошло не так',
156
- network: 'Ошибка сети. Проверьте подключение.',
157
- timeout: 'Время ожидания истекло. Попробуйте ещё раз.',
158
- notFound: 'Не найдено',
159
- unauthorized: 'Войдите в аккаунт для продолжения',
160
- forbidden: 'У вас нет доступа',
161
- serverError: 'Ошибка сервера. Попробуйте позже.',
162
- validation: 'Проверьте правильность заполнения формы',
163
- unknown: 'Произошла неизвестная ошибка',
141
+ generic: "Что-то пошло не так",
142
+ network: "Ошибка сети. Проверьте подключение.",
143
+ timeout: "Время ожидания истекло. Попробуйте ещё раз.",
144
+ notFound: "Не найдено",
145
+ unauthorized: "Войдите в аккаунт для продолжения",
146
+ forbidden: "У вас нет доступа",
147
+ serverError: "Ошибка сервера. Попробуйте позже.",
148
+ validation: "Проверьте правильность заполнения формы",
149
+ unknown: "Произошла неизвестная ошибка",
164
150
  },
165
151
  },
166
-
167
152
  layouts: {
168
153
  sidebar: {
169
- toggle: 'Переключить боковую панель',
170
- collapse: 'Свернуть панель',
171
- expand: 'Развернуть панель',
154
+ toggle: "Переключить боковую панель",
155
+ collapse: "Свернуть панель",
156
+ expand: "Развернуть панель",
172
157
  },
173
-
174
158
  navigation: {
175
- menu: 'Меню',
176
- home: 'Главная',
177
- back: 'Назад',
178
- forward: 'Вперёд',
179
- toggleMobile: 'Открыть мобильное меню',
180
- breadcrumb: 'Навигация',
159
+ menu: "Меню",
160
+ home: "Главная",
161
+ back: "Назад",
162
+ forward: "Вперёд",
163
+ toggleMobile: "Открыть мобильное меню",
164
+ breadcrumb: "Навигация",
181
165
  },
182
-
183
166
  profile: {
184
- settings: 'Настройки',
185
- account: 'Аккаунт',
186
- logout: 'Выйти',
187
- login: 'Войти',
188
- signUp: 'Регистрация',
189
- signOut: 'Выйти',
190
- userMenu: 'Меню пользователя',
191
- language: 'Язык',
167
+ settings: "Настройки",
168
+ account: "Аккаунт",
169
+ logout: "Выйти",
170
+ login: "Войти",
171
+ signUp: "Регистрация",
172
+ signOut: "Выйти",
173
+ userMenu: "Меню пользователя",
174
+ language: "Язык",
192
175
  },
193
-
194
176
  theme: {
195
- toggle: 'Сменить тему',
196
- light: 'Светлая',
197
- dark: 'Тёмная',
198
- system: 'Системная',
177
+ toggle: "Сменить тему",
178
+ light: "Светлая",
179
+ dark: "Тёмная",
180
+ system: "Системная",
199
181
  },
200
-
201
182
  search: {
202
- placeholder: 'Поиск...',
203
- noResults: 'Ничего не найдено',
204
- recentSearches: 'Недавние запросы',
205
- clearHistory: 'Очистить историю',
183
+ placeholder: "Поиск...",
184
+ noResults: "Ничего не найдено",
185
+ recentSearches: "Недавние запросы",
186
+ clearHistory: "Очистить историю",
206
187
  },
207
-
208
188
  mobile: {
209
- closeMenu: 'Закрыть меню',
189
+ closeMenu: "Закрыть меню",
210
190
  },
211
-
212
191
  errors: {
213
- somethingWentWrong: 'Что-то пошло не так',
214
- tryRefreshing: 'Произошла непредвиденная ошибка. Попробуйте обновить страницу.',
215
- refreshPage: 'Обновить страницу',
216
- goBack: 'Назад',
217
- goHome: 'На главную',
218
- needHelp: 'Нужна помощь?',
219
- contactSupport: 'Связаться с поддержкой',
220
- checkStatus: 'Проверить статус сервисов',
221
- persistsContact: 'Если проблема повторяется, свяжитесь с {email}',
222
- error: 'Ошибка',
223
- badRequest: 'Неверный запрос',
224
- authRequired: 'Требуется авторизация',
225
- accessDenied: 'Доступ запрещён',
226
- pageNotFound: 'Страница не найдена',
227
- requestTimeout: 'Время ожидания истекло',
228
- serverError: 'Ошибка сервера',
229
- badGateway: 'Ошибка шлюза',
230
- serviceUnavailable: 'Сервис недоступен',
231
- gatewayTimeout: 'Время ожидания шлюза истекло',
232
- badRequestDesc: 'Запрос не может быть обработан. Проверьте введённые данные и попробуйте снова.',
233
- authRequiredDesc: 'Для доступа к этой странице необходимо войти в систему.',
234
- accessDeniedDesc: 'У вас нет прав для доступа к этому ресурсу.',
235
- pageNotFoundDesc: 'Страница, которую вы ищете, не существует или была перемещена.',
236
- requestTimeoutDesc: 'Обработка запроса заняла слишком много времени. Попробуйте ещё раз.',
237
- serverErrorDesc: 'Произошла ошибка на сервере. Мы работаем над её исправлением.',
238
- badGatewayDesc: 'Сервер получил неверный ответ. Попробуйте позже.',
239
- serviceUnavailableDesc: 'Сервис временно недоступен. Попробуйте позже.',
240
- gatewayTimeoutDesc: 'Сервер слишком долго отвечает. Попробуйте ещё раз.',
241
- unknownErrorDesc: 'Произошла непредвиденная ошибка. Попробуйте снова или свяжитесь с поддержкой.',
192
+ somethingWentWrong: "Что-то пошло не так",
193
+ tryRefreshing: "Произошла непредвиденная ошибка. Попробуйте обновить страницу.",
194
+ refreshPage: "Обновить страницу",
195
+ goBack: "Назад",
196
+ goHome: "На главную",
197
+ needHelp: "Нужна помощь?",
198
+ contactSupport: "Связаться с поддержкой",
199
+ checkStatus: "Проверить статус сервисов",
200
+ persistsContact: "Если проблема повторяется, свяжитесь с {email}",
201
+ error: "Ошибка",
202
+ badRequest: "Неверный запрос",
203
+ authRequired: "Требуется авторизация",
204
+ accessDenied: "Доступ запрещён",
205
+ pageNotFound: "Страница не найдена",
206
+ requestTimeout: "Время ожидания истекло",
207
+ serverError: "Ошибка сервера",
208
+ badGateway: "Ошибка шлюза",
209
+ serviceUnavailable: "Сервис недоступен",
210
+ gatewayTimeout: "Время ожидания шлюза истекло",
211
+ badRequestDesc: "Запрос не может быть обработан. Проверьте введённые данные и попробуйте снова.",
212
+ authRequiredDesc: "Для доступа к этой странице необходимо войти в систему.",
213
+ accessDeniedDesc: "У вас нет прав для доступа к этому ресурсу.",
214
+ pageNotFoundDesc: "Страница, которую вы ищете, не существует или была перемещена.",
215
+ requestTimeoutDesc: "Обработка запроса заняла слишком много времени. Попробуйте ещё раз.",
216
+ serverErrorDesc: "Произошла ошибка на сервере. Мы работаем над её исправлением.",
217
+ badGatewayDesc: "Сервер получил неверный ответ. Попробуйте позже.",
218
+ serviceUnavailableDesc: "Сервис временно недоступен. Попробуйте позже.",
219
+ gatewayTimeoutDesc: "Сервер слишком долго отвечает. Попробуйте ещё раз.",
220
+ unknownErrorDesc: "Произошла непредвиденная ошибка. Попробуйте снова или свяжитесь с поддержкой.",
242
221
  },
243
-
244
222
  push: {
245
- enableNotifications: 'Включить уведомления',
246
- stayUpdated: 'Получайте важные обновления и оповещения',
247
- enable: 'Включить',
248
- notNow: 'Не сейчас',
249
- dismiss: 'Закрыть',
223
+ enableNotifications: "Включить уведомления",
224
+ stayUpdated: "Получайте важные обновления и оповещения",
225
+ enable: "Включить",
226
+ notNow: "Не сейчас",
227
+ dismiss: "Закрыть",
250
228
  },
251
-
252
229
  auth: {
253
- authRequired: 'Требуется авторизация',
254
- pleaseSignIn: 'Пожалуйста, войдите для продолжения',
255
- goToSignIn: 'Перейти к входу',
256
-
257
- // Identifier step
230
+ authRequired: "Требуется авторизация",
231
+ pleaseSignIn: "Пожалуйста, войдите для продолжения",
232
+ goToSignIn: "Перейти к входу",
258
233
  identifier: {
259
- title: 'Вход',
234
+ title: "Вход",
260
235
  subtitle: {
261
- email: 'Введите email для продолжения',
262
- phone: 'Введите номер телефона для продолжения',
236
+ email: "Введите email для продолжения",
237
+ phone: "Введите номер телефона для продолжения",
263
238
  },
264
239
  placeholder: {
265
- email: 'email@example.com',
266
- phone: 'Введите номер телефона',
240
+ email: "email@example.com",
241
+ phone: "Введите номер телефона",
267
242
  },
268
- button: 'Продолжить',
243
+ button: "Продолжить",
269
244
  oauth: {
270
- github: 'Войти через GitHub',
245
+ github: "Войти через GitHub",
271
246
  },
272
247
  channel: {
273
- email: 'Email',
274
- phone: 'Телефон',
248
+ email: "Email",
249
+ phone: "Телефон",
275
250
  },
276
251
  },
277
-
278
- // OTP step
279
252
  otp: {
280
- title: 'Введите код',
281
- subtitle: 'Мы отправили код на',
282
- button: 'Подтвердить',
283
- resend: 'Отправить повторно',
284
- changeEmail: 'Изменить email',
285
- changePhone: 'Изменить телефон',
286
- openMailbox: 'Открыть {provider}',
253
+ title: "Введите код",
254
+ subtitle: "Мы отправили код на",
255
+ button: "Подтвердить",
256
+ resend: "Отправить повторно",
257
+ changeEmail: "Изменить email",
258
+ changePhone: "Изменить телефон",
259
+ openMailbox: "Открыть {provider}",
287
260
  },
288
-
289
- // Two-factor step
290
261
  twoFactor: {
291
- title: 'Двухфакторная аутентификация',
262
+ title: "Двухфакторная аутентификация",
292
263
  subtitle: {
293
- totp: 'Введите 6-значный код из приложения-аутентификатора',
294
- backup: 'Введите один из резервных кодов',
264
+ totp: "Введите 6-значный код из приложения-аутентификатора",
265
+ backup: "Введите один из резервных кодов",
295
266
  },
296
267
  placeholder: {
297
- backup: 'XXXXXXXX',
268
+ backup: "XXXXXXXX",
298
269
  },
299
- button: 'Подтвердить',
270
+ button: "Подтвердить",
300
271
  toggle: {
301
- toBackup: 'Использовать резервный код',
302
- toTotp: 'Использовать приложение',
272
+ toBackup: "Использовать резервный код",
273
+ toTotp: "Использовать приложение",
303
274
  },
304
275
  },
305
-
306
- // 2FA Setup
307
276
  setup: {
308
277
  loading: {
309
- title: 'Настройка...',
310
- button: 'Загрузка',
278
+ title: "Настройка...",
279
+ button: "Загрузка",
311
280
  },
312
281
  qrCode: {
313
- title: 'Настройка 2FA',
314
- subtitle: 'Отсканируйте QR-код приложением-аутентификатором',
315
- manualEntry: 'Не можете сканировать? Введите вручную',
316
- confirmPrompt: 'Введите 6-значный код для подтверждения',
317
- button: 'Включить 2FA',
318
- skip: 'Пропустить',
282
+ title: "Настройка 2FA",
283
+ subtitle: "Отсканируйте QR-код приложением-аутентификатором",
284
+ manualEntry: "Не можете сканировать? Введите вручную",
285
+ confirmPrompt: "Введите 6-значный код для подтверждения",
286
+ button: "Включить 2FA",
287
+ skip: "Пропустить",
319
288
  },
320
289
  complete: {
321
- title: '2FA включена',
322
- subtitle: 'Сохраните резервные коды в безопасном месте',
323
- instruction: 'Каждый код можно использовать только один раз',
324
- copyAll: 'Копировать все коды',
325
- copied: 'Скопировано',
326
- done: 'Готово',
290
+ title: "2FA включена",
291
+ subtitle: "Сохраните резервные коды в безопасном месте",
292
+ instruction: "Каждый код можно использовать только один раз",
293
+ copyAll: "Копировать все коды",
294
+ copied: "Скопировано",
295
+ done: "Готово",
327
296
  },
328
297
  },
329
-
330
- // Success
331
298
  success: {
332
- message: 'Вход выполнен успешно',
299
+ message: "Вход выполнен успешно",
300
+ redirecting: "Переходим…",
333
301
  },
334
-
335
302
  divider: {
336
- or: 'или',
303
+ or: "или",
337
304
  },
338
305
  footer: {
339
- terms: 'Условия',
340
- privacy: 'Конфиденциальность',
341
- support: 'Поддержка',
306
+ terms: "Условия",
307
+ privacy: "Конфиденциальность",
308
+ support: "Поддержка",
342
309
  },
343
-
344
- // Dev mode
345
310
  dev: {
346
- anyCodeWorks: 'Режим разработки: подойдёт любой код',
311
+ anyCodeWorks: "Режим разработки: подойдёт любой код",
347
312
  },
348
313
  },
349
-
350
314
  chat: {
351
- aiAssistant: 'AI Ассистент',
352
- defaultTitle: 'AI Чат',
353
- newChat: 'Новый чат',
354
- closeChat: 'Закрыть чат',
355
- switchToFloating: 'Плавающий режим',
356
- switchToSidebar: 'Режим боковой панели',
357
- dragToResize: 'Потяните для изменения размера',
358
- howCanIHelp: 'Чем могу помочь?',
315
+ aiAssistant: "AI Ассистент",
316
+ defaultTitle: "AI Чат",
317
+ newChat: "Новый чат",
318
+ closeChat: "Закрыть чат",
319
+ switchToFloating: "Плавающий режим",
320
+ switchToSidebar: "Режим боковой панели",
321
+ dragToResize: "Потяните для изменения размера",
322
+ howCanIHelp: "Чем могу помочь?",
359
323
  },
360
-
361
324
  pwa: {
362
- addToHomeScreen: 'На главный экран',
363
- installApp: 'Установить приложение',
364
- tapToLearnHow: 'Нажмите, чтобы узнать как',
365
- clickToSeeGuide: 'Нажмите для инструкции',
366
- tapToInstall: 'Нажмите для установки',
367
- installing: 'Установка...',
368
- dismiss: 'Закрыть',
369
- appLogo: 'Логотип приложения',
370
- iosTitle: 'На главный экран',
371
- iosDescription: 'Установите приложение на iPhone для быстрого доступа',
372
- iosStep1Title: 'Нажмите «Поделиться»',
373
- iosStep1Desc: 'Внизу экрана Safari',
374
- iosStep2Title: 'Найдите опцию',
375
- iosStep2Desc: '«На экран Домой»',
376
- iosStep3Title: 'Подтвердите',
377
- iosStep3Desc: 'Нажмите «Добавить» справа вверху',
378
- gotIt: 'Понятно',
379
- desktopTitle: 'Установка на компьютер',
380
- desktopDescription: 'Установите приложение в {browser} для быстрого доступа',
381
- desktopDescSafari: 'Safari на macOS имеет ограниченную поддержку PWA. Для лучшего опыта используйте Chrome, Edge или Brave.',
382
- desktopTip: 'Также можно нажать правой кнопкой на странице и найти опцию «Установить» в {browser}',
383
- desktopFirefoxNote: 'Firefox имеет ограниченную поддержку PWA. Некоторые функции могут работать некорректно.',
384
- chromiumStep1Title: 'Найдите значок установки',
385
- chromiumStep1Desc: 'Ищите значок установки в адресной строке (справа)',
386
- chromiumStep2Title: 'Нажмите «Установить»',
387
- chromiumStep2Desc: 'Нажмите на значок и выберите «Установить»',
388
- chromiumStep3Title: 'Подтвердите',
389
- chromiumStep3Desc: 'Нажмите «Установить» в диалоговом окне',
390
- firefoxStep1Title: 'Откройте меню',
391
- firefoxStep1Desc: 'Нажмите кнопку меню (три линии)',
392
- firefoxStep2Title: 'Найдите опцию установки',
393
- firefoxStep2Desc: 'Ищите «Установить» или «На главный экран»',
394
- firefoxStep3Title: 'Подтвердите',
395
- firefoxStep3Desc: 'Следуйте инструкциям установки',
396
- safariStep1Title: 'Ограниченная поддержка',
397
- safariStep1Desc: 'Safari на macOS имеет ограниченную поддержку PWA',
398
- safariStep2Title: 'Используйте Chromium браузер',
399
- safariStep2Desc: 'Рекомендуем Chrome, Edge или Brave для полноценного PWA',
400
- unknownStep1Title: 'Проверьте адресную строку',
401
- unknownStep1Desc: 'Ищите значок установки или загрузки',
402
- unknownStep2Title: 'Или используйте меню',
403
- unknownStep2Desc: 'Проверьте меню браузера на наличие опции установки',
404
- unknownStep3Title: 'Подтвердите',
405
- unknownStep3Desc: 'Следуйте инструкциям установки',
406
- close: 'Закрыть',
325
+ addToHomeScreen: "На главный экран",
326
+ installApp: "Установить приложение",
327
+ tapToLearnHow: "Нажмите, чтобы узнать как",
328
+ clickToSeeGuide: "Нажмите для инструкции",
329
+ tapToInstall: "Нажмите для установки",
330
+ installing: "Установка...",
331
+ dismiss: "Закрыть",
332
+ appLogo: "Логотип приложения",
333
+ iosTitle: "На главный экран",
334
+ iosDescription: "Установите приложение на iPhone для быстрого доступа",
335
+ iosStep1Title: "Нажмите «Поделиться»",
336
+ iosStep1Desc: "Внизу экрана Safari",
337
+ iosStep2Title: "Найдите опцию",
338
+ iosStep2Desc: "«На экран Домой»",
339
+ iosStep3Title: "Подтвердите",
340
+ iosStep3Desc: "Нажмите «Добавить» справа вверху",
341
+ gotIt: "Понятно",
342
+ desktopTitle: "Установка на компьютер",
343
+ desktopDescription: "Установите приложение в {browser} для быстрого доступа",
344
+ desktopDescSafari: "Safari на macOS имеет ограниченную поддержку PWA. Для лучшего опыта используйте Chrome, Edge или Brave.",
345
+ desktopTip: "Также можно нажать правой кнопкой на странице и найти опцию «Установить» в {browser}",
346
+ desktopFirefoxNote: "Firefox имеет ограниченную поддержку PWA. Некоторые функции могут работать некорректно.",
347
+ chromiumStep1Title: "Найдите значок установки",
348
+ chromiumStep1Desc: "Ищите значок установки в адресной строке (справа)",
349
+ chromiumStep2Title: "Нажмите «Установить»",
350
+ chromiumStep2Desc: "Нажмите на значок и выберите «Установить»",
351
+ chromiumStep3Title: "Подтвердите",
352
+ chromiumStep3Desc: "Нажмите «Установить» в диалоговом окне",
353
+ firefoxStep1Title: "Откройте меню",
354
+ firefoxStep1Desc: "Нажмите кнопку меню (три линии)",
355
+ firefoxStep2Title: "Найдите опцию установки",
356
+ firefoxStep2Desc: "Ищите «Установить» или «На главный экран»",
357
+ firefoxStep3Title: "Подтвердите",
358
+ firefoxStep3Desc: "Следуйте инструкциям установки",
359
+ safariStep1Title: "Ограниченная поддержка",
360
+ safariStep1Desc: "Safari на macOS имеет ограниченную поддержку PWA",
361
+ safariStep2Title: "Используйте Chromium браузер",
362
+ safariStep2Desc: "Рекомендуем Chrome, Edge или Brave для полноценного PWA",
363
+ unknownStep1Title: "Проверьте адресную строку",
364
+ unknownStep1Desc: "Ищите значок установки или загрузки",
365
+ unknownStep2Title: "Или используйте меню",
366
+ unknownStep2Desc: "Проверьте меню браузера на наличие опции установки",
367
+ unknownStep3Title: "Подтвердите",
368
+ unknownStep3Desc: "Следуйте инструкциям установки",
369
+ close: "Закрыть",
407
370
  },
408
-
409
371
  profilePage: {
410
- title: 'Профиль',
411
- account: 'Аккаунт',
412
- personalInfo: 'Личные данные',
413
- work: 'Работа',
414
- security: 'Безопасность',
415
- actions: 'Действия',
416
- email: 'Email',
417
- firstName: 'Имя',
418
- lastName: 'Фамилия',
419
- company: 'Компания',
420
- position: 'Должность',
421
- phone: 'Телефон',
422
- notSet: 'Не указано',
423
- addFirstName: 'Добавить имя',
424
- addLastName: 'Добавить фамилию',
425
- addPhone: 'Добавить телефон',
426
- addCompany: 'Добавить компанию',
427
- addPosition: 'Добавить должность',
428
- on: 'Вкл',
429
- off: 'Выкл',
430
- save: 'Сохранить',
431
- saving: 'Сохранение...',
432
- cancel: 'Отмена',
433
- signOut: 'Выйти',
434
- deleteAccount: 'Удалить аккаунт',
435
- deleting: 'Удаление...',
436
- twoFactorAuth: 'Двухфакторная аутентификация',
437
- twoFactorEnabled: 'Двухфакторная аутентификация включена',
438
- twoFactorDisabled: 'Добавьте дополнительный уровень защиты',
439
- enable2FA: 'Включить',
440
- avatar: 'Аватар',
441
- changeAvatar: 'Изменить аватар',
442
- memberSince: 'Участник с {date}',
443
- enterField: 'Введите {field}',
444
- profileUpdated: 'Профиль обновлён',
445
- avatarUpdated: 'Аватар обновлён',
446
- failedToUpdate: 'Не удалось обновить',
447
- failedToUploadAvatar: 'Не удалось загрузить аватар',
448
- selectImageFile: 'Пожалуйста, выберите изображение',
449
- fileTooLarge: 'Размер файла должен быть меньше 5МБ',
450
- notAuthenticated: 'Не авторизован',
451
- pleaseLogIn: 'Пожалуйста, войдите для просмотра профиля.',
452
- deleteAccountTitle: 'Удаление аккаунта',
453
- deleteAccountDesc: 'Это действие необратимо. Ваш аккаунт будет удалён навсегда.',
454
- typeToConfirm: 'Введите {word} для подтверждения:',
455
- confirmationWord: 'УДАЛИТЬ',
372
+ title: "Профиль",
373
+ account: "Аккаунт",
374
+ personalInfo: "Личные данные",
375
+ work: "Работа",
376
+ security: "Безопасность",
377
+ actions: "Действия",
378
+ email: "Email",
379
+ firstName: "Имя",
380
+ lastName: "Фамилия",
381
+ company: "Компания",
382
+ position: "Должность",
383
+ phone: "Телефон",
384
+ notSet: "Не указано",
385
+ addFirstName: "Добавить имя",
386
+ addLastName: "Добавить фамилию",
387
+ addPhone: "Добавить телефон",
388
+ addCompany: "Добавить компанию",
389
+ addPosition: "Добавить должность",
390
+ on: "Вкл",
391
+ off: "Выкл",
392
+ save: "Сохранить",
393
+ saving: "Сохранение...",
394
+ cancel: "Отмена",
395
+ signOut: "Выйти",
396
+ deleteAccount: "Удалить аккаунт",
397
+ deleting: "Удаление...",
398
+ twoFactorAuth: "Двухфакторная аутентификация",
399
+ twoFactorEnabled: "Двухфакторная аутентификация включена",
400
+ twoFactorDisabled: "Добавьте дополнительный уровень защиты",
401
+ enable2FA: "Включить",
402
+ avatar: "Аватар",
403
+ changeAvatar: "Изменить аватар",
404
+ memberSince: "Участник с {date}",
405
+ enterField: "Введите {field}",
406
+ profileUpdated: "Профиль обновлён",
407
+ avatarUpdated: "Аватар обновлён",
408
+ failedToUpdate: "Не удалось обновить",
409
+ failedToUploadAvatar: "Не удалось загрузить аватар",
410
+ selectImageFile: "Пожалуйста, выберите изображение",
411
+ fileTooLarge: "Размер файла должен быть меньше 5МБ",
412
+ notAuthenticated: "Не авторизован",
413
+ pleaseLogIn: "Пожалуйста, войдите для просмотра профиля.",
414
+ deleteAccountTitle: "Удаление аккаунта",
415
+ deleteAccountDesc: "Это действие необратимо. Ваш аккаунт будет удалён навсегда.",
416
+ typeToConfirm: "Введите {word} для подтверждения:",
417
+ confirmationWord: "УДАЛИТЬ",
456
418
  },
457
419
  },
458
-
459
420
  api: {
460
421
  errors: {
461
- networkError: 'Ошибка сети',
462
- connectionFailed: 'Не удалось подключиться',
463
- requestTimeout: 'Время ожидания истекло',
464
- serverUnavailable: 'Сервер недоступен',
465
- invalidResponse: 'Неверный ответ сервера',
466
- rateLimited: 'Слишком много запросов. Подождите.',
422
+ networkError: "Ошибка сети",
423
+ connectionFailed: "Не удалось подключиться",
424
+ requestTimeout: "Время ожидания истекло",
425
+ serverUnavailable: "Сервер недоступен",
426
+ invalidResponse: "Неверный ответ сервера",
427
+ rateLimited: "Слишком много запросов. Подождите.",
467
428
  },
468
429
  status: {
469
- connecting: 'Подключение...',
470
- connected: 'Подключено',
471
- disconnected: 'Отключено',
472
- reconnecting: 'Переподключение...',
430
+ connecting: "Подключение...",
431
+ connected: "Подключено",
432
+ disconnected: "Отключено",
433
+ reconnecting: "Переподключение...",
473
434
  },
474
435
  logout: {
475
- title: 'Выход',
476
- message: 'Вы уверены, что хотите выйти?',
477
- confirm: 'Выйти',
478
- cancel: 'Отмена',
436
+ title: "Выход",
437
+ message: "Вы уверены, что хотите выйти?",
438
+ confirm: "Выйти",
439
+ cancel: "Отмена",
479
440
  },
480
441
  },
481
-
482
442
  tools: {
483
443
  code: {
484
- copyCode: 'Копировать код',
485
- noContent: 'Контент недоступен',
444
+ copyCode: "Копировать код",
445
+ noContent: "Контент недоступен",
486
446
  },
487
-
488
447
  diagram: {
489
- title: 'Диаграмма',
490
- clickToView: 'Нажмите для просмотра',
448
+ title: "Диаграмма",
449
+ clickToView: "Нажмите для просмотра",
491
450
  },
492
-
493
451
  image: {
494
- noImage: 'Изображение отсутствует',
495
- failedToLoad: 'Не удалось загрузить изображение',
496
- zoomIn: 'Увеличить',
497
- zoomOut: 'Уменьшить',
498
- fitToView: 'По размеру окна',
499
- flipHorizontal: 'Отразить по горизонтали',
500
- flipVertical: 'Отразить по вертикали',
501
- rotate: 'Повернуть на 90°',
502
- fullscreen: 'На весь экран',
452
+ noImage: "Изображение отсутствует",
453
+ failedToLoad: "Не удалось загрузить изображение",
454
+ zoomIn: "Увеличить",
455
+ zoomOut: "Уменьшить",
456
+ fitToView: "По размеру окна",
457
+ flipHorizontal: "Отразить по горизонтали",
458
+ flipVertical: "Отразить по вертикали",
459
+ rotate: "Повернуть на 90°",
460
+ fullscreen: "На весь экран",
503
461
  },
504
-
505
462
  gallery: {
506
- noImages: 'Нет изображений',
507
- lightbox: 'Просмотр изображения',
508
- previous: 'Предыдущее изображение',
509
- next: 'Следующее изображение',
510
- close: 'Закрыть просмотр',
511
- download: 'Скачать изображение',
512
- share: 'Поделиться изображением',
463
+ noImages: "Нет изображений",
464
+ lightbox: "Просмотр изображения",
465
+ previous: "Предыдущее изображение",
466
+ next: "Следующее изображение",
467
+ close: "Закрыть просмотр",
468
+ download: "Скачать изображение",
469
+ share: "Поделиться изображением",
513
470
  },
514
-
515
471
  video: {
516
- play: 'Воспроизвести видео',
517
- fullscreen: 'Во весь экран',
518
- unavailable: 'Видео недоступно',
472
+ play: "Воспроизвести видео",
473
+ fullscreen: "Во весь экран",
474
+ unavailable: "Видео недоступно",
519
475
  },
520
-
521
476
  audio: {
522
- restart: 'Сначала',
523
- back: 'Назад 5 секунд',
524
- forward: 'Вперёд 5 секунд',
525
- volume: 'Громкость',
477
+ restart: "Сначала",
478
+ back: "Назад 5 секунд",
479
+ forward: "Вперёд 5 секунд",
480
+ volume: "Громкость",
526
481
  },
527
-
528
482
  color: {
529
- pick: 'Выбрать цвет',
483
+ pick: "Выбрать цвет",
530
484
  },
531
-
532
485
  jsonForm: {
533
- validationErrors: 'Ошибки проверки',
534
- addItem: 'Добавить элемент',
535
- addFirstItem: 'Добавить первый элемент',
536
- noItems: 'Элементы ещё не добавлены.',
486
+ validationErrors: "Ошибки проверки",
487
+ addItem: "Добавить элемент",
488
+ addFirstItem: "Добавить первый элемент",
489
+ noItems: "Элементы ещё не добавлены.",
537
490
  },
538
-
539
-
540
491
  openapi: {
541
- response: 'Ответ',
542
- noResponse: 'Тело ответа отсутствует',
543
- required: 'Обязательно',
544
- optional: 'Необязательно',
545
- searchEndpoints: 'Поиск эндпоинтов...',
546
- all: 'Все',
547
- methods: 'Методы',
548
- path: 'Путь',
549
- description: 'Описание',
550
- navigation: 'Навигация',
551
- previous: 'Назад',
552
- next: 'Вперёд',
553
- bearerToken: 'Введите Bearer токен (опционально, использует JWT если пусто)',
492
+ response: "Ответ",
493
+ noResponse: "Тело ответа отсутствует",
494
+ required: "Обязательно",
495
+ optional: "Необязательно",
496
+ searchEndpoints: "Поиск эндпоинтов...",
497
+ all: "Все",
498
+ methods: "Методы",
499
+ path: "Путь",
500
+ description: "Описание",
501
+ navigation: "Навигация",
502
+ previous: "Назад",
503
+ next: "Вперёд",
504
+ bearerToken: "Введите Bearer токен (опционально, использует JWT если пусто)",
554
505
  },
555
-
556
506
  form: {
557
- title: 'Форма',
507
+ title: "Форма",
558
508
  },
559
-
560
509
  tour: {
561
- next: 'Далее',
562
- previous: 'Назад',
563
- skip: 'Пропустить',
564
- finish: 'Готово',
565
- close: 'Закрыть',
566
- stepOf: 'Шаг {current} из {total}',
510
+ next: "Далее",
511
+ previous: "Назад",
512
+ skip: "Пропустить",
513
+ finish: "Готово",
514
+ close: "Закрыть",
515
+ stepOf: "Шаг {current} из {total}",
567
516
  },
568
-
569
517
  upload: {
570
- dragDrop: 'Перетащите файлы или нажмите для выбора',
571
- dropHere: 'Отпустите файлы здесь',
572
- maxSize: 'Макс. {size}МБ на файл',
573
- uploading: 'Загрузка...',
574
- uploaded: 'Загружено',
575
- failed: 'Ошибка',
576
- retry: 'Повторить',
577
- remove: 'Удалить',
578
- cancel: 'Отмена',
579
- paused: 'Приостановлено',
580
- pending: 'Ожидание',
518
+ dragDrop: "Перетащите файлы или нажмите для выбора",
519
+ dropHere: "Отпустите файлы здесь",
520
+ maxSize: "Макс. {size}МБ на файл",
521
+ uploading: "Загрузка...",
522
+ uploaded: "Загружено",
523
+ failed: "Ошибка",
524
+ retry: "Повторить",
525
+ remove: "Удалить",
526
+ cancel: "Отмена",
527
+ paused: "Приостановлено",
528
+ pending: "Ожидание",
581
529
  },
582
530
  },
583
531
  }