Aller au contenu

Creating a new language

Version française
Back to index


Accessing the creation form

  1. From the dashboard → "Nouvelle langue"
  2. Or from the language list → "+ Nouvelle langue" button
  3. Route: /admin/languages/new

Two modes of use

The form offers two modes:

Mode When to use it
Create a new language New language that has never existed in the database
Add content to an existing language Import additional cards into an already created language

Mode 1 — Create a new language

Section 1: Basic information

Language name (required)

  • Free text field
  • Must be unique in the system
  • Minimum 2 characters
  • Letters, spaces, hyphens and accented characters allowed
  • Examples: "Pular", "Malinké", "Wolof"

Language code (required)

  • Text field, exactly 3 lowercase letters
  • Must be unique (checked server-side)
  • Used in URLs (/pul, /wol…)
  • Recommendation: use ISO 639-3 codes
  • Examples: "pul" (Pular), "wol" (Wolof), "bam" (Bambara)

Section 2: Visual identity

  • Colour picker with preview
  • Hexadecimal format (e.g. #D97706)
  • Used for the language page background, buttons and dashboard charts
  • Choose a vivid and distinctive colour (avoid white and very light colours)

Icon / Silhouette (optional)

  • Image file upload
  • Accepted formats: PNG, JPG, SVG
  • Recommended size: 512×512 pixels minimum
  • Maximum size: 2 MB
  • Uploaded to MinIO and referenced by URL in the database
  • Displayed on the language card on the homepage

💡 Tip: Use a cultural silhouette or a symbol linked to the language community. Transparent background (PNG) is recommended.

Section 3: Speaker configuration (optional)

If you want to create the native speaker account at the same time:

Speaker name

  • First and last name of the native speaker
  • Displayed in their recording interface
  • Example: "Amadou Diallo"

Speaker access code

  • Option A — Automatic generation: click "Générer un code"
  • Format: RACINES-XXXXX-2025 with 5 random characters
  • Uniqueness guaranteed
  • Option B — Manual entry: type a code of your choice
  • Must follow the format RACINES-XXXXX-2025
  • Automatic uniqueness check

⚠️ Note this code after creation — this is the only time it is clearly displayed. You can find (and change) it later in the language list.

Section 4: Content import (optional)

You can import Excel content directly during creation. See the Excel import guide for template details.

  • Words file: a .xlsx file with word cards
  • Phrases file: a .xlsx file with phrase cards

The import can also be done after creation via the "Add content to an existing language" mode.


Mode 2 — Add content to an existing language

This mode lets you add cards to an already created language without recreating it.

  1. Select "Ajouter du contenu à une langue existante"
  2. A search field appears (minimum 2 characters)
  3. Select the target language from the results
  4. Upload Excel files (words and/or phrases)
  5. Click "Importer le contenu"

Order of operations during creation

When you click "Créer la langue", the system performs the following steps in order:

  1. Field validation (name uniqueness, code, format)
  2. Icon upload to MinIO (if provided)
  3. Language insertion into the languages table
  4. Speaker account creation in the speakers table (if configured)
  5. Parsing of the words Excel file (if provided)
  6. Batch creation of word cards and items in cards and items
  7. Parsing of the phrases Excel file (if provided)
  8. Phrase card and item creation
  9. User code generation (if not already existing)

A progress bar with numbered steps shows the progress.


After creation — what to note

After a successful creation, you are redirected to the language list. Before leaving, note:

Information Where to find it later
User code Language list → "Access code" column
Speaker code Language list → "Speaker code" column

These codes are needed for: - Printing the code in game boxes (user code) - Giving the native speaker their access (speaker code)


Possible error messages

Message Cause Solution
"Ce nom de langue existe déjà" Duplicate name Choose a unique name
"Ce code de langue existe déjà" Duplicate code Choose a different code
"Format de fichier invalide" Non .xlsx file Save in Excel 2007+ format
"Colonne manquante : [name]" Incorrect column header Check the template import guide
"Erreur d'upload de l'icône" File too large or invalid format Check the size (< 2MB) and format
"Erreur serveur" Technical issue Retry or contact the technical team

Next steps