Get Started

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

  1. Click “New Project” button on the home page or projects list

  2. 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
  3. Click “Create Project”

[IMAGE: create-project-form.png - Screenshot of the create project form with all fields filled]

💡
Naming Convention

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:

  1. Go to Project Settings > Languages
  2. Click “Add Language”
  3. Select language from dropdown
  4. Click “Add”

Removing Languages:

  • Click the remove icon (×) next to the language
  • Confirm deletion (this will remove all translations for that language)
⚠️
Warning

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 - English
  • es - Spanish
  • fr - French
  • de - German
  • ja - Japanese
  • zh - Chinese
  • pt - Portuguese
  • ru - Russian
  • ar - Arabic
  • hi - Hindi

See the complete list of supported languages.

Project Settings

Configure project-level settings:

SettingDescription
NameProject display name
DescriptionOptional project description
Default LanguageSource language for translations
LanguagesList of target languages
Access ControlWho 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)
ℹ️
Note

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:

Project Modules Cache
{
"modules": ["auth", "dashboard", "settings", "profile"]
}

This list is automatically updated whenever keys are added, modified, or deleted.

Access modules from the project dashboard:

  1. Click “View Modules” tab
  2. See list of all modules with key counts
  3. 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:

  1. Click context menu (⋮) on project card
  2. Select “Export”
  3. Choose language and format
  4. Download file

Learn more about exporting ->

Duplicate Project

Create a copy of an existing project:

  1. Click context menu (⋮)
  2. Select “Duplicate”
  3. Enter new project name
  4. Choose what to copy:
    • Translation keys (structure only)
    • Translation values
    • Module organization
💡
Tip

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
ℹ️
Note

Archived projects still count toward your plan limits but help keep your workspace organized.

Delete Project

Permanently delete a project:

  1. Click context menu (⋮)
  2. Select “Delete”
  3. Type project name to confirm
  4. Click “Delete Permanently”
🚨
Important

This action is permanent! Deleted projects and all their translations cannot be recovered. Consider archiving instead.

Project Limits by Plan

PlanProjectsKeys per Project
Free1500
ProUnlimited10,000
TeamUnlimited50,000
EnterpriseUnlimitedUnlimited
⚠️
Warning

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
💡
Tip

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”:

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: