# kadirermantr/multilify architecture

> Architecture diagram of the GitHub repository kadirermantr/multilify, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kadirermantr/multilify
- Repository: https://github.com/kadirermantr/multilify

## Overview

Multilify is a WordPress multilingual-content plugin. Its principal workflow is configuring languages, entering per-language translations and slugs in the editor, then serving those translations at language-specific URLs. The README also documents language switching, browser detection, translation progress and SEO language metadata. The main class is a large, partly unsampled implementation, so the graph groups several runtime responsibilities under that exact source path; uncertain internal call wiring is omitted.

Main entry points: [`includes/class-multilify.php`](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php) (Language settings), [`multilify.php`](https://github.com/kadirermantr/multilify/blob/main/multilify.php) (Plugin bootstrap), [`includes/views/admin-page.php`](https://github.com/kadirermantr/multilify/blob/main/includes/views/admin-page.php) (Settings screen), [`includes/views/meta-box.php`](https://github.com/kadirermantr/multilify/blob/main/includes/views/meta-box.php) (Translation editor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Plugin entry"]
  node_entrypoint["Plugin bootstrap<br/>[multilify.php]"]
end

subgraph group_admin["Language administration"]
  node_language_admin["Language settings"]
  node_settings_view["Settings screen<br/>[admin-page.php]"]
  node_admin_assets["Admin interactions<br/>[multilify-admin.js]"]
end

subgraph group_content["Translation and routing"]
  node_translation_editor["Translation editor<br/>[meta-box.php]"]
  node_translation_runtime["Translation handling"]
  node_translation_storage[("Translation metadata")]
  node_url_routing["Localized URL routing"]
end

subgraph group_frontend["Visitor experience"]
  node_frontend_output["Localized page output"]
  node_switcher["Language switcher"]
  node_browser_detection["Browser detection"]
  node_seo_language["SEO language metadata"]
end

node_administrator(("Site administrator"))
node_visitor(("Visitor"))
node_wordpress["WordPress"]
node_wp_store[("WordPress database")]

node_wordpress -->|"loads plugin"| node_entrypoint
node_entrypoint -->|"initializes"| node_language_admin
node_administrator -->|"manages languages"| node_language_admin
node_language_admin -->|"renders settings"| node_settings_view
node_settings_view -->|"uses interactions"| node_admin_assets
node_language_admin -->|"stores language options"| node_wp_store
node_language_admin -->|"provides editor"| node_translation_editor
node_administrator -->|"enters translations"| node_translation_editor
node_translation_runtime -->|"saves translations"| node_wp_store
node_translation_runtime -->|"updates metadata"| node_translation_storage
node_wordpress -->|"routes requests"| node_url_routing
node_url_routing -->|"resolves translated slugs"| node_wp_store
node_frontend_output -->|"reads translations"| node_wp_store
node_visitor -->|"requests page"| node_wordpress
node_wordpress -->|"serves page"| node_frontend_output
node_visitor -->|"chooses language"| node_switcher
node_visitor -->|"visits site"| node_browser_detection
node_browser_detection -->|"remembers choice"| node_wp_store
node_frontend_output -->|"sets language metadata"| node_seo_language

click node_entrypoint "https://github.com/kadirermantr/multilify/blob/main/multilify.php"
click node_language_admin "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_settings_view "https://github.com/kadirermantr/multilify/blob/main/includes/views/admin-page.php"
click node_admin_assets "https://github.com/kadirermantr/multilify/blob/main/assets/js/multilify-admin.js"
click node_translation_editor "https://github.com/kadirermantr/multilify/blob/main/includes/views/meta-box.php"
click node_translation_runtime "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_translation_storage "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_url_routing "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_frontend_output "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_switcher "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_browser_detection "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"
click node_seo_language "https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entrypoint toneBlue
class node_language_admin,node_settings_view,node_admin_assets,node_wp_store toneAmber
class node_translation_editor,node_translation_runtime,node_translation_storage,node_url_routing toneMint
class node_frontend_output,node_switcher,node_browser_detection,node_seo_language toneRose
class node_administrator,node_visitor,node_wordpress toneIndigo
```

## Components

### Plugin entry

- [Plugin bootstrap](https://github.com/kadirermantr/multilify/blob/main/multilify.php): `multilify.php`

### Language administration

- [Language settings](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [Settings screen](https://github.com/kadirermantr/multilify/blob/main/includes/views/admin-page.php): `includes/views/admin-page.php`
- [Admin interactions](https://github.com/kadirermantr/multilify/blob/main/assets/js/multilify-admin.js): `assets/js/multilify-admin.js`

### Translation and routing

- [Translation editor](https://github.com/kadirermantr/multilify/blob/main/includes/views/meta-box.php): `includes/views/meta-box.php`
- [Translation handling](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [Translation metadata](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [Localized URL routing](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`

### Visitor experience

- [Localized page output](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [Language switcher](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [Browser detection](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`
- [SEO language metadata](https://github.com/kadirermantr/multilify/blob/main/includes/class-multilify.php): `includes/class-multilify.php`

### Other components

- **Site administrator**
- **Visitor**
- **WordPress**
- **WordPress database**

## Connections

- WordPress → Plugin bootstrap: loads plugin
- Plugin bootstrap → Language settings: initializes
- Site administrator → Language settings: manages languages
- Language settings → Settings screen: renders settings
- Settings screen → Admin interactions: uses interactions
- Language settings → WordPress database: stores language options
- Language settings → Translation editor: provides editor
- Site administrator → Translation editor: enters translations
- Translation handling → WordPress database: saves translations
- Translation handling → Translation metadata: updates metadata
- WordPress → Localized URL routing: routes requests
- Localized URL routing → WordPress database: resolves translated slugs
- Localized page output → WordPress database: reads translations
- Visitor → WordPress: requests page
- WordPress → Localized page output: serves page
- Visitor → Language switcher: chooses language
- Visitor → Browser detection: visits site
- Browser detection → WordPress database: remembers choice
- Localized page output → SEO language metadata: sets language metadata
