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

Russian Translation #353

Open
bbershadsky opened this issue Jun 29, 2023 · 0 comments
Open

Russian Translation #353

bbershadsky opened this issue Jun 29, 2023 · 0 comments

Comments

@bbershadsky
Copy link

bbershadsky commented Jun 29, 2023

I love this app and wanted a Russian translation so here it is!

  1. Add to the LanguageStore list
    plugins/i18n.ts
export const languages : LanguageStore = {
  en: {
    name: 'English',
    iso: 'en-US'
  },
  ru: {
    name: 'Русскии',
    iso: 'ru-RU'
  },
  1. Add the translations file

i18n/ru.json

{
  "support": {
    "source": "Посмотреть на GitHub",
    "support": "Купить автору кофе",
    "share": {
      "twitter": "Подпишитесь на приложение в Twitter",
      "facebook": "Поделиться приложением на Facebook",
      "reddit": "Поделиться приложением на Reddit"
    }
  },
  "section": {
    "work": "Работа",
    "shortpause": "Перерыв",
    "longpause": "Долгий перерыв",
    "wait": "Ожидание"
  },
  "controls": {
    "play": "Запустить или приостановить таймер",
    "stop": "Сбросить таймер",
    "advance": "Перейти к следующему разделу"
  },
  "appbar": {
    "settings": "Открыть настройки",
    "todo": "Открыть список задач"
  },
  "timer": {
    "approximate": {
      "hours": "час | часы",
      "minutes": "минуты | минуты"
    }
  },
  "settings": {
    "heading": "Настройки",
    "tabs": {
      "main": "Главный",
      "timer": "Расписание",
      "display": "Отображение",
      "audio": "Аудио",
      "about": "O"
    },
    "buttons": {
      "close": "Закрыть",
      "reset": "Сброс"
    },
    "reset": {
      "title": "Сбросить настройки",
      "confirm": "Сброс",
      "cancel": "Отменить"
    },
    "manage": {
      "buttons": {
        "save": "Сохранить",
        "load": "Загрузить"
      }
    },
    "scheduleMinTime": "Минимально допустимое время - 5 секунд",
    "about": {
      "madeby": "Aвтор Imre Gera",
      "source": "Исходный код",
      "support": "Поддержать проект",
      "supportBody": "Я разрабатываю FocusTide в свободное время. Для меня было бы очень важно, если бы вы помогли мне продолжить работу над ним!",
      "mobileSupport": "Из-за правил, установленных Google Play Store, я не могу показать вам какие-либо ссылки внутри мобильного приложения для пожертвований проекту.",
      "share": "или поделитесь приложением в социальных сетях:"
    },
    "values": {
      "manage": {
        "_title": "Управление настройками",
        "_description": "Скачать текущие настройки или загрузить их из файла"
      },
      "mobile": {
        "notifications": {
          "sectionOver": {
            "_title": "Раздел над уведомлениями",
            "_description": "Показывать уведомление о завершении раздела"
          },
          "persistent": {
            "_title": "Постоянное уведомление",
            "_description": "Отображать ход текущего таймера"
          }
        }
      },
      "lang": {
        "_title": "Язык",
        "_description": ""
      },
      "eventLoggingEnabled": {
        "_title": "Включить регистрацию событий",
        "_description": ""
      },
      "currentTimer": {
        "_title": "Стиль таймера",
        "_description": "",
        "_values": {
          "traditional": "Tрадиционный",
          "approximate": "Приблизительно",
          "percentage": "Процент"
        },
        "_valueDescription": {
          "traditional": "12:34",
          "approximate": "13 минут",
          "percentage": "50%"
        }
      },
      "adaptiveTicking": {
        "enabled": {
          "_title": "Включить адаптивную галочку",
          "_description": "В фоновом режиме таймер будет тикать реже"
        }
      },
      "schedule": {
        "longPauseInterval": {
          "_title": "Интервал длинного перерыва",
          "_description": ""
        },
        "numScheduleEntries": {
          "_title": "Количество записей в расписании",
          "_description": ""
        },
        "visibility": {
          "enabled": {
            "_title": "Показать расписание",
            "_description": ""
          },
          "showSectionType": {
            "_title": "Показать тип раздела в расписании",
            "_description": "Отображает текущий тип раздела под расписанием"
          }
        },
        "lengths": {
          "_title": "Предустановка расписания",
          "_description": "",
          "_values": {
            "default": "По умолчанию",
            "debug": "Отладка",
            "custom": "Пользовательский"
          },
          "_valueDescription": {
            "default": "25 минут работы, 5 минут перерыва",
            "debug": "Для отладки",
            "custom": "Установлено вами"
          },
          "work": {
            "_title": "Работа",
            "_description": ""
          },
          "shortpause": {
            "_title": "Перерыв",
            "_description": ""
          },
          "longpause": {
            "_title": "Долгий перерыв",
            "_description": ""
          }
        }
      },
      "performance": {
        "showProgressBar": {
          "_title": "Показать индикатор выполнения",
          "_description": "Показать прогресс за таймером"
        }
      },
      "permissions": {
        "audio": {
          "_title": "Воспроизвести аудио",
           "_description": "Разрешить приложению"
        },
        "notifications": {
          "_title": "Разрешения на уведомления",
          "_description": "Разрешить приложению отправлять вам уведомления, когда раздел заканчивается"
        }
      },
      "audio": {
        "volume": {
          "_title": "Громкость звука",
          "_description": ""
        },
        "soundSet": {
          "_title": "Набор звуков",
          "_description": "Звуки, используемые для уведомлений",
          "_values": {
            "musical": "Музыкальный"
          },
          "_valueDescription": {
            "musical": "Звуки по умолчанию"
          }
        }
      },
      "timerControls": {
        "enableKeyboardShortcuts": {
          "_title": "Включить сочетания клавиш",
          "_description": "Запустить/приостановить таймер клавишей пробела"
        }
      },
      "tasks": {
        "enabled": {
          "_title": "Включить список задач",
          "_description": "Управляйте своей работой прямо из приложения"
        },
        "maxActiveTasks": {
           "_title": "Максимальное количество активных задач для отображения",
           "_description": "Вы увидите не более указанного количества активных задач"
        },
        "removeCompletedTasks": {
            "_title": "Удалить выполненные задачи",
           "_description": "Выполненные задачи будут удалены, когда начнется новый раздел"
        }
      },
      "pageTitle": {
        "useTickEmoji": {
          "_title": "Использовать эмодзи с галочкой в заголовке",
          "_description": "Показывать ✔ вместо \"готово\""
        }
      },
      "visuals": {
        "theme": {
          "_title": "Настройки темы",
          "_description": "Выберите набор предопределенных цветов раздела или установите свой собственный",
          "custom": "Пользовательский"
        },
        "darkMode": {
          "_title": "Включить темный режим",
          "_description": "Менее яркий, такой же производительный"
        }
      },
      "reset": {
        "_title": "Сбросить настройки",
        "_description": "Все настройки будут сброшены после перезагрузки приложения"
      }
    }
  },
  "notification": {
    "action": {
      "ready": "Поехали!"
    },
    "work": {
      "title": "Пора возвращаться к работе!",
      "body": "Ваш перерыв окончен. Поработайте еще немного, затем снова отдохните."
    },
    "shortpause": {
      "title": "Пора сделать перерыв",
      "body": "Хорошо, вы заслужили небольшой перерыв."
    },
    "longpause": {
       "title": "Вау! Больше свободного времени!",
       "body": "Ну-ну. После такой работы ты заслужил более длительный перерыв."
    }
  },
  "error": {
    "format_invalid": "Неверный формат ввода",
    "range_invalid": "Значение должно быть между {min} и {max}",
    "required": "Это поле должно быть заполнено",
    "numeric": "Значение должно быть числом",
    "min": "Значение должно быть не меньше {min}",
    "max": "Значение должно быть не более {max}",
    "time_format": "Неверный формат времени (ММ:СС)",
    "min_time": "Время ввода слишком короткое",
    "undefined": "Неопределенная ошибка"
  },
  "tasks": {
    "title": "Задачи",
    "empty": "Пока нет задач",
    "управлять": "Управлять",
    "addPlaceholder": "Введите то, что вам нужно сделать"
  },
  "ready": "Готово",
  "errorpage": {
    "title": {
      "crash": "Сбой приложения",
      "notfound": "Эта страница не существует",
      "other": "Что-то пошло не так"
    },
    "action": {
      "reset": "Сбросить приложение",
      "reload": "Обновить страницу",
      "home": "Вернуться на главную страницу",
      "githubIssue": "Отправить отчет об ошибке",
      "githubDiscussion": "Спросите других, есть ли у них такая же проблема",
      "twitter": "Написать дружеский твит"
    },
    "showError": {
      "main": "Покажи мне сообщение об ошибке!",
      "sub": "Я использую его, чтобы сообщить о проблеме или спросить, не сталкивались ли с ней другие."
    },
    "suggestions": {
      "основной": "Вы можете",
      "secondary": "или если это не помогло"
    }
  },
  "timerpreset": {
    "_values": {
      "default": "По умолчанию",
      "easy": "Начинающий",
      "advanced": "Дополнительно",
      "workaholic": "Tрудоголик"
    },
    "_valueDescription": {
      "default": "Значения Pomodoro по умолчанию.",
      "easy": "Для тех, кто еще не пробовал технику Pomodoro.",
      "advanced": "Работать немного эффективнее.",
      "workaholic": "Для длительной работы."
    },
    "description": "{brief} \n {worklength} минут работы с {splength} короткими минутами и {lplength} минутными перерывами после каждых {lpfreq} рабочих сессий."
  },
  "tutorials": {
    "onboarding": {
      "pages": {
        "0": {
          "title": "Добро пожаловать в FocusTide!",
          "onboarding_invite": "Давайте настроим вас в первый раз. Позже вы сможете изменить все в меню настроек.",
          "heading": "Выберите язык"
        },
        "1": {
          "heading": "Установите таймеры",
          "text": "Выберите предопределенную настройку длительности ваших таймеров. Вы можете изменить их позже в настройках."
        },
        "2": {
          "theme": {
            "heading": "Выберите тему",
            "options": {
              "_values": {
                "light": "Cветлый",
                "dark": "Темный"
              },
              "_valueDescription": {
                "light": "",
                "dark": ""
              }
            }
          },
          "display": {
            "heading": "Выберите дисплей"
          }
        },
        "3": {
          "heading": "Помни",
          "text": "Вы всегда можете изменить это (и многое другое) в меню настроек!"
        },
        "support": {
          "heading": "Поддержите проект",
          "text": "Если этот проект помог вам, подумайте о том, чтобы угостить автора кофе.",
          "hint": "Вы также можете найти варианты поддержки на странице Настройки > О программе."
        }
      },
      "buttons": {
        "close": "Закрыть",
        "start": "Начать настройку",
        "next": "Далее",
        "support": "Поддержать проек"
      }
    },
    "olddomain": {
      "heading": "Другой Pomodoro теперь FocusTide",
      "warning": "Мы обнаружили, что вы можете использовать старый домен other-pomodoro.app, срок действия которого истекает к концу 2023 года.",
      "action": "Обновите закладку или гиперссылку на focustide.app.",
      "button": "OK"
    }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant