Translations

The Translations step shows you the status of all of your app’s localizable strings. By comparing the localizable strings that are present in your code with what’s been uploaded and translated in your translations provider, Runway can intelligently compute and surface the status of each string and its associated translations, showing you at a glance whether your code’s translations are in sync with your provider, or whether they need to be updated (either on the provider or in the code). Keeping your localizable strings synced and ensuring all necessary translations have been merged into the release branch can help avoid issues involving missing translations in your release.

Localizable string items

In the Translations step view, Runway pulls together your app’s localizable strings by merging together localizable string keys found in your translations provider with those found in your codebase on the selected branch. Each localizable string row shows:

  • The source key’s value

  • The file the source key is in

  • The source key’s associated localized strings for each supported locale

  • The computed status of the source key

  • Source keys that are new or have been updated since the last release (highlighted with a star icon)

Localizable string statuses

Each localizable string will have a status that reflects the state of the string relative to the code on the target branch and the string on the translations provider. There are a few states that a localizable string can be in:

  • Synced — The source key’s value matches the value in the translations provider, and the translations in all languages match what’s found in the code on the target branch

  • Upload needed — The source key’s value in the code has diverged from the source key’s value in the translations provider. This indicates that a change has been made in the code that requires the updated localizable string file to be uploaded for translation.

  • Translations pending — The source key’s value in the code matches the value in the translations provider, but one or more languages have not been translated.

  • Export needed — The source key’s value in the code matches the value in the translations provider, and the key has been translated to all languages. The key and its translations are ready to be exported back into the codebase.

  • Branch update needed — The source key’s value in the code matches the value in the provider, and the key has been translated to all languages and exported to the working branch, but the updated translations have not been pulled into the release branch.

Enable the Update translations on the release branch from the working branch automation to let Runway automatically pull over up-to-date translations from the working branch to the release branch as needed.

Runway supports source key and value parsing for a handful of common file types for each platform. The source values for any localizable string keys found outside of these supported file types will not be parsed.

iOS:

  • .strings

  • .stringsdict

  • .xcstrings

  • .xliff

Android:

  • .xml

  • .xliff

Pending / Done sections

Localizable string items are divided into two tables:

  • Pending — Localizable string items are considered Pending if the source key’s value in the selected branch’s code does not match the value in your app’s translations provider, or if any of the source key’s translations in the selected branch’s code do not match the translations in the translations provider. This indicates that either an upload to the provider for translation, or an export from the provider to the code is needed to get the key in sync.

  • Done — Localizable string items are considered Done when the source key’s value and all its translations match between the selected branch’s code and the app’s translations provider. This indicates that the localizable string is fully synced.

Use the Show new and updated only filter button to only see localizable strings that were newly added or updated in the current release.

Syncing localizable strings

When one or more of your localizable strings are out of sync with your translations provider, actions to resolve the state of your localizable strings are available right from the Translations step:

  • “Upload localizable strings for translation” — Any localization files that have at least one localizable string with an Upload needed status will be uploaded to your translations provider for re-translation.

  • “Export strings to release branch” — Runway will open a PR against your target branch containing updated localizable string files for any locales containing strings that have been updated in the translations provider.

When performing a translations export, your team may choose to export to the working branch before pulling over updated strings to the release branch. If you have the Update translations on the release branch from the working branch automation enabled, Runway can automatically do this for you by pulling over exported translations from the working branch to the release branch as needed.

  • “Sync” — Use this action to let Runway intelligently perform any necessary upload or export (or both) as needed, based on the current state of your localizable strings.

If you have the Sync localizable string translations automation enabled, Runway will automatically keep your translations synced on the release branch by uploading and exporting as needed.

Approving the Translations step

Your team may choose to go ahead with the release even though not all localizable strings are fully translated and synced. Users with the correct permissions can use the “Approve translations” button to approve the Translations step, regardless of the sync status of localizable strings.

Last updated