Managing Projects
Projects are the top-level containers for your translations. Each project represents an application or service with its own set of supported languages and translation keys.
Creating a New Project
From the Dashboard
-
Click “New Project” button on the home page or projects list
-
Fill in the project details:
- Name: Descriptive name (e.g., “Mobile App”, “Marketing Site”)
- Description: Optional details about the project
- Default Language: The source language for translations (usually English)
- Additional Languages: Select target languages
-
Click “Create Project”
[IMAGE: create-project-form.png - Screenshot of the create project form with all fields filled]
Use clear, descriptive names for projects. Good examples: “iOS App”, “Web Dashboard”, “Marketing Website”. Avoid generic names like “Project 1” or “Test”.
Project Configuration
Languages
Manage project languages from the project settings:
Adding Languages:
- Go to Project Settings > Languages
- Click “Add Language”
- Select language from dropdown
- Click “Add”
Removing Languages:
- Click the remove icon (×) next to the language
- Confirm deletion (this will remove all translations for that language)
Removing a language is permanent and will delete all translations for that language. This action cannot be undone.
[IMAGE: project-languages.png - Screenshot of language management interface]
Supported Languages
LangCTL stores languages as ISO 639-1 codes:
["en", "es", "fr", "de", "ja", "zh"]
Common language codes:
en- Englishes- Spanishfr- Frenchde- Germanja- Japanesezh- Chinesept- Portugueseru- Russianar- Arabichi- Hindi
See the complete list of supported languages.
Project Settings
Configure project-level settings:
| Setting | Description |
|---|---|
| Name | Project display name |
| Description | Optional project description |
| Default Language | Source language for translations |
| Languages | List of target languages |
| Access Control | Who can view/edit (organization members) |
[IMAGE: project-settings.png - Screenshot of project settings panel]
Viewing Project Details
Project Dashboard
Each project has its own dashboard showing:
- Translation Progress: Completion percentage per language
- Key Statistics: Total keys, published keys, draft keys
- Recent Activity: Latest changes to this project
- Module List: All modules used in this project
- Contributors: Team members who edited this project
[IMAGE: project-dashboard.png - Screenshot of individual project dashboard]
Translation Progress
Visual progress bars show completion for each language:
English (en) ████████████████████ 100% (250/250 keys)
Spanish (es) ████████████████░░░░ 80% (200/250 keys)
French (fr) ████████████░░░░░░░░ 60% (150/250 keys)
German (de) ████████░░░░░░░░░░░░ 40% (100/250 keys)
Progress is calculated based on non-empty translations. A key with an empty string value is considered incomplete.
Modules in Projects
What Are Modules?
Modules help organize related translation keys within a project:
auth/
├─ login.title
├─ login.subtitle
├─ signup.title
└─ forgot_password.text
dashboard/
├─ welcome.message
├─ stats.title
└─ nav.settings
Module Cache
Projects maintain a modules array cache for quick filtering:
{
"modules": ["auth", "dashboard", "settings", "profile"]
} This list is automatically updated whenever keys are added, modified, or deleted.
Access modules from the project dashboard:
- Click “View Modules” tab
- See list of all modules with key counts
- Click a module to filter translations
[IMAGE: project-modules.png - Screenshot of module list in project view]
On the projects list page, filter by:
- Search: Name or description
- Language: Projects supporting specific languages
- Activity: Recently updated, oldest first
- Progress: Incomplete translations, fully translated
Use the project search bar to find:
- Translation keys by name
- Translations by value
- Keys by module
- Missing translations
- "welcome" -> Find keys containing "welcome"
- "module:auth" -> Find all keys in auth module
- "missing:es" -> Find keys without Spanish translation
- "published:false" -> Find draft keys Project Actions
Export Project
Quick export from project context menu:
- Click context menu (⋮) on project card
- Select “Export”
- Choose language and format
- Download file
Duplicate Project
Create a copy of an existing project:
- Click context menu (⋮)
- Select “Duplicate”
- Enter new project name
- Choose what to copy:
- Translation keys (structure only)
- Translation values
- Module organization
Use duplicate to create staging/production versions or to start a new project with the same structure.
Archive Project
Archive projects you’re not actively working on:
- Archived projects are hidden from the main list
- Translations remain accessible
- Can be unarchived anytime
Archived projects still count toward your plan limits but help keep your workspace organized.
Delete Project
Permanently delete a project:
- Click context menu (⋮)
- Select “Delete”
- Type project name to confirm
- Click “Delete Permanently”
This action is permanent! Deleted projects and all their translations cannot be recovered. Consider archiving instead.
Project Limits by Plan
| Plan | Projects | Keys per Project |
|---|---|---|
| Free | 1 | 500 |
| Pro | Unlimited | 10,000 |
| Team | Unlimited | 50,000 |
| Enterprise | Unlimited | Unlimited |
When you reach your key limit, you’ll need to delete existing keys or upgrade your plan to add more translations.
Best Practices
Organize Projects Logically
Create separate projects for:
- Different applications (Web app, iOS app, Android app)
- Different environments (if they have different translations)
- Different brands or white-label products
Don’t create separate projects for:
- Different languages (use one project with multiple languages)
- Different modules (use module organization within one project)
- Staging vs production (use the publish workflow instead)
Choose the Right Default Language
Select the language your team is most comfortable with as the default:
- Typically English for international projects
- Your local language for regional projects
- The language developers write code comments in
The default language serves as the source for AI translations and should be the most complete and accurate.
Use Descriptive Names
Good project names clearly identify the application:
✅ Good:
- “Acme Mobile App”
- “Marketing Website”
- “Customer Portal”
❌ Bad:
- “Project 1”
- “Test”
- “New Project”
Plan Language Sets
Before adding languages, consider:
- Target markets and user base
- Maintenance capacity (more languages = more work)
- Translation costs and resources
- Start with core languages, add more later
Troubleshooting
Can’t Create New Project
“Project limit reached”:
- You’ve hit your plan’s project limit
- Free plan allows 1 project
- Upgrade to Pro for unlimited projects
“Invalid language code”:
- Use ISO 639-1 codes (e.g., “en”, not “english”)
- Check supported languages
Project Not Appearing
- Check if it’s archived (enable “Show Archived” filter)
- Verify you have permission to view it
- Try refreshing the page
Can’t Delete Project
- Ensure you have Owner or Admin role
- Project may be protected (check settings)
- Contact your organization owner
Next Steps
Now that you understand project management, learn how to work with translations:
- Translation Management - Create and edit translation keys
- AI Translation - Use AI to translate keys
- Export Translations - Generate files for your app
- Module Organization - Organize keys with modules