Канта

Пользовательский менеджер переводов для проектов Elixir/Phoenix. Упростите процесс управления переводами, предоставив интуитивный интерфейс для добавления, редактирования и удаления переводов с интеграцией живого UI.

Управление переводами для Elixir/Phoenix
PO Writer plugin for Kanta. Generate PO files from Kanta translations.
Синхронизируйте переводы между средами разработки, тестирования и продакшена.
DeepL translation integration for Kanta.

Шпаргалка

Быстрая справка по установке, настройке и использованию Канта.

Добавить в mix.exs
Установка

def deps do
  [
    {:kanta, "~> 0.4.2"},
    {:gettext, git: "git@github.com:ravensiris/gettext.git", branch: "runtime-gettext"}
  ]
end
                  
Запустить команду миграции
Установка

mix ecto.gen.migration add_kanta_translations_table
                  
Конфигурация в config.exs
Конфигурация

# config/config.exs
config :my_app, Kanta,
  endpoint: MyAppWeb.Endpoint, # Your app Endpoint module
  repo: MyApp.Repo, # Your app Repo module
  otp_name: :my_app, # Name of your OTP app
  plugins: []
                  
Настройка миграции базы данных
Конфигурация

defmodule MyApp.Repo.Migrations.AddKantaTranslationsTable do
  use Ecto.Migration

  def up do
    Kanta.Migration.up(version: 3)
  end

  def down do
    Kanta.Migration.down(version: 3)
  end
end
                  
Конфигурация модуля Gettext
Конфигурация

defmodule MyAppWeb.Gettext do
  use Gettext, otp_app: :kanta_landing, repo: KantaLandingWeb.GettextRepo
end
                  
Добавить в дерево надзора приложения
Настройка

# application.ex
def start(_type, _args) do
  children = [
    ...
    {Kanta, Application.fetch_env!(:my_app, Kanta)}
    ...
  ]
  ...
end
                  
Добавить маршруты для интерфейса Kanta
Настройка

# router.ex
import KantaWeb.Router

scope "/" do
  pipe_through :browser

  kanta_dashboard("/kanta")
end
                  
Интеграция DeepL
Плагин

# Add to deps in mix.exs
{:kanta_deep_l_plugin, "~> 0.1.1"}

# Configure in config.exs
config :kanta,
  plugins: [
    {Kanta.DeepL.Plugin, api_key: "YOUR_DEEPL_API_KEY"}
  ]
                  
Плагин PO Writer
Плагин

# Add to deps in mix.exs
{:kanta_po_writer_plugin, git: "https://github.com/curiosum-dev/kanta_po_writer_plugin"}

# Configure in config.exs
config :kanta,
  plugins: [
    Kanta.POWriter.Plugin
  ]
                  
KantaSync plugin - Dependencies & Migration
Плагин

# Add to deps in mix.exs
{:kanta_sync_plugin, "~> 0.1.0"}

# Create migration file
defmodule MyApp.Repo.Migrations.AddKantaSyncTables do
  use Ecto.Migration

  def up do
    Kanta.Sync.Migration.up(version: 1)
  end

  def down do
    Kanta.Sync.Migration.down(version: 1)
  end
end
                  
KantaSync plugin - Configuration & Environment
Плагин

# Add API routes in router.ex
scope "/" do
  kanta_api("/kanta-api")
end

# Environment variables (required)
KANTA_API_ENDPOINT="https://production-app.com/kanta-api"
KANTA_SECRET_TOKEN="$(mix phx.gen.secret 256)"

# Optional: Disable default authorization
config :kanta,
  disable_api_authorization: true
                  

Функции

  • Извлечь из PO файлов

    Автоматически анализирует .po файлы и конвертирует их в формат базы данных для удобного использования.

  • Хранение в базе данных

    Сообщения и переводы хранятся в таблицах базы данных для легкого просмотра и изменения.

  • Прогресс перевода

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

  • Пользовательский интерфейс

    Интуитивный веб-интерфейс для добавления, редактирования и удаления переводов с живыми обновлениями.

  • Интеграция DeepL

    Поддержка машинного перевода с API DeepL для быстрой помощи в переводе.

  • Синхронизация окружения

    Синхронизируйте переводы между средами разработки, тестирования и продакшена.

Развитие Канта зависит от вы.

Мы приглашаем вас обсудить, внести вклад и поделиться Канта с другими.

Поддержите Канта

Slack канал

Присоединяйтесь к #kanta, чтобы задавать вопросы и делиться отзывами.

Обсуждения GitHub

Открытые разговоры о функциях и использовании.

Проблемы GitHub

Сообщать об ошибках и запрашивать функции.

Руководство по участию

Как настроить, кодировать и отправлять вклады.

Присоединяйтесь к нашему Discord серверу

Проведите время с сообществом Curiosum.

Распространяйте информацию

Поделитесь Канта с вашей сетью.