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

feat(map & admin): russian language support [EP-3723] #449

Merged
merged 1 commit into from
Jan 26, 2021
Merged
Show file tree
Hide file tree
Changes from all 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
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