This topic is a matter of preference, but we suggest keeping the following in mind:
Most software products are distributed incrementally in releases, with release dates and upcoming features announced in advance. Before the release, developers ensure the product is bug-free and well-documented. If the product is to be offered in other languages, teams will announce a ‘string freeze'.
For developers, this means they can no longer change the code in a way that affects the source strings (bug fixes and improvements, however, are acceptable). For translators, the string freeze provides them with adequate time to work.
When the release day arrives, developers get the translations for their target languages, compile them into the product, and release them.
Effectively using branches
Let's say you have a new feature under development in a separate branch. When it's ready, it is merged with the main branch and deployed. After the launch, you can push your resources to Transifex, and when the translations are completed, pull them and deploy them. That way, you'll only need to use a single resource for that feature in Transifex.
If you want to deploy a new feature with completed translations, you should push all resources to Transifex. When the development is done and the translations are 100% completed, you can pull them from Transifex, merge both the code and translations into your main branch, and go live!
Looking for more help? Get support from our Transifex Community Forum!
Find answers or post to get help from Transifex Support and our Community.