Xcode 15 beta strings catalog

Hey,

I'm trying the new strings catalog, and I have a script that I would like to run on the xcstrings json.

My question is there some documentation on the json format (what keys can it have, and values)?

Also, I didn't try it yet, but what if I set for example 50 languages and 1000 localization keys, is that json really scalable? It could grow quite large, would xcode still keep it as one big file, or it would somehow split it into chunks?

Would be happy for any info from the dev teams, thanks!

Accepted Reply

String Catalogs store an entire string table in a single JSON file, even if there are a large number of keys and languages. If this ends up presenting a problem (with Xcode's performance, for example), please send some feedback our way.

As for the specifics of the JSON format itself, we have not published documentation because it is primarily intended to be read/written by Xcode. If you do end up writing your own parser for this format, please be aware that Xcode reserves the right to change it.

  • @Developer Tools Engineer I migrated my Strings to the string catalog and the initial load time (every time i click on the catalog file) is atleast 6 seconds. So it feels like Xcode is not responding.

  • I forgot to mention I have 1081 strings in 25 languages.

  • @Developer Tools Engineer Moved us to xcstrings catalog today. I don't think this is long-term scalable.

    In my case, just the migration PR had:

    Additions: 427 000 linesDeletions: 155 000 lines

    Each file had ~4 800 lines So from 4 800 lines per language (about 20) we now have one single file with 425 000 thousand of lines - and yet, it lags when you are opening it. :)

Replies

String Catalogs store an entire string table in a single JSON file, even if there are a large number of keys and languages. If this ends up presenting a problem (with Xcode's performance, for example), please send some feedback our way.

As for the specifics of the JSON format itself, we have not published documentation because it is primarily intended to be read/written by Xcode. If you do end up writing your own parser for this format, please be aware that Xcode reserves the right to change it.

  • @Developer Tools Engineer I migrated my Strings to the string catalog and the initial load time (every time i click on the catalog file) is atleast 6 seconds. So it feels like Xcode is not responding.

  • I forgot to mention I have 1081 strings in 25 languages.

  • @Developer Tools Engineer Moved us to xcstrings catalog today. I don't think this is long-term scalable.

    In my case, just the migration PR had:

    Additions: 427 000 linesDeletions: 155 000 lines

    Each file had ~4 800 lines So from 4 800 lines per language (about 20) we now have one single file with 425 000 thousand of lines - and yet, it lags when you are opening it. :)