Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ru_RU locale #5120

Merged
merged 6 commits into from
May 3, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 100 additions & 12 deletions packages/@uppy/locales/src/ru_RU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,52 @@ const ru_RU: Locale<0 | 1 | 2> = {
}

ru_RU.strings = {
addMoreFiles: 'Добавить еще файлы',
addBulkFilesFailed: {
'0': 'Не удалось добавить файл %{smart_count} из-за внутренней ошибки',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Не удалось добавить файл 101 из-за внутренней ошибки"
=>
"Не удалось добавить 101 файл из-за внутренней ошибки"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо! Исправил.

'1': 'Не удалось добавить %{smart_count} файла из-за внутренней ошибки',
'2': 'Не удалось добавить %{smart_count} файлов из-за внутренней ошибки',
},
addedNumFiles: {
'0': 'Добавлен %{numFiles} файл',
'1': 'Добавлено %{numFiles} файла',
'2': 'Добавлено %{numFiles} файлов',
},
addingMoreFiles: 'Добавление дополнительных файлов',
additionalRestrictionsFailed: {
'0': '%{count} дополнительное ограничение не было удовлетворено',
'1': '%{count} дополнительных ограничения не были удовлетворены',
'2': '%{count} дополнительных ограничений не были удовлетворены',
},
addMore: 'Добавить еще',
addMoreFiles: 'Добавить еще файлы',
allFilesFromFolderNamed: 'Все файлы из папки %{name}',
allowAccessDescription:
'Чтобы сделать фото или видео, пожалуйста, разрешите доступ к камере для этого сайта',
'Чтобы сделать фото или записать видео, пожалуйста, разрешите доступ к камере для этого сайта',
allowAccessTitle: 'Пожалуйста, разрешите доступ к вашей камере',
allowAudioAccessDescription:
'Чтобы записать аудио, пожалуйста, разрешите доступ к микрофону для этого сайта',
allowAudioAccessTitle: 'Пожалуйста, разрешите доступ к вашему микрофону',
aspectRatioLandscape: 'Обрезать альбомный формат (16:9)',
aspectRatioPortrait: 'Обрезать портрет (9:16)',
aspectRatioSquare: 'Обрезать квадрат',
authAborted: 'Аутентификация прервана',
authenticateWith: 'Подключиться к %{pluginName}',
authenticateWithTitle:
'Пожалуйста, авторизуйтесь в %{pluginName}, чтобы выбрать файлы',
authenticateWith: 'Подключиться к %{pluginName}',
back: 'Назад',
addMore: 'Добавить еще',
browse: 'выберите',
browseFiles: 'выберите',
browseFiles: 'выберите файлы',
cancel: 'Отменить',
cancelUpload: 'Отменить загрузку',
chooseFiles: 'Выбрать файлы',
closeModal: 'Закрыть окно',
companionError: 'Не удалось подключиться к Companion',
companionUnauthorizeHint:
'Чтобы выйти из вашего аккаунта %{provider}, пожалуйста, перейдите по ссылке %{url}',
// «Готово» вместо «загрузка завершена», потому что кроме загрузки бывает encoding — транскодирование файлов
complete: 'Готово',
compressedX: 'Сохранено %{size} благодаря сжатию изображений',
compressingImages: 'Сжатие изображений...',
// «Нет подключения к интернету» — «Подключено к интернету»
connectedToInternet: 'Подключено к интернету',
copyLink: 'Скопировать ссылку',
Expand All @@ -46,6 +73,7 @@ ru_RU.strings = {
dashboardWindowTitle:
'Окно загрузчика файлов (нажмите escape, чтобы закрыть)',
dataUploadedOfTotal: '%{complete} из %{total}',
discardRecordedFile: 'Удалить записанный файл',
done: 'Готово',
dropHereOr: 'Перетащите файлы или %{browse}',
dropHint: 'Перетащите файлы сюда',
Expand All @@ -60,67 +88,128 @@ ru_RU.strings = {
'Перетащите файлы, вставьте, %{browse} или импортируйте из:',
editFile: 'Редактировать файл',
editImage: 'Редактировать изображение',
editFileWithFilename: 'Редактировать файл %{file}',
editing: 'Редактируется %{file}',
emptyFolderAdded: 'Файлы не были добавлены — папка пуста',
encoding: 'Обработка...',
enterCorrectUrl:
'Неправильный адрес: пожалуйста, убедитесь что вы используете прямую ссылку на файл',
enterTextToSearch: 'Введите текст для поиска изображений',
enterUrlToImport: 'Введите адрес, чтобы импортировать файл',
error: 'Ошибка',
exceedsSize: 'Этот файл больше максимально разрешенного размера в %{size}',
failedToFetch:
'Companion не смог загрузить файл по ссылке, пожалуйста, убедитесь, что адрес верный',
failedToUpload: 'Ошибка загрузки %{file}',
fileSource: 'Источник файла: %{name}',
filesUploadedOfTotal: {
'0': '%{complete} из %{smart_count} файла загружено',
'1': '%{complete} из %{smart_count} файлов загружено',
'2': '%{complete} из %{smart_count} файлов загружено',
},
filter: 'Фильтр',
finishEditingFile: 'Закончить редактирование файла',
flipHorizontal: 'Повернуть горизонтально',
folderAdded: {
'0': 'Добавлен %{smart_count} файл из %{folder}',
'1': 'Добавлено %{smart_count} файла из %{folder}',
'2': 'Добавлено %{smart_count} файлов из %{folder}',
},
folderAlreadyAdded: 'Папка "%{folder}" уже была добавлена',
generatingThumbnails: 'Создание превью изображений...',
import: 'Импортировать',
importFiles: 'Импортировать файлы из:',
importFrom: 'Импортировать из %{name}',
inferiorSize: 'Этот файл меньше минимального размера %{size}',
loadedXFiles: {
'0': 'Загружен %{numFiles} файл',
'1': 'Загружено %{numFiles} файла',
'2': 'Загружено %{numFiles} файлов',
},
loading: 'Загрузка...',
logOut: 'Выйти',
micDisabled: 'Пользователь ограничил доступ к микрофону',
missingRequiredMetaField: 'Отсутствуют обязательные meta поля',
missingRequiredMetaFieldOnFile:
'В файле %{fileName} отсутствуют обязательные meta поля',
missingRequiredMetaFields: {
'0': 'Отсутствует обязательное meta поле: %{fields}.',
'1': 'Отсутствуют обязательные meta поля: %{fields}.',
'2': 'Отсутствуют обязательные meta поля: %{fields}.',
},
myDevice: 'Мое устройство',
noAudioDescription:
'Пожалуйста, подключите микрофон или другое аудиоустройство, чтобы записывать аудио',
noAudioTitle: 'Микрофон недоступен',
noCameraDescription:
'Пожалуйста, подключите камеру, чтобы сделать фото или записать видео',
noCameraTitle: 'Камера недоступна',
noDuplicates: "Нельзя добавить '%{fileName}', файл уже добавлен",
noFilesFound: 'Здесь нет файлов или папок',
noInternetConnection: 'Нет подключения к интернету',
noMoreFilesAllowed: 'Нельзя добавить больше файлов',
noSearchResults: 'К сожалению, нет результатов для поискового запроса',
openFolderNamed: 'Открыть папку %{name}',
pause: 'Поставить на паузу',
pauseUpload: 'Поставить загрузку на паузу',
paused: 'На паузе',
pauseUpload: 'Поставить загрузку на паузу',
poweredBy: 'Работает на %{uppy}',
processingXFiles: {
'0': 'Обрабатывается %{smart_count} файл',
'1': 'Обрабатываются %{smart_count} файла',
'2': 'Обрабатываются %{smart_count} файлов',
},
poweredBy: 'Работает на %{uppy}',
recording: 'Идет запись',
recordingLength: 'Длительность записи %{recording_length}',
recordingStoppedMaxSize:
'Запись остановлена из-за того, что файл достиг максимального размера',
recordVideoBtn: 'Записать видео',
recoveredAllFiles: 'Все файлы восстановлены. Вы можете продолжить загрузку.',
recoveredXFiles: {
'0': 'Не удалось восстановить %{smart_count} файл. Пожалуйста, выберите его заново и продолжите загрузку.',
'1': 'Не удалось восстановить %{smart_count} файла. Пожалуйста, выберите их заново и продолжите загрузку.',
'2': 'Не удалось восстановить %{smart_count} файлов. Пожалуйста, выберите их заново и продолжите загрузку.',
},
removeFile: 'Удалить файл',
reSelect: 'Выбрать заново',
resetFilter: 'Сбросить фильтр',
resetSearch: 'Сбросить поиск',
resume: 'Продолжить',
resumeUpload: 'Продолжить загрузку',
retry: 'Повторить попытку',
retryUpload: 'Повторить попытку загрузки',
revert: 'Отменить изменения',
rotate: 'Повернуть',
save: 'Сохранить',
saveChanges: 'Сохранить',
saveChanges: 'Сохранить изменения',
search: 'Поиск',
searchImages: 'Поиск изображений',
selectX: {
'0': 'Выбрать %{smart_count}',
'1': 'Выбрать %{smart_count}',
'2': 'Выбрать %{smart_count}',
},
sessionRestored: 'Сессия восстановлена',
showErrorDetails: 'Показать детали ошибки',
signInWithGoogle: 'Войти с Google',
smile: 'Улыбнитесь!',
startAudioRecording: 'Начать запись аудио',
startCapturing: 'Начать захват экрана',
lakesare marked this conversation as resolved.
Show resolved Hide resolved
startRecording: 'Начать запись видео',
stopAudioRecording: 'Остановить запись аудио',
stopCapturing: 'Остановить захват экрана',
stopRecording: 'Закончить запись видео',
streamActive: 'Активный поток',
streamPassive: 'Пассивный поток',
submitRecordedFile: 'Отправить записанный файл',
takePicture: 'Сделать фотографию',
takePictureBtn: 'Сделать фотографию',
timedOut: 'Загрузка остановилась на %{seconds} секунд, отмена',
upload: 'Загрузить',
uploadComplete: 'Загрузка завершена',
uploadFailed: 'Загрузка не удалась',
uploadPaused: 'Загрузка на паузе',
uploadStalled:
'Прогресс загрузки остановился на %{seconds} секунд. Возможно вы хотите перезапустить ее.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так звучит будто "мы загружали загружали 20 секунд, и потом загрузка остановилась на этом времени". Вместо "мы загружали какое-то время, но потом загрузка застопорилась на 20 секунд".

Давай напишем "Загрузка не сделала никакого прогресса в течение %{seconds} секунд. Возможно вы хотите перезапустить ее."

Заодно не нужно будет думать о падежах слова секунды 😅

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно все интерфейсы будут на английском? Шучу.

Загрузка не сделала никакого прогресса

Звучит одушевленно :) Но лучше сказать сложно. Может, «Нет прогресса загрузки в течение Х» или «от сервера нет ответа в течение Х»?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Заодно не нужно будет думать о падежах слова секунды

Точно, в еще и падежи добавить надо было бы!

Предлагаю тогда "Прошло %{seconds} секунд без прогресса в загрузке. Возможно, вы хотите перезапустить ее." + варианты с падежами

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both

«Нет прогресса загрузки в течение Х» или «от сервера нет ответа в течение Х»

and

"Прошло %{seconds} секунд без прогресса в загрузке. Возможно, вы хотите перезапустить ее."

sound good to me.

Не уверена можно ли легко сделать падежи в uppy, если нельзя, то лучше первый вариант.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lakesare сделал предложенный мной вариант, падежи добавил.

Чтобы их задать, нужно указать перевод не в виде строки, а в виде объекта с ключами 0 | 1 | 2, каждый из которых соответствует определенным падежам.

uploadXFiles: {
'0': 'Загрузить %{smart_count} файл',
'1': 'Загрузить %{smart_count} файла',
Expand Down Expand Up @@ -159,9 +248,8 @@ ru_RU.strings = {
'1': 'Вы должны выбрать хотя бы %{smart_count} файла',
'2': 'Вы должны выбрать хотя бы %{smart_count} файлов',
},
selectFileNamed: 'Выбрать файл %{name}',
unselectFileNamed: 'Отменить выбор файла %{name}',
openFolderNamed: 'Открыть папку %{name}',
zoomIn: 'Приблизить',
zoomOut: 'Отдалить',
}

// TODO: remove this in the next major?
Expand Down