Kanta

Gestionnaire de traductions convivial pour les projets Elixir/Phoenix. Simplifiez le processus de gestion des traductions en fournissant une interface intuitive pour ajouter, éditer et supprimer des traductions avec une intégration d'interface en direct.

Gestion des traductions pour Elixir/Phoenix
PO Writer plugin for Kanta. Generate PO files from Kanta translations.
Synchroniser les traductions entre les environnements de développement, de staging et de production.
DeepL translation integration for Kanta.

Aide-mémoire

Référence rapide pour l'installation, la configuration et l'utilisation de Kanta.

Ajouter à mix.exs
Installation

def deps do
  [
    {:kanta, "~> 0.4.2"},
    {:gettext, git: "git@github.com:ravensiris/gettext.git", branch: "runtime-gettext"}
  ]
end
                  
Exécuter la commande de migration
Installation

mix ecto.gen.migration add_kanta_translations_table
                  
Configuration dans config.exs
Configuration

# 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: []
                  
Configuration de la migration de base de données
Configuration

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
                  
Configuration du module Gettext
Configuration

defmodule MyAppWeb.Gettext do
  use Gettext, otp_app: :kanta_landing, repo: KantaLandingWeb.GettextRepo
end
                  
Ajouter à l'arbre de supervision de l'application
Configuration

# application.ex
def start(_type, _args) do
  children = [
    ...
    {Kanta, Application.fetch_env!(:my_app, Kanta)}
    ...
  ]
  ...
end
                  
Ajouter des routes pour l'interface Kanta
Configuration

# router.ex
import KantaWeb.Router

scope "/" do
  pipe_through :browser

  kanta_dashboard("/kanta")
end
                  
Intégration DeepL
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"}
  ]
                  
Plugin PO Writer
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
                  

Fonctionnalités

  • Extraire des fichiers PO

    Analyse automatiquement les fichiers .po et les convertit au format base de données pour un usage pratique.

  • Stockage en base de données

    Les messages et traductions sont stockés dans des tables de base de données pour un affichage et une modification faciles.

  • Progrès de traduction

    Suivre le progrès de traduction dans toutes les langues avec un tableau de bord visuel et des options de filtrage.

  • Interface utilisateur conviviale

    Interface web intuitive pour ajouter, éditer et supprimer des traductions avec des mises à jour en direct.

  • Intégration DeepL

    Support de traduction automatique avec l'API DeepL pour une assistance rapide à la traduction.

  • Synchronisation d'environnement

    Synchroniser les traductions entre les environnements de développement, de staging et de production.

Le développement de Kanta dépend de vous.

Nous vous invitons à discuter, contribuer et partager Kanta avec d'autres.

Soutenir Kanta

Canal Slack

Rejoignez #kanta pour poser des questions et partager des commentaires.

Discussions GitHub

Conversations ouvertes sur les fonctionnalités et l'utilisation.

Problèmes GitHub

Signaler des bugs et demander des fonctionnalités.

Guide de contribution

Comment configurer, coder et soumettre des contributions.

Rejoignez notre serveur Discord

Passez du temps avec la communauté Curiosum.

Faites passer le mot

Partagez Kanta avec votre réseau.