# Flickwerk Edition - Modding Guide: Custom Themes & Languages

## Part 1: Super easy - add a language

This guide is for everyone who wants to change languages on their own. You do not need Python or coding skills. A normal text editor is enough. With it, you can edit existing language files or create new ones.

### All you need is a text editor

Open a language file in the `lang` folder with any normal text editor. You can edit it, copy it, or create a new file - nothing more is needed.

That means you can change an existing language or add a new one. No source code is needed.

### Step 1: Copy a file

Open the `lang` folder and copy one of the existing language files. Then rename the copy, for example to `fr_FR.json`, `es_ES.json`, `it_IT.json`, `nl_NL.json`, or `pt_BR.json`.

### Step 2: Change only the text on the right

Very important: the left side is the key, the right side is the text. Only the text after the colon is translated. The left part must stay exactly the same.

    Correct:
    "save": "Save"
    "cancel": "Cancel"
    "open": "Open"

    Wrong:
    "save": "save"
    "Save": "Cancel"

The name on the left stays the same. The translation goes on the right. That is how the program reads the file correctly.

### Step 3: You can also use AI

You can also let an AI do the translation. Paste the language file into ChatGPT or another AI tool and say: translate only the text on the right, but do not change the names on the left.

### Step 4: Save and restart

Save the file in the `lang` folder and restart the program. The new language will then appear automatically in the list.

## Part 2: Creating a Custom Theme

Since version 4.1.1, themes are fully managed through external JSON files inside the `themes` folder. No Python editing is required.

### Step 1: Copy an Existing Theme

Open the `themes` folder and copy an existing file such as `light.json`. Rename the copy, for example `my_theme.json`.

### Step 2: Modify the Colors

    {
        "name": "my_theme",

        "bg": "#E0E0E0",              // Main application background
        "fg": "#000000",              // Main text color
        "info_bg": "#ffffff",         // Text areas and process log
        "separator": "#808080",       // Borders and separators
        "entry_bg": "#ffffff",        // Input fields and comboboxes
        "disabled_fg": "#6d6d6d",     // Disabled text
        "error_bg": "#f2b8b5",        // Error highlighting
        "button_bg": "#d3d1ce",       // Buttons and inactive tabs
        "button_hover": "#e4e0d8",    // Hover and active state
        "text_relief": "sunken",      // flat, sunken, ridge, groove
        "accent": "#0a64ad",          // Main accent color
        "tree_selected": "#0a64ad",   // Selected file row background
        "tree_selected_fg": "#ffffff",// Selected file row text
        "tree_row_alt": "#f7f7f7"     // Alternate row color
    }

Save the file. The application will detect it automatically.

### Step 3: Select the Theme

Start the application. Every valid JSON theme inside the `themes` folder will automatically appear in the App Theme selector.