diff --git a/backend/src/middleware/nodes/locations.js b/backend/src/middleware/nodes/locations.js index a90d8c0d7..e72869cb6 100644 --- a/backend/src/middleware/nodes/locations.js +++ b/backend/src/middleware/nodes/locations.js @@ -19,7 +19,7 @@ const fetch = url => { }) } -const locales = ['en', 'de', 'fr', 'nl', 'it', 'es', 'pt', 'pl'] +const locales = ['en', 'de', 'fr', 'nl', 'it', 'es', 'pt', 'pl', 'ru'] const createLocation = async (session, mapboxData) => { const data = { @@ -32,6 +32,7 @@ const createLocation = async (session, mapboxData) => { nameES: mapboxData.text_es, namePT: mapboxData.text_pt, namePL: mapboxData.text_pl, + nameRU: mapboxData.text_ru, type: mapboxData.id.split('.')[0].toLowerCase(), lat: mapboxData.center && mapboxData.center.length ? mapboxData.center[0] : null, lng: mapboxData.center && mapboxData.center.length ? mapboxData.center[1] : null, @@ -48,6 +49,7 @@ const createLocation = async (session, mapboxData) => { 'l.nameES = $nameES, ' + 'l.namePT = $namePT, ' + 'l.namePL = $namePL, ' + + 'l.nameRU = $nameRU, ' + 'l.type = $type' if (data.lat && data.lng) { diff --git a/backend/src/models/Location.js b/backend/src/models/Location.js index bd6e0b5d9..2c62877f7 100644 --- a/backend/src/models/Location.js +++ b/backend/src/models/Location.js @@ -12,6 +12,7 @@ module.exports = { nameDE: { type: 'string' }, nameNL: { type: 'string' }, namePL: { type: 'string' }, + nameRU: { type: 'string' }, isIn: { type: 'relationship', relationship: 'IS_IN', diff --git a/backend/src/schema/types/Location.gql b/backend/src/schema/types/Location.gql index e7053e345..78bc07656 100644 --- a/backend/src/schema/types/Location.gql +++ b/backend/src/schema/types/Location.gql @@ -9,6 +9,7 @@ type Location { nameES: String namePT: String namePL: String + nameRU: String type: String! lat: Float lng: Float diff --git a/backend/src/seed/seed-db.js b/backend/src/seed/seed-db.js index 40becda2a..518d75cfb 100644 --- a/backend/src/seed/seed-db.js +++ b/backend/src/seed/seed-db.js @@ -42,6 +42,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] nameDE: 'Hamburg', nameNL: 'Hamburg', namePL: 'Hamburg', + nameRU: 'Гамбург', }), factory.create('Location', { id: 'region.14880313158564380', @@ -57,6 +58,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] nameDE: 'Berlin', nameNL: 'Berlijn', namePL: 'Berlin', + nameRU: 'Берлин', }), factory.create('Location', { id: 'country.10743216036480410', @@ -70,6 +72,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] nameFR: 'Allemagne', nameIT: 'Germania', nameEN: 'Germany', + nameRU: 'Германия', }), factory.create('Location', { id: 'region.9397217726497330', @@ -85,6 +88,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] nameDE: 'Paris', nameNL: 'Parijs', namePL: 'Paryż', + nameRU: 'Париж', }), factory.create('Location', { id: 'country.9759535382641660', @@ -98,6 +102,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl'] nameFR: 'France', nameIT: 'Francia', nameEN: 'France', + nameRU: 'Франция', }), ]) await Promise.all([ diff --git a/webapp/locales/index.js b/webapp/locales/index.js index c4a21c724..28cbd27d0 100644 --- a/webapp/locales/index.js +++ b/webapp/locales/index.js @@ -1,4 +1,4 @@ -import { enUS, de, nl, fr, es, it, pt, pl } from 'date-fns/locale' +import { enUS, de, nl, fr, es, it, pt, pl, ru } from 'date-fns/locale' import find from 'lodash/find' const locales = [ @@ -58,6 +58,13 @@ const locales = [ enabled: true, dateFnsLocale: pl, }, + { + name: 'Русский', + code: 'ru', + iso: 'ru-RU', + enabled: true, + dateFnsLocale: ru, + }, ] export default locales diff --git a/webapp/locales/ru.json b/webapp/locales/ru.json new file mode 100644 index 000000000..a103ef7a9 --- /dev/null +++ b/webapp/locales/ru.json @@ -0,0 +1,29 @@ +{ + "components": { + "password-reset": { + "request": { + "title": "Сбросить пароль", + "form": { + "description": "На указанный адрес электронной почты будет отправлено письмо для сброса пароля.", + "submit": "Запросить электронную почту", + "submitted": "На {email} отправлено письмо с дополнительными инструкциями." + } + }, + "change-password": { + "success": "Смена пароля прошла успешно!", + "error": "Смена пароля не удалась. Может быть, код безопасности был неверным?", + "help": "В случае возникновения проблем, не стесняйтесь обратиться за помощью, отправив нам письмо по адресу:" + } + }, + "enter-nonce": { + "form": { + "nonce": "Введите ваш код", + "description": "Откройте свой почтовый ящик и введите код, который мы вам отправили.", + "next": "Продолжить", + "validations": { + "length": "должно быть длиной 6 символов" + } + } + } + } +}