Skip to content

XCStrings export missing state field in generated .xcstrings files #203

@r-comeau

Description

@r-comeau

Summary

When exporting Apple String Catalogs (.xcstrings) through the Lokalise web interface, the resulting file omits the state field inside each localization entry. According to Apple’s XCStrings format and Lokalise documentation, each stringUnit should include a state (e.g. "translated", "needs_review", etc.).

This omission causes problems when integrating the exported catalog into Xcode, which expects this metadata.

Steps to reproduce

1 - Create a new project with at least one key (example greeting)
2 - Provide translations for your key
3 - Export the project from the web interface using download -> format: Apple XCStrings
4 - Inspect the generated .xcstrings file.

Ouput:

{
  "version": "1.0",
  "sourceLanguage": "en",
  "strings": {
    "greeting": {
      "localizations": {
        "en": {
          "stringUnit": {
            "value": "Hello, world!"
          }
        },
        "fr": {
          "stringUnit": {
            "value": "Bonjour"
          }
        }
      }
    }
  }
}

There is no state field

Expected output:

{
  "version": "1.0",
  "sourceLanguage": "en",
  "strings": {
    "greeting": {
      "localizations": {
        "en": {
          "stringUnit": {
            "state": "translated",
            "value": "Hello, world!"
          }
        },
        "fr": {
          "stringUnit": {
            "state": "translated",
            "value": "Bonjour"
          }
        }
      }
    }
  }
}

Environment

  • Lokalise web interface
  • No CLI

Request

Please confirm whether this is an intended limitation or a bug in the XCStrings export process. If it is a bug, adding the missing state field would enable correct integration with Xcode and downstream tooling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions