Xcode .strings files | TFX converting from UTF-8 to UTF-16 LE, breaking github diffs

Hello,

We’ve been unable to view the github diff for our iOS Project’s localization PRs from Transfiex, and upon investigation, I was able to fix this by converting the .strings file to UTF-8 on both the PR and the target branch.

However, it seems transifex is automatically switching the encoding back to UTF-16 LE on any change. Can I change this behavior? Is there a way for me to force encoding to stay as UTF-8?

Hello Dave,

Thank you for reaching out to Transifex. What is happening with your files is because Transifex preserves the encoding used when a resource was originally created. If the resource was created from a UTF-16 file, it will continue exporting files as UTF-16—even if you later replace the source with a UTF-8 file.

To use UTF-8, you’ll need to create new resources using UTF-8-encoded source files from the start.

Let me know if you need anything else,

Thank you for the reply. Are you aware of the github diff limitation I am referring to? The pull-request will not show changes when using the UTF-16 encoding, it shows “Binary file not shown”. Just curious if you’ve heard of this issue before.

If I create a new resource using UTF-8, can I copy all translations over from the previous resource? I want to avoid incurring any further costs.

Hi @Dave_Krawczyk

You can copy the translations between resources using one of the following approaches.

Method 1: TM Fill-up (automatic, no manual work)

If both resources are in the same project or TM group, Translation Memory will auto-fill matching strings.

• Go to your project’s Settings > Workflow

• Enable Translation Memory Fill-up

• Set the match threshold (100% for exact matches, or lower for fuzzy)

• Upload or update the target resource — TM will auto-fill any strings that match the source resource’s translations

Best for: identical or very similar strings across resources in the same project. Setting Up Translation Memory Fill-up

If the resources are in different projects, create a TM Group first under Organization Settings > Translation Memory. Sharing Translation Memory

Method 2: Download and re-upload via UI

• Go to Resources > click the source resource

• Click the target language

• Click Download file to translate — this downloads the translation file

• Go back to Resources > click the destination resource

• Click the same target language

• Click Upload file and upload the file you downloaded

• Repeat for each language

Best for: one-time copy when resources share the same file format and string keys. Uploading Translations

Best regards

Carlos Olvera from Transifex team

1 Like