---
title: "Installation"
manual: "Netresearch TextDB"
version: "main"
source: "Installation/Index.rst"
rendered: "2026-09-30T23:05:19+00:00"
---

# Installation {#installation}

## Requirements {#requirements}

### Minimum Requirements {#minimum-requirements}

-   **TYPO3**: 14.3.0 or higher
-   **PHP**: 8.2, 8.3, 8.4, or 8.5
-   -   ****PHP Extensions**:**

        -   ext-zip
        -   ext-simplexml
        -   ext-libxml
        -   ext-mbstring

### Recommended {#recommended}

-   **Database**: MariaDB 10.11+ or MySQL 8.0+
-   **Development**: DDEV or Docker for local development

## Installation via Composer {#composer-installation}

The recommended way to install this extension is via Composer:

```bash
composer require netresearch/nr-textdb
```

After requiring the package, activate the extension in the Extension Manager
or via command line:

```bash
# Via command line
vendor/bin/typo3 extension:activate nr_textdb
```

## Installation from TER {#ter-installation}

Alternatively, you can install the extension from the TYPO3 Extension Repository (TER):

1.  Navigate to **Admin Tools > Extensions**
1.  Search for "nr_textdb"
1.  Click the download icon
1.  Activate the extension

## Database Setup {#database-schema}

After installation, update the database schema:

```bash
# Via command line
vendor/bin/typo3 database:updateschema
```

Or use the **Maintenance > Analyze Database Structure** module in the backend.

The extension will create the following database tables:

-   `tx_nrtextdb_domain_model_translation` \- Translation records
-   `tx_nrtextdb_domain_model_component` \- Component definitions
-   `tx_nrtextdb_domain_model_type` \- Translation type definitions
-   `tx_nrtextdb_domain_model_environment` \- Environment definitions

## Post-Installation Steps {#post-installation}

1.  **Create Storage Folder**

    Create a dedicated page/folder in the page tree for TextDB records:

    -   Page Type: Folder
    -   Recommended location: Root level
    -   Suggested name: "TextDB Translations"
1.  **Configure Extension**

    Go to **Admin Tools > Settings > Extension Configuration > nr_textdb**

    Set the PID (Page ID) of your storage folder.
1.  **Create Language Records**

    Create the necessary system language records (if not already present):

    -   Navigate to your storage folder
    -   Create records for Components, Types, and Environments as needed
1.  **Set Permissions**

    Grant backend user groups access to:

    -   TextDB Backend Module
    -   Storage folder for TextDB records

## Localization {#localization}

The extension backend interface is available in **23 languages** out of the box:

**European**: Afrikaans, Czech, Danish, German, Spanish, Finnish, French, Italian, Dutch, Norwegian, Polish, Portuguese, Swedish

**Asian & African**: Arabic, Hindi, Indonesian, Japanese, Korean, Russian, Swahili, Thai, Vietnamese, Chinese

The interface language follows your TYPO3 backend user settings. To change the backend language:

1.  Navigate to **User Settings** (click your username in top bar)
1.  Change **Interface Language** to your preferred language
1.  Save and reload the backend

**Contribute Translations**: Help translate the extension into more languages or improve existing translations through the [TYPO3 Crowdin project](https://crowdin.com/project/typo3-cms). No technical knowledge required! See the [Contributing Guide](https://github.com/netresearch/t3x-nr-textdb/blob/main/CONTRIBUTING.md#how-to-contribute-translations) for details.

## Upgrade Instructions {#upgrade}

### From Version 3.x to 4.x {#from-version-3-x-to-4-x}

Version 4.0 brings TYPO3 14.3 LTS compatibility:

**Breaking Changes:**

-   TYPO3 14.3 minimum requirement, TYPO3 13 is no longer supported
-   The default-language XLIFF export no longer emits a `target-language`
    attribute

**Migration Steps:**

1.  Upgrade the TYPO3 installation to 14.3 first
1.  Update composer dependencies:

    ```bash
    composer require netresearch/nr-textdb:^4.0
    ```
1.  Re-export any stored default-language XLIFF files if an external tool
    relies on the `target-language` attribute

### From Version 2.x to 3.x {#from-version-2-x-to-3-x}

Version 3.0 brings TYPO3 13.4 LTS compatibility:

**Breaking Changes:**

-   PHP 8.2 minimum requirement
-   TYPO3 13.4 minimum requirement
-   Database schema updates required

**Migration Steps:**

1.  Ensure PHP 8.2+ is installed
1.  Update composer dependencies:

    ```bash
    composer update netresearch/nr-textdb
    ```
1.  Update database schema:

    ```bash
    vendor/bin/typo3 database:updateschema
    ```
1.  Clear all caches:

    ```bash
    vendor/bin/typo3 cache:flush
    ```
1.  Test translation functionality in backend module

## Troubleshooting {#troubleshooting}

### Extension not visible after installation {#extension-not-visible-after-installation}

-   Clear all caches via **Admin Tools > Maintenance > Flush TYPO3 and PHP Cache**
-   Verify extension is activated in Extension Manager
-   Check that database tables were created

### Missing translations {#missing-translations}

-   Verify storage PID is configured correctly in Extension Configuration
-   Check that translations are stored in the correct page/folder
-   Ensure "Create if missing" option is enabled (if desired)

### Import fails {#import-fails}

-   Verify XLIFF file format matches expected structure
-   Check file permissions on upload
-   Review logs in **Admin Tools > Log**
-   Ensure PHP extensions (ext-zip, ext-simplexml, ext-libxml, ext-mbstring) are installed

## Uninstallation {#uninstallation}

To remove the extension:

1.  **Backup Translation Data** (if needed)

    Export all translations before uninstalling.
1.  **Deactivate Extension**

    ```bash
    vendor/bin/typo3 extension:deactivate nr_textdb
    ```
1.  **Remove via Composer**

    ```bash
    composer remove netresearch/nr-textdb
    ```
1.  **Clean Database** (optional)

    Remove TextDB tables manually if desired:

    ```sql
    DROP TABLE tx_nrtextdb_domain_model_translation;
    DROP TABLE tx_nrtextdb_domain_model_component;
    DROP TABLE tx_nrtextdb_domain_model_type;
    DROP TABLE tx_nrtextdb_domain_model_environment;
    ```

> [!WARNING]
> **Attention**
>
> Removing the database tables will permanently delete all translation data!
