Quick Start Guide
Get up and running with LangCTL in under 5 minutes. This guide will walk you through creating your first project and exporting translations.
This guide covers both the Dashboard and CLI workflows. Choose whichever approach fits your workflow best - or use both!
Prerequisites
Before you begin, make sure you have:
- A LangCTL account (sign up at app.langctl.com)
- For CLI: Node.js 16+ installed
- 5 minutes of your time
Option 1: Using the Dashboard
Step 1: Sign Up & Create Organization
- Go to app.langctl.com/signup
- Enter your email, full name, and password
- Click “Sign Up”
- You’ll be redirected to create your organization
- Enter your organization name (e.g., “My Company”)
- Click “Create Organization”
[IMAGE: signup-flow.png - Screenshots showing signup and org creation]
Step 2: Create Your First Project
-
From the dashboard, click “Create New Project”
-
Step 1 of 3: Enter project details
- Name: “My First Project”
- Description: “Learning LangCTL” (optional)
- Click “Next”
-
Step 2 of 3: Select languages
- Select “English” as default language
- Add “Spanish” and “French”
- Click “Next”
-
Step 3 of 3: Review and confirm
- Review your selections
- Click “Create Project”
[IMAGE: project-wizard.png - Three-step project creation wizard]
You can add more languages later from the project settings page.
Step 3: Add Translation Keys
- Click on your newly created project
- Click “View Translations”
- Click ”+ New Key” button
- Fill in the form:
- Key:
home.welcome - Module:
home(optional but recommended) - Description:
Welcome message on homepage - English:
Welcome to our app! - Spanish:
¡Bienvenido a nuestra aplicación! - French:
Bienvenue dans notre application!
- Key:
- Click “Create Key”
[IMAGE: create-key-modal.png - Translation key creation modal]
Step 4: Add More Keys (Optional)
Let’s add a few more keys to make it more interesting:
| Key | Module | English | Spanish | French |
|---|---|---|---|---|
home.subtitle | home | Get started now | Comienza ahora | Commencez maintenant |
auth.login | auth | Log In | Iniciar sesión | Se connecter |
auth.signup | auth | Sign Up | Registrarse | S’inscrire |
Instead of manually entering translations, you can:
- Enter only the English translation
- Click the “AI Translate” button next to each language field
- Review and edit the AI-generated translation
- Save time on initial translations!
Step 5: Publish Your Keys
- Select the keys you want to publish (use checkboxes)
- Click “Bulk Actions” -> “Publish Selected”
- Confirm the action
Only published keys will be included in exports.
[IMAGE: publish-keys.png - Bulk publish action]
Step 6: Export Translations
- Navigate to Export page (from project menu)
- Select export format:
- Choose “i18next JSON” for web apps
- Or “Flat JSON” for simplicity
- Select language: “English”
- Click “Export”
- Download the file
Your exported file will look like this:
{
"home.welcome": "Welcome to our app!",
"home.subtitle": "Get started now",
"auth.login": "Log In",
"auth.signup": "Sign Up"
} [IMAGE: export-page.png - Export page with format selection]
Place the exported files in your project:
my-project/
├── public/
│ └── locales/
│ ├── en.json ← Place here
│ ├── es.json
│ └── fr.json
└── src/
└── ... npm install -g langctl Verify installation:
langctl --version - Log in to app.langctl.com
- Go to Organization -> API Keys
- Click ”+ Create API Key”
- Enter name: “My CLI Key”
- Copy the key (shown only once!)
[IMAGE: api-key-generation.png - API key creation and display modal]
The API key is shown only once! Save it immediately in a secure location.
langctl init Or authenticate directly:
langctl auth lc_your_api_key_here langctl projects create "My First Project" \
--languages en,es,fr \
--default-language en langctl keys create my-first-project home.welcome \
--module home \
--description "Welcome message on homepage" \
--value-en "Welcome to our app!" \
--value-es "¡Bienvenido a nuestra aplicación!" \
--value-fr "Bienvenue dans notre application!"
langctl keys create my-first-project home.subtitle \
--module home \
--value-en "Get started now" \
--value-es "Comienza ahora" \
--value-fr "Commencez maintenant"
langctl keys create my-first-project auth.login \
--module auth \
--value-en "Log In" \
--value-es "Iniciar sesión" \
--value-fr "Se connecter" langctl keys publish my-first-project \
home.welcome \
home.subtitle \
auth.login Export for different platforms:
langctl export my-first-project \
-l en \
-f i18n-json \
-o ./public/locales/en.json
langctl export my-first-project \
-l en \
-f ios-strings \
-o ./ios/en.lproj/Localizable.strings
langctl export my-first-project \
-l en \
-f android-xml \
-o ./app/src/main/res/values/strings.xml
langctl export my-first-project \
-l en \
-f flutter-arb \
-o ./lib/l10n/app_en.arb Now that you have translation files, integrate them with your framework:
-
React/Next.js: See Web Frameworks Guide
-
Angular: See Web Frameworks Guide
-
Vue: See Web Frameworks Guide
-
iOS: See Mobile Apps Guide
-
Android: See Mobile Apps Guide
-
Flutter: See Cross-Platform Guide
-
AI Translation - Automate translations with AI
-
Module Organization - Organize large projects
-
Team Collaboration - Invite team members
-
CI/CD Integration - Automate with GitHub Actions
Even if you prefer CLI, the dashboard is great for:
- Visual translation editing
- Team member management
- Usage tracking and analytics
- Reviewing AI translations
Check out the full CLI Reference for advanced features:
- Bulk operations
- Filtering and search
- Team management from terminal
- Automation scripts
langctl projects add-language my-first-project de
langctl projects add-language my-first-project ja Already have translation files?
langctl import my-first-project ./old-translations/en.json -l en Add to your GitHub Actions workflow:
- name: Export translations
run: |
npm install -g langctl
langctl auth ${{ secrets.LANGCTL_API_KEY }}
langctl export my-project -l en -f json -o ./locales/en.json
langctl export my-project -l es -f json -o ./locales/es.json Make sure your API key:
- Starts with
lc_ - Has exactly 64 hexadecimal characters after the prefix
- Hasn’t been revoked
- Was copied correctly (no extra spaces)
Use the project slug (URL-friendly name), not the display name:
langctl export my-first-project
langctl export "My First Project" Make sure your keys are published:
langctl keys publish my-project key1 key2 key3
langctl export my-project -l en Get Help
Stuck? We’re here to help:
- CLI Help: Run
langctl --helporlangctl <command> --help - Documentation: Browse the sidebar for detailed guides
- Email Support: [email protected]
- GitHub Issues: Report a bug
What’s Next?
Now that you’ve completed the quick start, dive deeper into:
- Installation Guide - Detailed setup and configuration
- Dashboard Guide - Master the web interface
- CLI Reference - Learn all CLI commands
- Platform Integrations - Integrate with your stack
Have questions or want to share your experience? Join our community:
- GitHub Discussions
- Discord Server (coming soon)
- Twitter: @langctl