Before replacing a source
Download the target files you need to retain, record the release or source revision, and identify any active upload automations. For repositories, commit the source change so you can compare or restore it later.Update and inspect
- Upload the revised file to the same project and source path, or use your existing GitHub sync or CLI push mapping.
- Wait for source processing to finish.
- Open the file and confirm the current key list and source wording.
- Check added strings and strings whose meaning changed.
- Start the required translation work, or follow the upload-triggered automation.
- Review and download the result for each target locale.
Edit source text in Hyperlocalise
By default the file is the source of truth: each upload or sync replaces the project’s source text with the file’s, and the API refuses to change the source text of a string that belongs to a file. Strings created through the API outside any file can always be edited there. To keep source text in Hyperlocalise instead, turn on Allow source text editing under Translation & Content Editor behavior in the project settings. Administrators and localization managers can change it. While it’s on:- Administrators, localization managers and developers can edit a string’s source text in the Content Editor, from the Source text section of the side panel, and through the API with
PATCH /v1/projects/{projectId}/strings/{stringId}orPOST /v1/projects/{projectId}/strings/batch. A string locked in any language can’t be changed, nor a hidden string in a file, and the merged-strings view doesn’t offer editing. - Editing covers strings in JSON, JSONC and ARB files, and strings created through the API outside any file. Other formats keep their file as the source of truth: documents such as HTML, Markdown and Office files are split into strings by position, gettext PO files are keyed by the source text itself, and the other key-value formats can’t yet be written back. Files an integration (Braze, HubSpot, Webflow, Sanity and others) brings in are also left to that service, and so is a file last uploaded before Hyperlocalise recorded where uploads came from: upload it again to edit it.
- An upload or sync keeps edits made here. For each string it compares the file’s text, the project’s text and the text it last imported: a change on one side only wins; when both sides changed to different text, the project’s text is kept and the string is a clash. A GitLab sync lists clashes under Recent syncs on every run until one side gives way; other uploads keep the project’s text without listing the clash.
- Translation jobs read the edited text. A string that already has a translation keeps it, so set When source text changes to Needs review if edits should send approved translations back for another look.
- A GitLab sync writes the project’s source text back into the repository’s JSON source files, in the same merge request as the translations. Merging it settles the clashes. GitHub syncs, uploads and the CLI don’t send source text back yet, so their edits stay in Hyperlocalise.
Recheck approved wording
When a string’s source text changes, what happens to its approved translations depends on the project setting When source text changes, under Translation & Content Editor behavior in the project settings. Administrators and localization managers can change it.- Stays approved (the default): approved translations keep their status and their old text. Inspect them yourself whenever the source meaning changes. A successful rerun doesn’t replace approved targets.
- Needs review: approved translations of every changed string move to Needs review. Their text is kept, so a reviewer can update it to the new source and approve it again. Drafts, translations already in review, rejected translations and locked translations aren’t touched, and the translation’s history records the change. A locked translation keeps its old text approved, and unlocking it later doesn’t send it to review, so recheck it yourself. Through the API, a source change to a string locked in any language is refused instead.
checkout.action.
Skip the review for a small fix
A typo or punctuation fix leaves the translations correct. In a project set to Needs review, you can keep approved translations approved for one change:- When uploading on the Files page, tick Keep translations approved before you select Upload.
- When editing source text in the Content Editor, tick Keep translations approved before you select Save source text.
- When uploading through the API (
POST /v1/files), send the form fieldkeepApproved=true. - When editing strings through the public API, send
"keepApproved": truewithPATCH /v1/projects/{projectId}/strings/{stringId}orPOST /v1/projects/{projectId}/strings/batch.

