Skip to content

Crowdin fills mullvad-browser.ftl files with en-US strings

As mentioned in tpo/translation!139 (comment 3161549) crowdin allows you to either skip untranslated strings or insert placeholder en-US strings in the files.

As far as I know, for brand.properties each locale needs some entry, so the placeholder en-US strings makes sense.

For brand.ftl and mullvad-browser.ftl untranslated strings should be left out of the locale's .ftl file so that the mozilla logic can cycle through the user's language preferences and find the best match. E.g. if a user's preference is nl, de then if nl is missing the string it can be fetched from the de file instead, and then fall back to en-US if that is missing. This is very useful for Firefox and Tor Browser because our translations are volunteer based, so some locales have much better coverage than others.

For the .ini files that the mullvad build uses, we use the en-US strings as a fallback regardless, so the crowdin setting should make no difference to the final build.

The problem is that the crowdin setting for skipping untranslated strings applies to all the files. So brand.properties, brand.ftl and mullvad-browser.ftl need to share the same setting.

Some possible options:

  1. We accept the current situation and allow crowdin to write the en-US placeholders for the .ftl files. This could work if crowdin guarantees equal and full translation coverage across all locales before the strings are used in the stable release. I.e. if we do not have to worry about patchy translation of the mullvad strings then the Fluent fallback locales won't ever be needed for them.
  2. We get crowdin to write the en-US placeholders until brand.properties is fully translated. Then we switch off this option. brand.properties is unlikely to be updated again, so should remain fully translated for these locales. The main problem with this is that any time we want to add a new locale we would need to make sure that brand.properties for the new locale is already fully translated.
  3. We do something outside of crowdin to fill in the en-US placeholders for brand.properties, with some kind of build script.
  4. We split the .ftl files into a separate crowdin account, so that we can apply different settings to them.

/cc @ruihildt @emmapeel

Edited by henry
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information