Kanta

Benutzerfreundlicher Übersetzungsmanager für Elixir/Phoenix-Projekte. Vereinfache den Prozess der Übersetzungsverwaltung durch Bereitstellung einer intuitiven Oberfläche zum Hinzufügen, Bearbeiten und Löschen von Übersetzungen mit Live-UI-Integration.

Übersetzungsverwaltung für Elixir/Phoenix
PO Writer plugin for Kanta. Generate PO files from Kanta translations.
Übersetzungen zwischen Entwicklungs-, Staging- und Produktionsumgebungen synchronisieren.
DeepL translation integration for Kanta.

Spickzettel

Schnellreferenz für Installation, Konfiguration und Verwendung von Kanta.

Zu mix.exs hinzufügen
Installation

def deps do
  [
    {:kanta, "~> 0.4.2"},
    {:gettext, git: "git@github.com:ravensiris/gettext.git", branch: "runtime-gettext"}
  ]
end
                  
Migrationsbefehl ausführen
Installation

mix ecto.gen.migration add_kanta_translations_table
                  
Konfiguration in config.exs
Konfiguration

# 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: []
                  
Datenbankmigrations-Setup
Konfiguration

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-Modulkonfiguration
Konfiguration

defmodule MyAppWeb.Gettext do
  use Gettext, otp_app: :kanta_landing, repo: KantaLandingWeb.GettextRepo
end
                  
Zum Anwendungsaufsichtsbaum hinzufügen
Einrichtung

# application.ex
def start(_type, _args) do
  children = [
    ...
    {Kanta, Application.fetch_env!(:my_app, Kanta)}
    ...
  ]
  ...
end
                  
Routen für Kanta UI hinzufügen
Einrichtung

# router.ex
import KantaWeb.Router

scope "/" do
  pipe_through :browser

  kanta_dashboard("/kanta")
end
                  
DeepL-Integration
Plugin

# 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-Plugin
Plugin

# 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
Plugin

# 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
Plugin

# 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
                  

Funktionen

  • Aus PO-Dateien extrahieren

    Analysiert automatisch .po-Dateien und konvertiert sie in ein Datenbankformat für bequeme Verwendung.

  • Datenbankspeicherung

    Nachrichten und Übersetzungen werden in Datenbanktabellen für einfaches Anzeigen und Bearbeiten gespeichert.

  • Übersetzungsfortschritt

    Übersetzungsfortschritt in allen Sprachen mit visueller Dashboard-Ansicht und Filteroptionen verfolgen.

  • Benutzerfreundliche Oberfläche

    Intuitive Weboberfläche zum Hinzufügen, Bearbeiten und Löschen von Übersetzungen mit Live-Updates.

  • DeepL-Integration

    Maschinenübersetzungsunterstützung mit DeepL-API für schnelle Übersetzungshilfe.

  • Umgebungssynchronisation

    Übersetzungen zwischen Entwicklungs-, Staging- und Produktionsumgebungen synchronisieren.

Kantas Entwicklung hängt ab von Sie.

Wir laden Sie ein, zu diskutieren, beizutragen und Kanta mit anderen zu teilen.

Unterstütze Kanta

Slack-Kanal

Tritt #kanta bei, um Fragen zu stellen und Feedback zu teilen.

GitHub-Diskussionen

Offene Gespräche über Funktionen und Verwendung.

GitHub-Probleme

Fehler melden und Funktionen anfordern.

Beitragsleitfaden

Wie man einrichtet, codiert und Beiträge einreicht.

Tritt unserem Discord-Server bei

Verbringe Zeit mit der Curiosum-Community.

Verbreite das Wort

Teile Kanta mit deinem Netzwerk.