Headless Drupal for managing multilanguage resources for Web/Android/IOS apps? A company has content in 10 languages and 3 channels (web, ios, android). It creates a lot of overhead related to translation (external translation company has to be managed, translations sent etc.). Currently there's a dedicated tool to manage translation resources (basically a spreadsheet of strings with key name and values in up to 10 translations) and sometimes global variables (eg. user name) interpolated within. Potentially hundreds of them.

I'm considering using Drupal 8 as a single place to manage both rich content (articles) and low level UI strings. Additionally it would exposed a REST API for these clients. I'm not too concerned with the typical articles, but I want to make sure that working with these low level internationalised strings will be convenient in Drupal.

Some specific requirements are listed below:

1) structure strings hierarchically to allow easy identification of relevant app section by translators: 

channel1 (eg ios) 
 |--section 1 (eg. screen or step)
       |---key 1 (eg. en:confirm fr: confirmer de: ... )
       |---key 2

2) allow mass exporting of keys via API within whole section or full channel using single request for performance (in some cases such a bundle would be converted to static resources specific for given platform).
Graphql would be great here, any ideas on how to do it generically with REST API (to be able to fetch data hierarchically, either on leaf nodes or more aggregated on higher nodes).

3) Allow editors to search by key or by value in any language.

4) integrate with translation agencies APIs

5) Allow storing multiple versions / workflow states at the same time (published / new keys just added to specific app and waiting for translation / translation awaiting approval). Ideally tag specific versions to mirror various parallel development branches and allow fetching the individual key/ the whole set via API for specific branch for preview purposes.

6) Efficiently edit multiple keys at once in a single screen grid-like manner, rather than having to click x times to switch from one to another. Switching between language values should be really convenient.

I'd really love to know your opinions around how would you model this kind of content, eg/. each key separate entity? or section = entity and key = field? use taxonomy for categorisation? What if I want to store additional data about section, eg. Screenshot - with taxonomy it wouldn't be versioned. Wouldn't using CMS that stores content items in a tree out of the box make more sense? 

Also it would be fantastic to get some ideas around whether any additional modules would be useful here (I'm thinking about Drupal 8) and what kind of Admin UI would you expose to manage it (built-in? custom?).

Also there's a key question lurking behind - do you think using Drupal for this is a good idea at all?

Thanks for any suggestions!
Use .po files that drupal uses for translations and sets it under sites/default/files/translations.

Build a custom module that manage the .po files status as yo need above and move it to sites/default/files/translations folder if approved, assume you have created another folders to hold not approved files.

Fetching any content from drupal will be automatically translated to the language you set by changing the path prefix for example (/en, /fr, /de if you used that method for detection).

Editing the translation strings in single click yo have to read the file and display it in a form for each record as a text field and rewrite the file after submit.

Hope that helps