Skip to main content
The gleef push command uploads your local translation changes (new keys and edits) to Gleef. It is the standard command for syncing your local files to Gleef.
If you want Gleef to generate AI translations and merge them back into your local files in one step, use gleef translate instead.

Usage

Options

What it does

The push command:
  1. Analyzes local files - Compares your local translations with remote state
  2. Detects changes - Identifies new keys and modified translations
  3. Handles conflicts - Checks for conflicts with remote edits
  4. Uploads changes - Pushes your translations to Gleef
  5. Creates drafts - Sets up translations for team review (unless --skip-review is used)
gleef push uploads what you have locally. Translations for missing locales are produced by Gleef after the push and become available via gleef pull. To generate AI translations and immediately write them back to your local files in one step, use gleef translate.

Basic Usage

Push All Changes

This will upload all new and modified translation keys in your project.

Filter by Key Pattern

Only pushes keys matching the pattern. The pattern is a JavaScript regex (see Pattern Matching below).

Filter by Namespace

Only pushes translations from files matching the namespace pattern. Useful for projects with multiple namespace/feature files.

Skip Review Process

Publishes translations immediately without creating drafts for review.

Example Output

Pushing Changes

No Changes to Push

Pattern Matching

The --match flag accepts a JavaScript regular expression that is tested against each translation key. It is unanchored, so a pattern matches if it appears anywhere in the key. If the pattern isn’t valid regex, it falls back to a plain substring check.
This is regex, not a glob. . matches any character and * means “zero or more of the previous character”, so a pattern like *.title is invalid regex and won’t behave like a glob.

Common Patterns

Complex Patterns

Conflict Resolution

If there are conflicts with remotely edited translations, the command will stop and show details:

Resolving Conflicts

  1. Update locally - Change your local value to match the remote
  2. Update remotely - Change the value in Gleef Studio
  3. Pull first - Run gleef pull to get latest changes, then push

When to Use Push vs Translate

Review Workflow

Default Behavior (Draft Mode)

By default, changes are pushed as drafts for team review:
  1. Changes uploaded - Your edits are pushed to Gleef
  2. Drafts created - Changes are marked as drafts in Gleef Studio
  3. Team reviews - Your team can review and approve in Gleef Studio
  4. Pull approved - Use gleef pull to sync approved translations

Skip Review Mode

With --skip-review, changes are published immediately:
This is useful for:
  • Automated workflows
  • Non-critical updates
  • When you don’t need team review

Examples

Development Workflow

Feature Development

Namespace-Specific Push

Example Use Case: If your project structure is:
You can push changes for just the auth namespace:

Error Handling

Common Errors

Authentication Error:
Solution: Run gleef login to re-authenticate Configuration Error:
Solution: Run gleef init or check your .gleef/config.json Network Error:
Solution: Check internet connection and try again File Format Error:
Solution: Fix JSON syntax errors in your locale files

Best Practices

Always pull latest changes before pushing to avoid conflicts.
  1. Pull latest changes - gleef pull to get recent updates
  2. Use patterns for targeted updates - Filter with --match for focused pushes
  3. Review in Gleef Studio - Check translations quality and ask for review
  4. Coordinate with team - Ensure reviewers know about pending changes

Integration Examples

NPM Scripts

GitHub Actions

Next Steps

After pushing changes:

Review in Studio

Review and approve translations in Gleef Studio

Pull Updates

Sync approved translations back to your project