Russian language
This commit is contained in:
parent
acc25a1a66
commit
bb4b6468b4
58
crabfit-frontend/public/i18n/ru/common.json
Normal file
58
crabfit-frontend/public/i18n/ru/common.json
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
"name": "Crab Fit",
|
||||
"tagline": "Создай свой",
|
||||
"cta": "Создайте свой собственный Crab Fit!",
|
||||
"created": "Создано {{date}}",
|
||||
"donate": {
|
||||
"info": "Спасибо за использование Crab Fit. Если вам это нравится, подумайте о пожертвовании.",
|
||||
"button": "Пожертвовать",
|
||||
"title": "Каждое пожертвование имеет значение :)",
|
||||
"options": {
|
||||
"$2": "Пожертвовать $2",
|
||||
"$5": "Пожертвовать $5",
|
||||
"$10": "Пожертвовать $10",
|
||||
"choose": "Выберите сумму"
|
||||
},
|
||||
"messages": {
|
||||
"about": "Если Crab Fit вам вообще помог, подумайте о пожертвовании, чтобы он работал. 🦀",
|
||||
"success": "Спасибо за ваше пожертвование! Без вас Crab Fit не был бы бесплатным, так что спасибо и продолжайте быть супер классными!",
|
||||
"error": "Невозможно сделать пожертвование через Google. Пожалуйста, попробуйте сделать пожертвование через сайт crab.fit 🦀"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"name": "Параметры",
|
||||
"weekStart": {
|
||||
"label": "Неделя начинается",
|
||||
"options": {
|
||||
"Sunday": "вск",
|
||||
"Monday": "пнд"
|
||||
}
|
||||
},
|
||||
"timeFormat": {
|
||||
"label": "Формат времени",
|
||||
"options": {
|
||||
"12h": "12ч",
|
||||
"24h": "24ч"
|
||||
}
|
||||
},
|
||||
"theme": {
|
||||
"label": "Oттенок",
|
||||
"options": {
|
||||
"System": "Система",
|
||||
"Light": "бледный",
|
||||
"Dark": "тёмный"
|
||||
}
|
||||
},
|
||||
"highlight": {
|
||||
"label": "Подчеркните высочайшую доступность",
|
||||
"title": "Сделать самую высокую доступность на тепловой карте выделяется",
|
||||
"options": {
|
||||
"Off": "выкл",
|
||||
"On": "включенный"
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"label": "Язык"
|
||||
}
|
||||
}
|
||||
}
|
||||
63
crabfit-frontend/public/i18n/ru/event.json
Normal file
63
crabfit-frontend/public/i18n/ru/event.json
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"available": "доступно",
|
||||
|
||||
"nav": {
|
||||
"title": "Нажмите, чтобы скопировать",
|
||||
"copied": "Скопировано!",
|
||||
"shareinfo": "Скопируйте ссылку на эту страницу или поделитесь по <1>электронной почте</1>.",
|
||||
"shareinfo_alt": "Щелкните ссылку выше, чтобы скопировать ее в буфер обмена, или поделитесь ею по <1>электронной почте</1>.",
|
||||
"email_subject": "Планирование {{event_name}}",
|
||||
"email_body": "Перейдите по этой ссылке, чтобы указать свои возможности:"
|
||||
},
|
||||
"form": {
|
||||
"signed_out": "Войдите, чтобы добавить свою доступность",
|
||||
"signed_in": "Вошли как {{name}}",
|
||||
|
||||
"name": "Твое имя",
|
||||
"password": "Пароль (необязательно)",
|
||||
"button": "Авторизоваться",
|
||||
"info": "Эти данные относятся только к этому событию. Используйте пароль, чтобы никто не мог изменить вашу доступность.",
|
||||
|
||||
"timezone": "Ваш часовой пояс",
|
||||
|
||||
"errors": {
|
||||
"password_incorrect": "Неверный пароль. Убедитесь, что ваше имя написано правильно.",
|
||||
"unknown": "Не удалось войти. Пожалуйста, попробуйте еще раз."
|
||||
},
|
||||
|
||||
"created_in_timezone": "Это событие было создано в часовом поясе <strong>{{timezone}}</strong>. <3>Щелкните здесь</3>, чтобы использовать его.",
|
||||
"local_timezone": "Ваш местный часовой пояс определен как <strong>{{timezone}}</strong>. <3>Щелкните здесь</3>, чтобы использовать его."
|
||||
},
|
||||
"offline": {
|
||||
"title": "Ты не в сети",
|
||||
"body": "Crab Fit не работает в автономном режиме.<br />Убедитесь, что вы подключены к Интернету, и повторите попытку."
|
||||
},
|
||||
"error": {
|
||||
"title": "Событие не найдено",
|
||||
"body": "Убедитесь, что вы ввели правильный URL."
|
||||
},
|
||||
|
||||
"tabs": {
|
||||
"you": "Ваша доступность",
|
||||
"you_tooltip": "Войдите, чтобы указать свою доступность",
|
||||
"group": "Доступность группы"
|
||||
},
|
||||
|
||||
"group": {
|
||||
"legend_tooltip": "Щелкните, чтобы выделить самую высокую доступность",
|
||||
"info1": "Наведите указатель мыши на календарь ниже или коснитесь его, чтобы узнать, кто свободен",
|
||||
"info2": "Нажмите на имена ниже, чтобы просмотреть людей по отдельности"
|
||||
},
|
||||
|
||||
"you": {
|
||||
"info": "Щелкните и перетащите календарь ниже, чтобы указать доступность",
|
||||
"google_cal": {
|
||||
"login": "Синхронизация с календарем Google",
|
||||
"logout": "выйти",
|
||||
"select_all": "Выбрать все",
|
||||
"select_none": "Ничего не выбрать",
|
||||
"info": "При импорте ваша текущая доступность будет перезаписана",
|
||||
"button": "Доступность импорта"
|
||||
}
|
||||
}
|
||||
}
|
||||
23
crabfit-frontend/public/i18n/ru/help.json
Normal file
23
crabfit-frontend/public/i18n/ru/help.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "How to Crab Fit",
|
||||
|
||||
"p1": "Crab Fit is a tool that helps you when planning events with friends or coworkers. You just create an event, enter your availability, send it out, and see when everyone is free!",
|
||||
"p2": "See below for detailed steps of how to Crab Fit your event.",
|
||||
|
||||
"s1": "Step 1",
|
||||
|
||||
"p3": "Use the form at <1>crab.fit</1> to make a new event. You only need to put in the rough time period for when your event occurs here, not your availability.",
|
||||
"p4": "For example, we'll use \"Jenny's Birthday Lunch\". Jenny wants her birthday lunch to happen on the same week as her birthday, the 15th of April, but she knows that not all of her friends are available on the 15th. She also doesn't want to do it on the weekend.",
|
||||
"p5": "Jenny also knows that since it's a lunch event, it can't start before 11am or go any later than 5pm.",
|
||||
|
||||
"s2": "Step 2",
|
||||
|
||||
"p6": "Enter your availability for the event you just created.",
|
||||
"p7": "In our example, Jenny now puts in her availability for her birthday lunch. She is free all week, except after 3pm on Tuesday and Wednesday, and before 1pm on Friday.",
|
||||
|
||||
"s3": "Step 3",
|
||||
|
||||
"p8": "Send the link to everyone you want to come.",
|
||||
"p9": "After Jenny has sent the link to her friends and waited for them to also fill out their availabilities, she can now easily see them all on the heatmap below and choose the darkest area for a time that suits everyone!",
|
||||
"p10": "In this example, 1pm to 3pm on Friday the 16th works for all Jenny's friends."
|
||||
}
|
||||
57
crabfit-frontend/public/i18n/ru/home.json
Normal file
57
crabfit-frontend/public/i18n/ru/home.json
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"create": "СОЗДАТЬ",
|
||||
"recently_visited": "Недавно посещенный",
|
||||
"nav": {
|
||||
"about": "Информация",
|
||||
"donate": "Пожертвовать"
|
||||
},
|
||||
"form": {
|
||||
"name": {
|
||||
"label": "Дайте своему мероприятию название!",
|
||||
"sublabel": "Или оставьте поле пустым, чтобы создать его"
|
||||
},
|
||||
"dates": {
|
||||
"label": "Какие сроки могли бы работать?",
|
||||
"sublabel": "Щелкните и перетащите, чтобы выбрать",
|
||||
"options": {
|
||||
"specific": "Конкретные даты",
|
||||
"week": "Дни недели"
|
||||
},
|
||||
"tooltips": {
|
||||
"previous": "Прошлый месяц",
|
||||
"next": "Следующий месяц",
|
||||
"today": "сегодня"
|
||||
}
|
||||
},
|
||||
"times": {
|
||||
"label": "В какое время может работать?",
|
||||
"sublabel": "Щелкните и перетащите, чтобы выбрать временной диапазон"
|
||||
},
|
||||
"timezone": {
|
||||
"label": "И часовой пояс",
|
||||
"defaultOption": "Выбрать..."
|
||||
},
|
||||
|
||||
"button": "Создавать",
|
||||
"errors": {
|
||||
"no_dates": "Даты не выбраны",
|
||||
"same_times": "Время начала и окончания не может быть одинаковым",
|
||||
"no_time": "Существует нет времени выбрано",
|
||||
"unknown": "Что-то пошло не так. Пожалуйста, повторите попытку позже."
|
||||
}
|
||||
},
|
||||
"offline": "Вы не можете создать Crab Fit, если у вас нет подключения к Интернету. Пожалуйста, убедитесь, что вы подключены.",
|
||||
|
||||
"about": {
|
||||
"name": "О компании Crab Fit",
|
||||
"events": "События созданы",
|
||||
"availabilities": "Введено наличие",
|
||||
"content": {
|
||||
"p1": "Crab Fit поможет вам приспособить ваше мероприятие к расписанию каждого. Просто создайте мероприятие выше и отправьте ссылку всем, кто в нем участвует. Результаты обновляются в реальном времени, и вы сможете увидеть тепловую карту, когда все будут свободны.<1 /><2>Узнайте больше о том, как использовать Crab Fit.</2>",
|
||||
"p2": "Планируете много мероприятий? Получите <1>расширение Chrome</1> или <3>расширение Firefox</3> для своего браузера! Вы также можете загрузить <5>Android-приложение</5>, чтобы использовать Crab Fit на ходу.",
|
||||
"p3": "Crab Fit, созданный <1>Беном Грантом</1>, - это современное решение для обсуждения группового планирования мероприятий.",
|
||||
"p4": "Код для Crab Fit является открытым исходным кодом, если вы обнаружите какие-либо проблемы или захотите внести свой вклад, вы можете посетить <1>репозиторий</1>. Используя Crab Fit, вы соглашаетесь с <3>политикой конфиденциальности</3>.",
|
||||
"p5": "Рассмотрите возможность пожертвования ниже, если это помогло вам, чтобы оно могло оставаться бесплатным для всех. 🦀"
|
||||
}
|
||||
}
|
||||
}
|
||||
52
crabfit-frontend/public/i18n/ru/privacy.json
Normal file
52
crabfit-frontend/public/i18n/ru/privacy.json
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"name": "Privacy Policy",
|
||||
|
||||
"p1": "This SERVICE is provided by Benjamin Grant at no cost and is intended for use as is.",
|
||||
"p2": "This page is used to inform visitors regarding the policies of the collection, use, and disclosure of Personal Information if using the Service.",
|
||||
"p3": "If you choose to use the Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that is collected is used for providing and improving the Service. Your information will not be used or shared with anyone except as described in this Privacy Policy.",
|
||||
|
||||
"h1": "Information Collection and Use",
|
||||
|
||||
"p4": "The Service uses third party services that may collect information used to identify you.",
|
||||
"p5": "Links to privacy policies of the third party service providers used by the Service:",
|
||||
"link": "Google Play Services",
|
||||
|
||||
"h2": "Log Data",
|
||||
|
||||
"p6": "When you use the Service, in the case of an error, data and information is collected to improve the Service, which may include your IP address, device name, operating system version, app configuration and the time and date of the error.",
|
||||
|
||||
"h3": "Cookies",
|
||||
|
||||
"p7": "Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.",
|
||||
"p8": "Cookies are used by Google Analytics to track you across the web and provide anonymous statistics to improve the Service.",
|
||||
|
||||
"h4": "Service Providers",
|
||||
|
||||
"p9": "Third-party companies may be employed for the following reasons:",
|
||||
"l1": "To facilitate the Service",
|
||||
"l2": "To provide the Service on our behalf",
|
||||
"l3": "To perform Service-related services",
|
||||
"l4": "To assist in analyzing how the Service is used",
|
||||
"p10": "To perform these tasks, the third parties may have access to your Personal Information, but are obligated not to disclose or use this information for any purpose except the above.",
|
||||
|
||||
"h5": "Security",
|
||||
|
||||
"p11": "Personal Information that is shared via the Service is protected, however remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, so take care when sharing Personal Information.",
|
||||
|
||||
"h6": "Links to Other Sites",
|
||||
|
||||
"p12": "The Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by the Service. Therefore, you are advised to review the Privacy Policy of these websites.",
|
||||
|
||||
"h7": "Children's Privacy",
|
||||
|
||||
"p13": "The Service does not address anyone under the age of 13. Personally identifiable information is not knowingly collected from children under 13. If discovered that a child under 13 has provided the Service with personal information, such information will be immediately deleted from the servers. If you are a parent or guardian and you are aware that your child has provided the Service with personal information, please <1>contact us</1> so that this information can be removed.",
|
||||
|
||||
"h8": "Changes to This Privacy Policy",
|
||||
|
||||
"p14": "This Privacy Policy may be updated from time to time. Thus, you are advised to review this page periodically for any changes.",
|
||||
"p15": "This policy is effective as of 2021-04-20",
|
||||
|
||||
"h9": "Contact Us",
|
||||
|
||||
"p16": "If you have any questions or suggestions about the Privacy Policy, do not hesitate to contact us at <1>benjamin.grantGRA0007+crabfit@gmail.com</1>."
|
||||
}
|
||||
|
|
@ -96,6 +96,7 @@ const Settings = () => {
|
|||
'hi': 'हिंदी',
|
||||
'id': 'Indonesia',
|
||||
'ko': '한국어',
|
||||
'ru': 'Pусский',
|
||||
...process.env.NODE_ENV !== 'production' && { 'cimode': 'DEV' },
|
||||
}}
|
||||
small
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ export const Modal = styled.div`
|
|||
z-index: 150;
|
||||
padding: 10px 18px;
|
||||
border-radius: 3px;
|
||||
width: 250px;
|
||||
width: 270px;
|
||||
box-sizing: border-box;
|
||||
max-width: calc(100% - 20px);
|
||||
box-shadow: 0 3px 6px 0 rgba(0,0,0,.3);
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ const Home = ({ offline }) => {
|
|||
<Center>
|
||||
<Logo src={logo} alt="" />
|
||||
</Center>
|
||||
<TitleSmall>{t('home:create')}</TitleSmall>
|
||||
<TitleSmall altChars={/[A-Z]/g.test(t('home:create'))}>{t('home:create')}</TitleSmall>
|
||||
<TitleLarge>CRAB FIT</TitleLarge>
|
||||
<Links>
|
||||
<a href="#about">{t('home:nav.about')}</a> / <a href="#donate">{t('home:nav.donate')}</a>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ export const TitleSmall = styled.span`
|
|||
color: ${props => props.theme.primaryDark};
|
||||
line-height: 1em;
|
||||
text-transform: uppercase;
|
||||
|
||||
${props => !props.altChars && `
|
||||
font-size: 2rem;
|
||||
font-weight: 600;
|
||||
line-height: 1.2em;
|
||||
padding-top: .3em;
|
||||
`}
|
||||
`;
|
||||
|
||||
export const TitleLarge = styled.h1`
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ const locales = {
|
|||
hi: () => import('dayjs/locale/hi'), // Hindi
|
||||
id: () => import('dayjs/locale/id'), // Indonesian
|
||||
ko: () => import('dayjs/locale/ko'), // Korean
|
||||
ru: () => import('dayjs/locale/ru'), // Russian
|
||||
};
|
||||
|
||||
export default locales;
|
||||
|
|
|
|||
Loading…
Reference in a new issue