SRT Translator is a Laravel-based web application for uploading, managing, and translating .srt subtitle files.
This project is intended to make subtitle translation workflows easier by keeping subtitle timing intact while allowing subtitle text to be processed and translated.
- Upload
.srtsubtitle files - Parse subtitle blocks and preserve timing information
- Translate subtitle text
- Download or manage translated subtitle output
- Laravel-based backend structure
- Simple environment-based configuration
- PHP 8.1 or higher
- Composer
- Node.js and npm
- MySQL or MariaDB
- Git
Clone the repository:
git clone git@github.com:tulatl/srt-translator.git
cd srt-translatorInstall PHP dependencies:
composer installInstall frontend dependencies:
npm installCreate the environment file:
cp .env.example .envGenerate application key:
php artisan key:generateConfigure your database in .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=srt_translator
DB_USERNAME=root
DB_PASSWORD=Run migrations:
php artisan migrateCreate the storage symlink:
php artisan storage:linkBuild frontend assets:
npm run buildStart the local development server:
php artisan serveOpen the application:
http://127.0.0.1:8000
For local development, run the Laravel server:
php artisan serveIf you are working on frontend assets, run:
npm run devRun the test suite:
php artisan testRun PHP syntax checks manually:
find app config database routes tests -name "*.php" -print0 | xargs -0 -n1 php -lImportant environment variables:
APP_NAME="SRT Translator"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=srt_translator
DB_USERNAME=root
DB_PASSWORD=If the project uses admin seeding, configure these values before running seeders:
ADMIN_NAME="Admin"
ADMIN_EMAIL="admin@example.com"
ADMIN_PASSWORD="change-this-password"Do not commit your real .env file.
Before deploying or making this project public, make sure that:
.envis not committed- Real passwords, API keys, tokens, and private keys are not committed
- Database dumps are not committed
APP_DEBUG=falseis used in production- A strong
APP_KEYis generated - Production credentials are stored securely
If you discover a security issue, please open a private report or contact the maintainer directly.
Contributions are welcome.
To contribute:
- Fork the repository
- Create a new feature branch
- Make your changes
- Run tests
- Open a pull request
This project is open-sourced software licensed under the MIT license.