diff --git a/packages/earth-shared/src/components/user-menu/UserMenu.tsx b/packages/earth-shared/src/components/user-menu/UserMenu.tsx
index 528978b9..0f898ae6 100644
--- a/packages/earth-shared/src/components/user-menu/UserMenu.tsx
+++ b/packages/earth-shared/src/components/user-menu/UserMenu.tsx
@@ -141,6 +141,15 @@ export const UserMenu = (props: IProps) => {
Français
+
+ changeLanguage(e, Elang.RU)}>
+ Pусский
+
+
)}
diff --git a/packages/earth-shared/src/locales.ts b/packages/earth-shared/src/locales.ts
index 1b040cc6..73a60352 100644
--- a/packages/earth-shared/src/locales.ts
+++ b/packages/earth-shared/src/locales.ts
@@ -21,4 +21,5 @@ export enum Elang {
EN = 'en',
ES = 'es',
FR = 'fr',
+ RU = 'ru',
}
diff --git a/packages/earth-shared/src/translations/TranslationService.ts b/packages/earth-shared/src/translations/TranslationService.ts
index a7976c20..6dffce49 100644
--- a/packages/earth-shared/src/translations/TranslationService.ts
+++ b/packages/earth-shared/src/translations/TranslationService.ts
@@ -16,7 +16,7 @@
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
-// @ts-nocheck
+
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
@@ -26,14 +26,16 @@ import SessionStorage from '../services/SessionStorage';
import translationEN from './en/translation.json';
import translationES from './es/translation.json';
import translationFR from './fr/translation.json';
+import translationRU from './ru/translation.json';
import translationENAdmin from './en/admin.translation.json';
import translationESAdmin from './es/admin.translation.json';
import translationFRAdmin from './fr/admin.translation.json';
+import translationRUAdmin from './ru/admin.translation.json';
import * as weglot from './weglot';
interface ITranslationService {
- init(): void;
+ init(key: string): void;
getDefaultLanguage(): string;
}
@@ -41,11 +43,9 @@ class TranslationService implements ITranslationService {
constructor() {}
getDefaultLanguage() {
- const {
- fallbackLng: [defaultLanguage],
- } = i18n.options;
+ const { fallbackLng: defaultLanguage } = i18n.options;
- return defaultLanguage || Elang.EN;
+ return defaultLanguage || Elang.EN;
}
init(weglotApiKey) {
@@ -71,6 +71,10 @@ class TranslationService implements ITranslationService {
translation: translationFR,
admin: translationFRAdmin,
},
+ [Elang.RU]: {
+ translation: translationRU,
+ admin: translationRUAdmin,
+ },
},
lng: lang,
fallbackLng: Elang.EN,
diff --git a/packages/earth-shared/src/translations/ru/admin.translation.json b/packages/earth-shared/src/translations/ru/admin.translation.json
new file mode 100644
index 00000000..e3381fb2
--- /dev/null
+++ b/packages/earth-shared/src/translations/ru/admin.translation.json
@@ -0,0 +1,192 @@
+{
+ "about": "о программе",
+ "Add a title first": "Сначала добавить заголовок",
+ "Add organization": "Добавить организацию",
+ "Add users": "Добавить пользователей",
+ "Add users to group": "Добавить пользователей в группу {{value}}",
+ "Admin": "Администратор",
+ "Area Bbox": "Площадь Bbox",
+ "Area ha": "Площадь га",
+ "cancel": "отменить",
+ "Cannot be empty": "Не может быть пустым",
+ "Centroid": "центроида",
+ "Choose a GeoJSON to calculate shape maths and geographic relationships": "Выберите GeoJSON для расчета математических параметров формы и географических связей",
+ "Choose a page": "Выберите страницу",
+ "Collection": "Набор",
+ "Continent": "континент",
+ "Country": "Страна",
+ "Create a new widget": "Создать новый виджет",
+ "Create new dashboard": "Создать новую приборную панель",
+ "Create new layer": "Создать новый слой",
+ "Create new Organization": "Создать новую организацию",
+ "Create new place": "Создать новое место",
+ "Created": "созданный",
+ "dashboard": "приборная панель",
+ "Dashboard description": "описание приборной панели",
+ "Dashboard slug": "Слаг приборной панели",
+ "Dashboard slug is required": "Требуется слаг приборной панели",
+ "Dashboard title": "Название приборной панели",
+ "Dashboard title is required": "Требуется название приборной панели",
+ "Dashboard widgets": "Виджеты приборной панели",
+ "Dashboard Widgets": "Виджеты Приборной панели",
+ "dashboards": "приборные панели",
+ "Dashboards": "Приборные панели",
+ "delete": "удалить",
+ "deleting": "удаление",
+ "Delete confirmation": "Подтвердить удаление {{value}}?",
+ "Delete dashboard": "Удалить приборную панель",
+ "Delete layer": "Удалить слой",
+ "Delete organization": "Удалить организацию",
+ "Delete place": "Удалить место",
+ "Delete resource": "Удалить ресурс {{value}}",
+ "Delete user": "Удалить пользователя",
+ "Delete widget": "Удалить виджет",
+ "Description": "Описание",
+ "Download GeoJSON": "Скачать GeoJSON",
+ "Edit user": "Изменить пользователя",
+ "Editor": "редактор",
+ "Email": "Эл. адрес",
+ "Email exists": "{{value}} Email существует.",
+ "Email invited": "{{value}} Приглашение выслано не эл.адрес.",
+ "Email unavailable": "{{value}} электронная почта недоступна. {{details}}",
+ "Emails": "эл.почта",
+ "end": "конец",
+ "Enter existing emails to add users to this organization": "Введите существующие электронные адреса, чтобы добавить пользователей к данной организации",
+ "Featured": "Выделено",
+ "Generate a slug name": "Сгенерировать наименовение слага",
+ "Generate slug": "Сгенерировать слаг",
+ "GeoJSON is required": "Требуется GeoJSON",
+ "Go back to users list": "Вернуться к списку пользователей",
+ "Home": "Главная страница",
+ "ID": "ID",
+ "Included layers": "Включенные слои",
+ "Included Widgets": "Включенные Виджеты",
+ "Invalid Organization": "Недействительная организация",
+ "Json editor": "редактор Json",
+ "Jurisdiction": "Юрисдикция",
+ "Last Updated": "Последнее обновление",
+ "layer": "слой",
+ "Layer category": "Категория слоя",
+ "Layer category cannot be empty": "Категория слоя не может быть пустой",
+ "Layer config": "Конфигурация слоя",
+ "Layer Config": "Конфигурация Слоя",
+ "Layer description": "Описание слоя",
+ "Layer provider": "Провайдер слоя",
+ "Layer references": "Ссылки слоя",
+ "Layer References": "Ссылки Слоя",
+ "Layer slug": "Слаг слоя",
+ "Layer slug is required": "Требуется слаг слоя",
+ "Layer title": "название слоя",
+ "Layer title is required": "Требуется название слоя",
+ "Layer type": "Тип слоя",
+ "layers": "слои",
+ "Layers": "Слои",
+ "Loading": "загрузка",
+ "Map View": "Просмотр карты",
+ "Metric Slug": "Слаг показателя",
+ "Name": "имя",
+ "New dashboard": "Новая приборная панель",
+ "New layer": "Новый слой",
+ "New place": "Новое место",
+ "New Widget": "Новый виджет",
+ "No dashboard widgets": "Нет виджетов приборной панели",
+ "No description": "нет описания",
+ "No layer reference": "Нет ссылки на слой",
+ "No layer references": "Нет ссылок слоя",
+ "No organisations available": "Нет доступных организаций",
+ "Only lowercase alphanumeric characters and hyphens allowed": "Разрешены только строчные буквы, цифры и дефисы.",
+ "Only upercase alphanumeric characters and hyphens allowed": "Разрешены только заглавные буквы, цифры и дефисы.",
+ "organisations": "организации",
+ "Organisations": "Организации",
+ "organization": "организация",
+ "Organization collections": "Наборы организации",
+ "Organization dashboards": "Приборные панели организации",
+ "Organization layers": "Слои организации",
+ "Organization name": "Название организации",
+ "Organization name is required": "Требуется название организации",
+ "Organization places": "Места организации",
+ "Organization widgets": "Виджеты организации",
+ "organizations": "организации",
+ "Organizations": "Организации",
+ "Owner": "Владелец",
+ "Owners": "Владельцы",
+ "Page not found": "Страница не найдена",
+ "place": "место",
+ "Place Metrics": "Показатели места",
+ "Place shape": "Форма места",
+ "Place slug": "Слаг места",
+ "Place slug is required": "Требуется слаг места",
+ "Place title": "Название места",
+ "Place title is required": "Требуется название места",
+ "Place type": "Тип места",
+ "places": "места",
+ "Places": "Места",
+ "Please add a valid email address": "Пожалуйста, добавьте действительный адрес электронной почты",
+ "Please enter a different email": "Пожалуйста, введите другой адрес электронной почты",
+ "Please make sure the selected file is under MB": "Убедитесь, что выбранный файл меньше {{value}} МБ",
+ "Please select a valid one": "Пожалуйста, выберите действительный:",
+ "Please visit landing page or lear our product": "Посетите нашу целевую страницу или inconnuations нашего продукта.",
+ "Primary": "первичный",
+ "Profile": "Профиль",
+ "Public": "публичный",
+ "Published": "опубликованный",
+ "Recalculate all": "Пересчитайте все",
+ "Remove User": "Удалить пользователя",
+ "Return search create": "Вернитесь на главную страницу {{value}}, найдите {{value}} или создайте новое {{value}}.",
+ "Return to app": "Вернуться к {{value}}",
+ "return to home": "вернуться домой из {{value}}",
+ "Role and access": "Роль и доступ",
+ "Roles": "Роли",
+ "Save and view details": "Сохранить и просмотреть детали",
+ "search": "поиск",
+ "Search a dashboard to view and edit details, or start creating a new dashboard": "Найдите приборную панель, чтобы просмотреть и отредактировать сведения, или начните создавать новую панель",
+ "Search a layer to view and edit details, or start creating a new layer": "Найдите слой, чтобы просмотреть и отредактировать сведения, или начните создавать новый слой.",
+ "Search a place to view and edit details, or start creating a new place": "Найдите место, чтобы просмотреть и отредактировать сведения, или начните создавать новое место.",
+ "Search a widget to view and edit details, or start creating a new widget": "Найдите виджет, чтобы просмотреть и отредактировать сведения, или начните создавать новый виджет.",
+ "Search and edit sections related to your organization": "Поиск и редактирование разделов, связанных с вашей организацией",
+ "Select": "Выбрать",
+ "Select layer category": "Выбрать категорию слоя",
+ "Select layer provider": "Выбрать поставщика слоя",
+ "Select layer type": "Выбрать тип слоя",
+ "Select layers": "Выбрать слои",
+ "Select metric slug": "Выбрать слаг показателя",
+ "Select place type": "Выбрать тип места",
+ "Select role": "Выбрать роль",
+ "Select Widget Layer": "Выберите слой виджета",
+ "Select Widget Layers": "Выбрать слои виджета",
+ "Select widgets": "Выбрать виджеты",
+ "Shape File": "Шейп-файл",
+ "short-org-name-or-initials": "короткое-орг-имя-или-инициалы",
+ "Slug": "Слаг",
+ "Slug is required": "Требуется слаг",
+ "Something went wrong": "Что-то пошло не так",
+ "Special characters are not allowed": "Специальные символы не допустимы",
+ "Special characters or space are not allowed": "Использование специальных символов или пробелов запрещено.",
+ "Start creating a new organization for users to collaborate and share with each other": "Начните создавать новую организацию, чтобы пользователи могли сотрудничать и делиться друг с другом",
+ "The page you are looking for may not exist": "{{Значение}}, которое вы ищете, не может быть получено или не существует.",
+ "The page you are looking for may not exist, or we may be experiencing an error": "Страница, которую вы ищете, не существует, либо у нас произошла ошибка",
+ "The slug name cannot be edited after creation": "Наименование слага невозможно изменить после создания",
+ "This is homepage - should be redirected to /:org": "Это домашняя страница - необходимо перенаправить на /:org",
+ "Title": "наименование",
+ "Unknown error": "Неизвестная ошибка",
+ "Update Shape": "Обновление формы",
+ "User details": "Данные пользователя",
+ "Users": "Пользователи",
+ "Version": "Версия",
+ "View and upload shape": "Просмотр и загрузка формы",
+ "Viewer": "зритель",
+ "We’re terribly sorry": "Мы очень сожалеем.",
+ "Welcome to org admin": "Добро пожаловать к администратору {{value}}!",
+ "widget": "виджет",
+ "Widget Config": "Конфигурация виджета",
+ "Widget Layer": "Слой виджетов",
+ "Widget Layers": "Слои виджета",
+ "Widget slug": "Слаг виджета",
+ "Widget slug is required": "Требуется слаг виджета",
+ "Widget title": "Название виджета",
+ "Widget title is required": "Требуется название виджета",
+ "widgets": "виджеты",
+ "Widgets": "Виджеты",
+ "You are not authorized to view this page": "Вы не авторизованы для просмотра этой страницы",
+ "You don’t have permission to access this page": "У вас нет разрешения на доступ к этой странице"
+}
diff --git a/packages/earth-shared/src/translations/ru/translation.json b/packages/earth-shared/src/translations/ru/translation.json
index 327089d3..8a870e00 100644
--- a/packages/earth-shared/src/translations/ru/translation.json
+++ b/packages/earth-shared/src/translations/ru/translation.json
@@ -1,4 +1,5 @@
{
+ "About": "Около",
"Account": "Учетная запись",
"Account access": "Доступ к учетной записи",
"Add places": "Добавить места",
@@ -12,10 +13,12 @@
"cancel": "отменить",
"cancel update": "отменить обновление",
"Clear": "Очистить",
+ "Clip and Export Layers": "Обрезать и экспортировать слои",
"Collection": "Набор",
"Collection name is required": "Требуется название коллекции",
"Collection places": "Места наборов",
"Collections": "Наборы",
+ "Could not download layer. Area too large": "Не удалось загрузить слой. Слишком большая площадь",
"Country or region": "Страна или Регион",
"Create a Collection": "Создать набор",
"Create a collection and start sharing your insights with your organization members": "Создайте набор и начните делиться вашими идеями с членами вашей организации",
@@ -30,6 +33,7 @@
"Download": "Скачать",
"Download metric as a": "Скачать показатель как",
"Download metric data files": "Скачать файлы данных метрики",
+ "Downloading": "Скачивание",
"Download metrics": "Скачать метрики",
"Downloading metrics": "Скачивание показателей",
"edit": "редактировать",
@@ -41,6 +45,7 @@
"First Name": "Отчество",
"I understand this will permanently delete my account and that this action can": "Я понимаю, что это приведет к безвозвратному удалению моей учетной записи, и что это действие",
"Individual metrics related to each of the places in your collection can be viewed once downloaded": "Отдельные показатели, относящиеся к каждому месту в вашей коллекции, можно просмотреть после загрузки",
+ "Invalid layer configuration specified": "Указана неверная конфигурация слоя",
"Institution": "Учреждение",
"Labels": "Ярлыки",
"Languages": "Языки",
@@ -66,11 +71,13 @@
"Places": "Места",
"Please enter a valid email": "Пожалуйста, введите действительный адрес электронной почты",
"Please select an organization to create a collection under. After selecting an organization, you will be able to select places and share insights with members of your selected organization. Organizations can not be edited once picked": "Выберите организацию, для которой хотите создать набор. После выбора организации вы сможете выбирать места и делиться своими идеями с членами выбранной вами организации. После выбора организации нельзя редактировать.",
+ "Powered by": "На платформе {{value}}",
"Profile": "Личный кабинет",
"Refresh": "Refresh",
"Remove from map": "Удалить с карты",
"Rename Collection": "Переименовать коллекцию",
"Renaming collection": "Переименование коллекции",
+ "Reset layers": "Сбросить слои",
"Return to": "Возврат к",
"Return to map view": "Вернуться к просмотру карты",
"Roads": "Дороги",
@@ -84,15 +91,19 @@
"Select a file type for download": "Выберите тип файла для загрузки",
"Select an Organization": "Выбрать организацию",
"Select country or region": "Выберите страну или регион",
+ "Select layer for download": "Выберите слой для загрузки",
"Select metrics for download": "Выберите показатели для загрузки",
"Select metrics to download data files": "Выберите показатели для загрузки файлов данных",
"Select single or multiple metric data files for download": "Выберите один или несколько файлов данных метрики для загрузки",
"Send reset email": "Отправить электронное письмо для сброса пароля",
+ "Selected layers are currently not supported": "Выбранные слои в настоящее время не поддерживаются",
+ "Select Widget Layers": "Выберите слои виджетов",
"Sending reset email": "Отправка электронного письма для сброса пароль",
"Show on map": "Показать на карте",
"Sign in": "Войти",
"Sign Out": "Выйти",
"Sign up": "Зарегистрироваться",
+ "Something went wrong": "Что-то пошло не так",
"There are no places added to this collection": "В этот набор не добавлены места",
"Update warning": "Update warning",
"We'll send you an email to reset your password": "Мы отправим вам электронное письмо для сброса пароля",
diff --git a/packages/earth-shared/tsconfig.json b/packages/earth-shared/tsconfig.json
index 03f8df5d..510c01d5 100644
--- a/packages/earth-shared/tsconfig.json
+++ b/packages/earth-shared/tsconfig.json
@@ -13,7 +13,8 @@
"skipLibCheck": true,
"noImplicitAny": false,
"strictNullChecks": false,
- "baseUrl": "src"
+ "baseUrl": "src",
+ "resolveJsonModule": true
},
"include": ["./src/**/*"]
}