Skip to content

Commit

Permalink
feat(map & admin): russian language support [EP-3723] (#449)
Browse files Browse the repository at this point in the history
  • Loading branch information
dan-qc authored Jan 26, 2021
1 parent 3c93498 commit 7284f4d
Show file tree
Hide file tree
Showing 6 changed files with 225 additions and 7 deletions.
9 changes: 9 additions & 0 deletions packages/earth-shared/src/components/user-menu/UserMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,15 @@ export const UserMenu = (props: IProps) => {
Français
</a>
</li>
<li
className={classnames({
selected: selectedLanguage === Elang.RU,
})}
>
<a className="marapp-qa-lang-ru" onClick={(e) => changeLanguage(e, Elang.RU)}>
Pусский
</a>
</li>
</ul>
</animated.div>
)}
Expand Down
1 change: 1 addition & 0 deletions packages/earth-shared/src/locales.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ export enum Elang {
EN = 'en',
ES = 'es',
FR = 'fr',
RU = 'ru',
}
16 changes: 10 additions & 6 deletions packages/earth-shared/src/translations/TranslationService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand All @@ -26,26 +26,26 @@ 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;
}

class TranslationService implements ITranslationService {
constructor() {}

getDefaultLanguage() {
const {
fallbackLng: [defaultLanguage],
} = i18n.options;
const { fallbackLng: defaultLanguage } = i18n.options;

return defaultLanguage || Elang.EN;
return <string>defaultLanguage || Elang.EN;
}

init(weglotApiKey) {
Expand All @@ -71,6 +71,10 @@ class TranslationService implements ITranslationService {
translation: translationFR,
admin: translationFRAdmin,
},
[Elang.RU]: {
translation: translationRU,
admin: translationRUAdmin,
},
},
lng: lang,
fallbackLng: Elang.EN,
Expand Down
192 changes: 192 additions & 0 deletions packages/earth-shared/src/translations/ru/admin.translation.json
Original file line number Diff line number Diff line change
@@ -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": "Посетите нашу <a>целевую страницу</a> или <a href={{aboutLink}}>inconnuations</a> нашего продукта.",
"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": "У вас нет разрешения на доступ к этой странице"
}
Loading

0 comments on commit 7284f4d

Please sign in to comment.