Content Sync is able to push and pull your content with all translations if you are using Drupal's localization system. You can restrict what languages can be pushed and pulled per site in the Advanced settings of Flows. Editors can publish translations independently and easily identify what translations have changed and should be pushed again:

Due to technical limitations within Drupal, all sites are required to use the same languages for Content Sync to work properly. Content Sync may not work for sharing content with sites that use different languages than the source site.
If you connect sites that should offer different languages to users we recommend that you still have all the languages configured on every site but that you simply don't expose them all to the user.

 Using the same languages across all sites avoids two issues:

  1. Drupal's fixed default language per entity. The default language of entities can't be changed in Drupal and as fields etc. depend on that, we have to always import content in it's root language, regardless of the translations for that content. But this means that if a content's root language is missing on a site, this entity can't be pulled at all even if the language of one of it's translations exists locally. This is a technical limitation of Drupal that we can't circumvent unfortunately. The root language will not always be the same for all entities either as you will create new entities for translations (e.g. paragraphs, media, bricks or files) which will then use that translation's language as their default language.
  2. Sites pushing updates with fewer translations. If you pull content from another site, make changes to it and then push it again, this can lead to translations being deleted unintentionally. E.g. Site A pushes a content item with 3 translations, but Site B only pulls 1 of them. Then if Site B pushes an update of that content item, two of the three translations would be missing in the update and therefore deleted on Site A.