Merge Bitwarden projects on Crowdin

First of all, I am not sure if I should put this vhere or raise a GitHub issue.

Feature name

Merge Bitwarden projects on Crowdin

Feature function

Currently, the translators need to go through four lists (projects) of strings, which are mostly the same. £ven in a single project, there are some (many?) duplicate strings. Of course, there are some strings that are not exact duplicates (like in a longer phrase, only a word differs) which could be either merged/united or bo6h kept with different names.

The strings could be divided into multiple JSONs, however IMHO there should be no duplicate string, because duplicates potentially mean that those strings could be translated differently. We shou.d strive for consistency.

You are right there a lot of duplicate strings for Bitwarden on Crowdin. One of the major problems is maintaining consistency of the language across clients. Sometimes I forget what particular word I use for a string. I still am working on improving the consistency across the clients. There are times when I have to go to each client and change the translation for the same string. Localizing Bitwarden would become more easy if the Duplicate tool of Crowdin could be used. @tgreer, any suggestions?
Thanks @tukusejssirs for putting up this request.

1 Like

One of the major problems is maintaining consistency of the language across clients. Sometimes I forget what particular word I use for a string.

IMHO, we should use Glossary more intensively. :wink: Of course, it’s a bit of a burden to fill all those words in there (incl their context), however, I think it is the way to go. :smiley:

Localizing Bitwarden would become more easy if the Duplicate tool of Crowdin could be used.

I vote for using the Duplicate tool! I haven’t even known about it! :smiley:

Thanks for the feedback!

It’s tricky as each string may be ever so slightly different in context. In some languages, it may not alter the translation, but it could in others.

Nice callouts for the duplicate tool and glossary - I’ll keep those in mind and see if there is anything we can make use of.

2 Likes

@tgreer and @vachan, you still haven’t reacted on the initial proposal to merge all BW projects on Crowdin.

It’s not something I can react to at the moment - I will have to engage the engineering folks at some point to clarify if this is possible or not.

2 Likes

This how Strongbox does it. This is not 100% accurate or anything, some observations I made while localizing the project(work in progress). This is just to give an idea on how they do it…
All the files for iOS and macOS are combined into one repo. The strings are seperated and stored in multiple files. Using the translate all button on Crowdin, users can translate all the strings from various files easily without jumping from one file to another.

  1. Strongbox has a separate repository just for the strings.

2. Before a release, a Pull Request is opened by the developer.

3. Whenever a change is made on Crowdin, strings in the repo are change automatically in real time by adding commits. These commits keep on adding and adding until the PR is merged for a new release. Its pretty much a cyclic process.
1 Like

I personally like that approach very much.

  1. All strings in one project.
  2. String are auto-commited into the repo.
  3. Strings are separated by content type:
    • I’d suggest to separate them to a smaller number of files, based on place where the strings are used, for example (this is not an exhaustive list):
      • global for strings used in multiple places/globally;
      • preferences for strings used in the preferences/options;
      • vault for strings used in the vault.

Besides that, I think it would be a nice idea to programmatically check for duplicates. In Bash, I’d do it by grepping all the string names from all the files and running uniq -d. There might be a better way though.

1 Like

Just an example of a duplicate accross the Bitwarden projects on Crowdin: