|
Highlighted Articles
News
Installing Tunnelblick
Uninstalling Tunnelblick
Setting up Configurations
Using Tunnelblick
Getting VPN Service
Common Problems
Configuring OpenVPN
Release Notes
Thanks
FAQ
Discussion Group
Read Before You Post
|
Using Crowdin for Tunnelblick Translations
On This Page
Signing Up to Translate for Tunnelblick
Working with Crowdin
Questions or Comments
Odd Characters in Strings
Voting on Suggestions
Finding Recent Translations
Signing Up to Translate for Tunnelblick
Note: Tunnelblick translation is a "private"* project on Crowdin, which means you need permission to join the project as a translator.*
To use Crowdin to help translate Tunnelblick, you need:
- A Crowdin account; and
- Permission to translate one or more languages for Tunnelblick.
If you don't have a Crowdin account, please register at Crowdin.com. Registration is fast and free. (Do not register for a "plan" -- being a translator is free. The "plans" are for organizations like Tunnelblick that need translation work done. Because Tunnelblick is "free and open source" software, we get to use Crowdin at no cost.)
Once you have a Crowdin account, please contact the developers. Please include:
- The language you would like to help translate and any special qualifications you have (native speaker, lived there for four years, etc.);
- Your Crowdin userid;
- Your preferred email address (for our records only – it will not be made public);
- The name you would like shown on Tunnelblick's Thanks page and in the credits on Tunnelblick's "Info" panel; and
- (Optional): Your real name.
Your email will be replied to with an invitation to help translate Tunnelblick. Click on the link in the reply and you will be authorized to translate.
Working with Crowdin
Working with Crowdin is self-explanatory for the most part. Here a a few things to keep in mind about the way Tunnelblick is using Crowdin:
-
When working on Crowdin, it is tempting to click the copy source button, translate the string, and then click the double arrow button next to it to move to the next one. However, clicking the double arrow button loses your translation when it moves you to the next string to translate. Instead, click the commit button when you want to save your translation. That will also move you to the next string to translate. (Thanks to Jarmo Isotalo for this tip!)
-
If you have a better translation for a string that has an "approved" translation (a translation with a green check mark — most strings have them), please create a Crowdin "Comment" and make the comment a Crowdin "Issue". Otherwise your translation will be ignored.
-
When you write or reply to a Crowdin "comment" or "issue", if you include @name (where "name" is someone's Crowdin name) somewhere in your text, that person will get an email notifying them of the comment/issue.
-
For each string, the "approved" translation will be used. If there is no "approved" translation, the translation with the most votes will be used.
-
Please notify an administrator by creating a comment that is an "Issue" if you propose a new translation for a string that already has an "approved" translation (indicated by a green check mark).
-
Crowdin can be set up to require that a "proofreader" approve all new translations, to ensure that translations are appropriate, but that means a lot more work for translators or proofreaders, so currently that feature is disabled. That may be changed in the future.
If you have a question or comment that is not about a particular string, please contact the developers.
If you have a question or comment about a particular string:
Developers would like to be notified about questions or comments, so they can add "Context" or screenshots.
- Click "Request context" just below the English version of the string at the top of the middle column of the editing window;
- Type in a short note in English describing the problem or question; and
- Click "Submit". The "short note" could be something like "What does the %@ refer to?" or "The English version of the string could be improved by...".
That will
- Create a Crowdin "Comment" for the string, which will be shown to all translators for all languages, and
- Make the comment an "Unresolved issue". Doing it this way is important, because making the comment a Crowdin "Unresolved Issue" will cause developers to be notified about it by email. Developers are not notified about "Comments" that are not "Issues", so such comments may never be responded to.
A developer should respond by answering your question or comment. When doing that, the developer may add a screenshot or add "Context", perhaps from other translator's comments. Then:
- If the developer thinks your question or comment has been fully responded to, the developer will mark the "Issue" as "Resolved".
- If there is something that needs to be done, it will be left as an "Unresolved Issue". Or maybe other translators (for any language) will respond; you or any translator may mark it as "Resolved".
When anyone marks the "Issue" as "Resolved", you will be notified by email, so you can check that your question or comment was dealt with to your satisfaction. If it wasn't, create a new "Issue" by clicking on "Request context" again. (An issue marked "Resolved" cannot be changed back to "Unresolved.)
Developers will occasionally look through all the "Comments", whether or not they are "Issues", and whether or not the "Issues" are resolved:
- Useful comments may be copied (perhaps after editing) into the "Context";
- Comments may be deleted (to reduce clutter); and
- An "Unresolved Issue" may be marked "Resolved".
Odd Characters in Strings
-
Some of the strings have character sequences of "\n". This causes a line break when the text is displayed. A sequence of "\n\n" would cause a line break followed by an empty line.
-
Some of the strings have %@, %d, or other special sequences of characters. They indicate a place where some other item (a filename, a number, etc.) will be inserted into the string:
-
%d, %u, %ld, %lu will all be replaced by a number.
-
%@ will usually be replaced by text such as the name of a configuration.
-
When there are two or more such items in one string, the target language may need to use them in a different order than English uses.
Here's an example: for English speakers, one of the distinctive features of the character Yoda in Star Wars was the way he spoke — he spoke "backwards". For example, he would say "Hot the food is", when the usual way to express that in English is "The food is hot". If the string is
"Sometimes, the %1$@ is %2$@.";
we would translate that into Yoda's English by changing it to
"Sometimes, %2$@ the %1$@ is."
or possibly
"%2$@ the %1$@ is, sometimes."
Voting on Suggestions
Voting on suggestions is how Crowdin helps produce high-quality translations. Each string can have many suggested translations. To help decide which suggestion is the best, can translators vote on each other's suggested translations.
For each string, Tunnelblick uses the most-recent suggestion of all the suggestions with the highest number of votes. This can help make sure that a "worse" translation doesn't replace a "better" translation – but only if translators have voted for (or against) the translations. That's why your votes on translations are important.
Finding Recent Translations
Crowdin usually shows strings that are not yet translated first, so it is easy to see what strings need translation. That helps our most urgent need – to get strings translated.
But we also want to have good translations. To help with that, we use voting on suggestions (see above). Seeing a list of recently-made suggestions would be the best way to help you do that. Although Crowdin can't do that, it can list the most recent suggestions that will be used, which is the next-best thing. To do that, you can use Crowdin's "AI/CroQL" filter.
While viewing the strings:
- Click the "Filter" icon above the list of strings on the left side of the editing window. (As you hold your pointer over an icon, its name will be displayed; you're looking for an icon named "Filter".)
- Click on "AI/CroQL Filter…". An "AI/CroQL Filter" box will appear in the editing window.
- In the window, copy/paste the following into the "CroQL expression" box (the lower box):
count of translations = 0 or count of translations where (updated >= 'now - 100 days') > 0
which will show strings with no translations, and strings whose translations were updated within the last 100 days. (Due to a Crowdin limitation, the list is not in any particular order, but strings with no translations will be shown in red.)
Then:
- Click the "Filter" button. The list of strings in the left side of the window will reflect the filter.
- If you wish, modify the "100" in the box to see more or fewer strings. (Remember that the list is not sorted, so the order of the strings is arbitrary.) Then click the "Filter" button again to refresh the list.
- When you are happy with the list of strings, click "Close" and the filter box.
|