Files
outline-ru/README.md
T
flameshikari 56c8631c5a
Build / Build [amd64] (push) Has been cancelled
Build / Build [arm64] (push) Has been cancelled
Build / Publish (push) Has been cancelled
update readme
2025-09-01 01:34:31 +05:00

5.8 KiB
Raw Blame History

📚 Outline с русским переводом Build Status Version

Зачем

Поддержка русского языка в Outline прекращена в версии 0.71.0 по некоторым причинам.

📝 Примечания

🐳 Установка

Warning

Перед обновлением ОБЯЗАТЕЛЬНО делайте бэкап!

Следуйте официальной инструкции, только в качестве image укажите flameshikari/outline-ru:latest (желательно зафиксировать версию, заменив latest на один из доступных тегов). Например:

services:
  outline:
    image: flameshikari/outline-ru:0.87.0
    # image: ghcr.io/flameshikari/outline-ru:0.87.0
    env_file: ./docker.env
    expose:
      - 3000
    volumes:
      - storage-data:/var/lib/outline/data
    depends_on:
      - postgres
      - redis

  ...

🛠️ Разработка

Ключевые файлы

Быстрый старт

  1. Клонирование репозитория с подмодулем:

    git clone --recurse-submodules git@github.com:flameshikari/outline-ru.git
    
  2. Пулл изменений в подмодуле и переключение на коммит с целевой версией:

    cd outline
    git pull --rebase --tags
    git checkout v0.87.0
    cd -
    
  3. Запуск контейнеров:

    docker compose up -d --build
    

    Веб-интерфейс Outline будет доступен по этой ссылке; входить с помощью OpenID Connect под логином/паролем outline.

  4. Формирование временного файла с помощью tools/diff.py:

    python tools/diff.py
    

    После можно приступить к переводу сфомированного временного файла. После перевода временного файла скопируйте его в файл русского перевода. Любые изменения в русском переводе обновят открытую веб-страницу через пару секунд.

Описание

Скрипт tools/diff.py используется для объединения английского и русского переводов во временный файл. Скрипт не имеет интерактивного режима и каких-либо аргументов/опций, он просто запускается (с выводом некоторой полезной информации) и делает следующее:

  • сохраняет актуальные переведённые строки
  • удаляет неактуальные переведённые строки
  • если в русском переводе есть одинаковые key/value пары, то они считаются исключениями (например, HTML или API) и переносятся как есть
  • новые непереведённые строки добавляются в конец

Если во временном файле присутствуют две одинаковые непереведённые строки, но одна из них с суффиксом _plural (множественное число), например:

{
  "{{ count }} comment": "{{ count }} comment",
  "{{ count }} comment_plural": "{{ count }} comments"
}

…то нужно заменить эти строки на следующие (для справки: множественное число в i18next с JSON-форматом версии 3):

{
  "{{ count }} comment_0": "{{ count }} комментарий",
  "{{ count }} comment_1": "{{ count }} комментария",
  "{{ count }} comment_2": "{{ count }} комментариев"
}