From 5bfc4d1a446883b8190ae9a19e73f3408d92ed9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B1=9F=E8=BE=B0?= Date: Mon, 9 Sep 2024 17:42:34 +0800 Subject: [PATCH] feat(locale): add language ru-RU --- packages/arco-vue-docs/docs/i18n.en-US.md | 1 + packages/arco-vue-docs/docs/i18n.zh-CN.md | 1 + .../web-vue/components/locale/lang/ru-ru.ts | 204 ++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 packages/web-vue/components/locale/lang/ru-ru.ts diff --git a/packages/arco-vue-docs/docs/i18n.en-US.md b/packages/arco-vue-docs/docs/i18n.en-US.md index 54fd1fa27..7bf66dc91 100644 --- a/packages/arco-vue-docs/docs/i18n.en-US.md +++ b/packages/arco-vue-docs/docs/i18n.en-US.md @@ -51,3 +51,4 @@ export default { | Vietnamese | vi-VN | | Khmer (Cambodia) | km-KH | | Arabic (Egypt) | ar-EG | +| Russian (Russia) | ru-RU | diff --git a/packages/arco-vue-docs/docs/i18n.zh-CN.md b/packages/arco-vue-docs/docs/i18n.zh-CN.md index 17fe2acbb..f2cee6cce 100644 --- a/packages/arco-vue-docs/docs/i18n.zh-CN.md +++ b/packages/arco-vue-docs/docs/i18n.zh-CN.md @@ -49,3 +49,4 @@ export default { | 越南语 | vi-VN | | 高棉语(柬埔寨) | km-KH | | 阿拉伯语(埃及) | ar-EG | +| 俄语(俄罗斯) | ru-RU | diff --git a/packages/web-vue/components/locale/lang/ru-ru.ts b/packages/web-vue/components/locale/lang/ru-ru.ts new file mode 100644 index 000000000..950738b41 --- /dev/null +++ b/packages/web-vue/components/locale/lang/ru-ru.ts @@ -0,0 +1,204 @@ +import { ArcoCalendarLang, ArcoLang } from '../interface'; + +const calendarLang: ArcoCalendarLang = { + formatYear: 'YYYY', + formatMonth: 'MM/YYYY', + today: 'Cегодня', + view: { + month: 'месяц', + year: 'год', + week: 'Неделя', + day: 'день', + }, + month: { + long: { + January: 'января', + February: 'февраля', + March: 'марта', + April: 'апреля', + May: 'мая', + June: 'июня', + July: 'июля', + August: 'августа', + September: 'сентября', + October: 'октября', + November: 'ноября', + December: 'декабря', + }, + short: { + January: 'янв', + February: 'фев', + March: 'мар', + April: 'апр', + May: 'май', + June: 'июн', + July: 'июл', + August: 'авг', + September: 'сен', + October: 'окт', + November: 'ноя', + December: 'дек', + }, + }, + week: { + long: { + self: 'Неделя', + monday: 'понедельник', + tuesday: 'вторник', + wednesday: 'среда', + thursday: 'четверг', + friday: 'пятница', + saturday: 'суббота', + sunday: 'воскресенье', + }, + short: { + self: 'Неделя', + monday: 'Пн', + tuesday: 'Вт', + wednesday: 'Ср', + thursday: 'Чт', + friday: 'Пт', + saturday: 'Сб', + sunday: 'Вс', + }, + }, +}; + +const lang: ArcoLang = { + locale: 'ru-RU', + empty: { + description: 'нет данных', + }, + drawer: { + okText: 'OK', + cancelText: 'Отмена', + }, + popconfirm: { + okText: 'OK', + cancelText: 'Отмена', + }, + modal: { + okText: 'OK', + cancelText: 'Отмена', + }, + pagination: { + goto: 'Перейти', + page: 'Страница', + countPerPage: '/ стр.', + total: 'Всего {0}', + }, + table: { + okText: 'OK', + resetText: 'перезагрузить', + }, + upload: { + start: 'Начало', + cancel: 'Отмена', + delete: 'Удалить', + retry: 'Нажмите, чтобы повторить попытку', + buttonText: 'Нажмите, чтобы загрузить', + preview: 'предварительный просмотр', + drag: 'Нажмите или перетащите файлы, чтобы загрузить их сюда', + dragHover: 'Освободите файл и начните загрузку', + error: 'Загрузка не удалась', + }, + calendar: calendarLang, + datePicker: { + view: calendarLang.view, + month: calendarLang.month, + week: calendarLang.week, + placeholder: { + date: 'Пожалуйста, выберите дату', + week: 'Пожалуйста, выберите неделю', + month: 'Выберите месяц', + year: 'Пожалуйста, выберите год', + quarter: 'Выберите квартал', + time: 'Пожалуйста, выберите время', + }, + rangePlaceholder: { + date: ['Дата начала', 'Дата окончания'], + week: ['начальная неделя', 'конец недели'], + month: ['месяц начала', 'конец месяца'], + year: ['год начала', 'конец года'], + quarter: ['стартовая четверть', 'конец квартала'], + time: ['время начала', 'время окончания'], + }, + selectTime: 'Выберите время', + today: 'Cегодня', + now: 'В настоящее время', + ok: 'OK', + }, + image: { + loading: 'Загрузка', + }, + imagePreview: { + fullScreen: 'полноэкранный', + rotateRight: 'повернуть вправо', + rotateLeft: 'повернуть влево', + zoomIn: 'увеличить', + zoomOut: 'уменьшить', + originalSize: 'оригинальный размер', + }, + typography: { + copied: 'скопировано', + copy: 'копировать', + expand: 'расширять', + collapse: 'складывать', + edit: 'редактировать', + }, + form: { + validateMessages: { + required: '#{field} обязательно для заполнения', + type: { + string: '#{field} должно быть строкой', + number: '#{field} должно быть числом', + boolean: '#{field} должно быть булевым значением (true/false)', + array: '#{field} должно быть массивом', + object: '#{field} должно быть объектом', + url: '#{field} должно быть правильным URL-адресом', + email: '#{field} должно быть корректным email-адресом', + ip: '#{field} должно быть правильным IP-адресом', + }, + number: { + min: 'Значение #{value} меньше допустимого минимального значения #{min}', + max: 'Значение #{value} больше допустимого максимального значения #{max}', + equal: 'Значение должно быть равно #{equal}', + range: 'Значение должно быть в диапазоне от #{min} до #{max}', + positive: 'Значение должно быть положительным числом', + negative: 'Значение должно быть отрицательным числом', + }, + array: { + length: 'В #{field} должно быть #{length} элементов', + minLength: 'Минимум #{minLength} элементов в #{field}', + maxLength: 'Максимум #{maxLength} элементов в #{field}', + includes: '#{field} должно содержать #{includes}', + deepEqual: '#{field} не соответствует ожидаемому значению', + empty: '#{field} не должно быть пустым', + }, + string: { + minLength: '`#{field}` должно содержать не менее #{minLength} символов', + maxLength: '`#{field}` должно содержать не более #{maxLength} символов', + length: 'Длина строки в #{field} должна быть ровно #{length} символов', + match: 'Значение в #{field} не соответствует требуемому формату', + uppercase: 'Значение в #{field} должно быть в верхнем регистре', + lowercase: 'Значение в #{field} должно быть в нижнем регистре', + }, + object: { + deepEqual: 'Значение в #{field} не совпадает с ожидаемым', + hasKeys: 'В #{field} должны быть необходимые ключи', + empty: '#{field} не должно быть пустым объектом', + }, + boolean: { + true: 'Значение должно быть true', + false: 'Значение должно быть false', + }, + }, + }, + colorPicker: { + history: 'Недавно использованные цвета', + preset: 'Цвет системы по умолчанию', + empty: 'нет данных', + }, +}; + +export default lang;