A version-controlled storage location for a software project’s files, and where translation files live alongside source code in modern localization workflows.
In software development, a repository (or repo) is where a project lives. It stores source code, configuration files, assets, and, in internationalized projects, translation files. Every change made to any of these files is tracked, timestamped, and reversible. Developers use repositories through version control systems like Git, with platforms like GitHub, GitLab, and Bitbucket serving as remote hosting environments for team collaboration.
For localization, the repository is the starting point of the entire workflow. Translation files such as .json, .po, .yaml, or .strings sit inside the repo alongside the code they support. When a developer adds a new string, it lands in the repo first. When a translator completes a translation, it returns to the repo through a pull request or an automated sync. The repository is where source and translation stay in sync, or fall out of it.
Keeping translation files in the same repository as the source code has a significant practical advantage: localization becomes part of the development cycle rather than a separate process running alongside it. When a new feature ships with new strings, those strings are visible in the repo immediately. Localization tools that connect directly to the repository can detect the change automatically and trigger translation workflows without any manual file handling.
This is the foundation of continuous localization. Rather than exporting files, emailing them to a translation team, and reimporting the results, teams connect their TMS directly to the repository. Source files push to the platform when code is committed. Completed translations return as pull requests. The whole exchange is tracked in version control, meaning every change is auditable and reversible.
en_US.json and english.json across directories, creates errors when TMS tools try to detect and parse locale files automatically.A common pattern in software projects is a locales/ or i18n/ directory at the root of the repository, containing one file per language. For example:
/locales
en.json
de.json
fr.json
es.jsonEach file maps translation keys to their localized strings. When a new language is added, a new file is created. When an existing string changes, only the affected files need updating. This structure is what TMS platforms and CLI tools expect when syncing with a repository.
Localazy integrates with GitHub, GitLab, and Bitbucket, allowing teams to automate the full localization loop from code commit to translated file delivery. The Localazy CLI can be added to CI/CD pipelines to push new source strings and pull completed translations automatically on every build.
See how to connect your repository in the Localazy CLI documentation.