Skip to main content

Overview

The Nudj platform provides comprehensive localization capabilities, allowing you to deliver your gamification experience in multiple languages. The system supports 32 languages with professional translation workflows, dynamic language switching, and complete customization of all platform text.

Key Features

  • 32 Supported Languages - From Arabic to Vietnamese
  • Professional Translation Workflow - Reference ID system for translators
  • Live Editing - Real-time translation updates with visual indicators
  • CSV Import/Export - Bulk translation management
  • Smart Defaults - Automatic fallback to English when needed
  • Complete Coverage - 2000+ translation keys across the platform

Accessing Language Settings

Navigate to the language configuration interface:
  1. Go to AdminSettingsOrganisation
  2. Click the Languages & Translation tab
  3. View all configured languages for your organization
The language settings interface displays all configured languages for your organization, with options to add, edit, or remove languages.

Language Management

Adding a New Language

  1. Click Add Language in the Languages tab
  2. Select from 32 supported languages
  3. The system automatically loads default English translations
  4. Click Save to create the language configuration
When you add a new language, it starts with English translations as placeholders. You can then customize each text string for your target language.

Editing Translations

The translation editor provides powerful tools for managing your localized content:
  • Visual Editor
  • Status Indicators
  • Search & Filter
The JSON editor displays your translations in a hierarchical structure with:
  • Color-coded indicators showing translation status
  • Inline editing for quick updates
  • Reference IDs for professional translators
  • Reset buttons to restore default values

Professional Translation Workflow

Reference ID System

Every translation key has a unique reference ID (e.g., JT577) that remains stable across updates:
Reference ID,Path,Current Value
JT577,challenges.title,"Challenges"
JT578,challenges.description,"Complete challenges to earn points"
JT579,rewards.title,"Rewards"

Working with Translators

1

Export Reference Guide

Click Download Translation Guide (CSV) to export all text with reference IDs
2

Send to Translators

Share the CSV file with professional translators who can work offline
3

Import Translations

Use Import CSV to bulk update translations from completed work
Reference IDs are generated based on the key path and remain consistent. Never modify the Reference ID column when working with CSV files.

Advanced Features

Filter Options

The translation editor includes powerful filtering capabilities:
Displays only values that differ from defaults. Useful for reviewing your customizations.
Highlights keys that are empty or missing translations. Perfect for tracking translation progress.
Displays reference codes next to each key. Essential for professional translation workflows.

Keyboard Shortcuts

  • Ctrl/Cmd + F - Focus search field
  • Click Reference ID - Copy to clipboard
  • Reset Icon - Restore default value

Translation Structure

The platform organizes translations into logical sections:
{
  "challenges": {
    "title": "Challenges",
    "description": "Complete challenges to earn rewards",
    "buttons": {
      "start": "Start Challenge",
      "continue": "Continue",
      "complete": "Complete"
    }
  },
  "rewards": {
    "title": "Rewards",
    "types": {
      "asset": "Physical Reward",
      "entry": "Prize Draw Entry"
    }
  },
  "achievements": {
    "title": "Achievements",
    "progress": "{{current}} of {{total}} completed"
  }
}
Translations support dynamic placeholders using {{variable}} syntax for runtime values.

Supported Languages

The platform supports the following languages out of the box:

European

  • English (en)
  • Spanish (es)
  • French (fr)
  • German (de)
  • Italian (it)
  • Portuguese (pt)
  • Dutch (nl)
  • Polish (pl)
  • Czech (cs)
  • Greek (el)
  • Hungarian (hu)
  • Romanian (ro)
  • Slovak (sk)
  • Swedish (sv)

Asian

  • Chinese (zh)
  • Japanese (ja)
  • Korean (ko)
  • Hindi (hi)
  • Bengali (bn)
  • Tamil (ta)
  • Thai (th)
  • Vietnamese (vi)
  • Indonesian (id)
  • Malay (ms)
  • Filipino (tl)

Middle Eastern & Other

  • Arabic (ar)
  • Farsi (fa)
  • Turkish (tr)
  • Urdu (ur)
  • Russian (ru)
  • Ukrainian (uk)
  • Serbian (sr)

Language Switching

User Experience

Users can switch languages through:
  1. Language Selector - Dropdown in the user interface
  2. Browser Detection - Automatic language based on browser settings
  3. URL Parameters - Direct links with language codes
  4. Cookie Persistence - Remembers user’s language preference

Implementation

The platform uses i18next for runtime translation:
// Language switching example
import { useTranslation } from 'react-i18next';

function LanguageSelector() {
  const { i18n } = useTranslation();
  
  const changeLanguage = (lng: string) => {
    i18n.changeLanguage(lng);
  };
  
  return (
    <select onChange={(e) => changeLanguage(e.target.value)}>
      <option value="en">English</option>
      <option value="es">Español</option>
      <option value="fr">Français</option>
    </select>
  );
}

Best Practices

Start with English

Always configure English translations first as they serve as the default fallback.

Use Reference IDs

Enable reference IDs when working with external translators for accurate mapping.

Test Thoroughly

Preview your translations in the actual user interface to ensure proper formatting.

Regular Updates

Keep translations synchronized when adding new features or content.

CSV Import Format

When importing translations via CSV, use this format:
Reference ID,Path,Current Value
AA001,common.buttons.save,"Save"
AA002,common.buttons.cancel,"Cancel"
AA003,common.buttons.delete,"Delete"
AA004,challenges.title,"Challenges"
AA005,challenges.empty,"No challenges available"
  • The CSV must include headers: Reference ID,Path,Current Value
  • Paths use dot notation (e.g., challenges.buttons.start)
  • Values containing commas must be quoted
  • UTF-8 encoding is required for non-Latin characters

Performance Considerations

Caching: Translations are cached client-side for optimal performance. Changes may require a page refresh to appear.Bundle Size: Only the active language is loaded, keeping bundle sizes small.Fallbacks: Missing translations automatically fall back to English to prevent broken UI.

Troubleshooting

Clear browser cache and refresh the page. Ensure the language is enabled in settings.
Verify CSV format matches the export structure. Check for UTF-8 encoding and proper quoting.
Use the “Show Needs Translation Only” filter to identify gaps. Red indicators show missing items.
Reference IDs are generated from key paths. Ensure you’re not modifying the path structure.

API Integration

Manage languages programmatically via the Admin API:
curl -X GET https://your-subdomain.nudj.cx/api/v2/admin/languages \
  -H "x-api-token: YOUR_API_TOKEN"
I