Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Translation update notifications #201

Closed
kyodev opened this issue Mar 21, 2017 · 28 comments
Closed

Translation update notifications #201

kyodev opened this issue Mar 21, 2017 · 28 comments
Labels
i18n/l10n internationalisation/localisation

Comments

@kyodev
Copy link
Contributor

kyodev commented Mar 21, 2017

I suggest using this issue to help prevent translators when you change language files. At each change, you post a comment here. All subscribers will know that a job is to be done.

@rugk
Copy link
Member

rugk commented Mar 22, 2017

Good idea, so, translators (@Ahuahuachi for ES; @kyodev, @Draky50110, @Hexalyse for FR; @stefanomarty; @idarlund for NO; @Quent-in for OC; @marsjaninzmarsa, @AreYouLoco for PL; @r4sas for RU; <unknown> for SL - committed by @elrido; @imtms, @4679 for ZH; and all other potential new translators/contributors), please subscribe to this issue to get notified of translation file updates requiring retranslation.

The last translation change was cerca 10 days ago, because of JS refactoring. Some strings were added and some were changed.

So have a look if something needs to be done and please create a PR if so.

@rugk rugk changed the title Translation to be completed Translation update notifications Mar 22, 2017
@rugk rugk added the UI/UX label Mar 22, 2017
@kyodev
Copy link
Contributor Author

kyodev commented Mar 22, 2017

ok, then fr.json is uptadated with my last commit.

@r4sas
Copy link
Member

r4sas commented Mar 23, 2017

@rugk is it correct, that we must translate strings, which used in I18n._() and I18n::_() function?
I now cant find some strings, like Could not create paste: %s - so remove them?

@idarlund
Copy link
Contributor

which branch do you want us to use?

@rugk
Copy link
Member

rugk commented Mar 23, 2017

Use the master branch.

As for the strings you're right. If they are not used, you can remove them. However this should usually already been done in the de translation at least.

@r4sas
Copy link
Member

r4sas commented Mar 23, 2017

By the way, translators, don't forget update %s requires php 5.3.0 or above to work. Sorry. string minimal php version from 5.3.0 to 5.4.0

@elrido
Copy link
Contributor

elrido commented Mar 24, 2017

Hi guys,

Thanks a lot for your initiative! Was out with the flu last week and still recuperating.

@kyodev Don't remove these, please, the refactored JS now concatenates some of these strings.

@r4sas Let's change that message from "%s requires php 5.3.0 or above to work. Sorry." to "%s requires php %s or above to work. Sorry." and inject the minimal version number from a constant of the PrivateBin class.

@imtms
Copy link
Contributor

imtms commented Mar 24, 2017

ok, zh.json for chinese translation is updated with my last commit.I just create a PR for this. #204

@Quent-in
Copy link
Contributor

I'm sorry but what was changed?
I don't see anything but "..." changed to "…"
https://github.com/PrivateBin/PrivateBin/commits/master/i18n/oc.json
What strings were added?
Many thanks.

@stefanomarty
Copy link
Contributor

That's the change, the three dots "..." (3 chars) are substituted by precomposed ellipsis "…" (1 char).

https://en.wikipedia.org/wiki/Ellipsis

@elrido
Copy link
Contributor

elrido commented Mar 25, 2017

You would need to compare oc.json vs de.json to find the changed message IDs. Ideally as a policy any changed message ID should be updated by who ever is changing it in all translation files, allowing translators to spot them. I now realize that in @rugk's JS refactoring that wasn't done for all translations as some were added in parallel.

Here is the list of differences I found for oc:

  • "Anonymous avatar (Vizhash of the IP address)" changed to "Avatar generated from IP address"
  • "Sending paste (Please move your mouse for more entropy)..." changed to "Please move your mouse for more entropy…"
  • "Cloned file attached." changed to "Cloned: '%s'"
  • "The cloned file '%s' was attached to this paste." added
  • "Decrypting paste…" added
  • "Preparing new paste…" added
  • "+++ no paste text +++" added

Sorry for the inconvenience this caused, I should have considered that when I merged that branch. :-(

elrido added a commit that referenced this issue Mar 25, 2017
@elrido
Copy link
Contributor

elrido commented Mar 25, 2017

I added a unit test that fails if any message ID in any translation file isn't found in all of the other translation. Found a couple missing translations this way (plus some obsolete ones) and updated the translation files accordingly.

idarlund added a commit to idarlund/PrivateBin that referenced this issue Mar 28, 2017
updated based on PrivateBin#201
@idarlund
Copy link
Contributor

i have now updated no.json with the changes @elrido found and some more improvements on the norwegian language.
PR: #212
did i get it all, or is there more that needs translation?

@Ahuahuachi
Copy link
Contributor

Sorry for being late to the discussion. I just updated es.json
PR: #248
Let me know if I missed any translation string.

@rugk rugk removed the UI/UX label May 31, 2018
@Peneheals
Copy link
Contributor

Since I managed to translate PrivateBin to Hungarian (on the 31st of May, 2018), I see some modifications and new strings. Is it okay for you @rugk if I just write those translated strings in this thread? Or shall I open a new issue and a merge request with the new and corrected translations?

I also see some ellipsis' weren't translated correctly by me (or I missed them, dunno). I mean for example in the"Loading…": "Folyamatban...", there is an ellipsis after "Loading" and there are three separate dots after the Hungarian translation.

I see the below strings are new and missing at the moment so every translator should take care of them!

    "Could not get paste data: %s":
        "Could not get paste data: %s",
    "QR code": "QR code",
    "I love you too, bot…": "I love you too, bot…",
    "This website is using an insecure HTTP connection! Please use it only for testing.":
        "This website is using an insecure HTTP connection! Please use it only for testing.",
    "For more information <a href=\"%s\">see this FAQ entry</a>.":
        "For more information <a href=\"%s\">see this FAQ entry</a>.",
    "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.":
        "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>."

@r4sas
Copy link
Member

r4sas commented Sep 4, 2019

Is it okay for you @rugk if I just write those translated strings in this thread? Or shall I open a new issue and a merge request with the new and corrected translations?

Better just create PR with changes ;)

there is an ellipsis after "Loading" and there are three separate dots after the Hungarian translation.

Yeah, replace dots with one unicode symbol from original string.

@rugk rugk added the i18n/l10n internationalisation/localisation label Nov 9, 2019
@elrido
Copy link
Contributor

elrido commented Jan 20, 2020

We did forget to add the new messages regarding the send-to-email feature that got introduced last year. Luckily a French translator spotted these and helped us out. German also got taken care. These messages are new:

PrivateBin/i18n/bg.json

Lines 172 to 187 in 1d8b0d6

"Notice:":
"Notice:",
"This link will expire after %s.":
"This link will expire after %s.",
"This link can only be accessed once, do not use back or refresh button in your browser.":
"This link can only be accessed once, do not use back or refresh button in your browser.",
"Link:":
"Link:",
"Recipient may become aware of your timezone, convert time to UTC?":
"Recipient may become aware of your timezone, convert time to UTC?",
"Use Current Timezone":
"Use Current Timezone",
"Convert To UTC":
"Convert To UTC",
"Close":
"Close"

For context on how these are getting displayed, you can try creating or opening a paste on the demo site (or any site that is on 1.3.1 or 1.3.2) and then click the new "Email" button to get the dialog. The final messages are generated into a email draft in your installed email application.

@elrido
Copy link
Contributor

elrido commented Oct 4, 2020

FYI: We now have a web application integrated for translations. One of it's features is that it can notify you about new strings. It's over on https://crowdin.com/project/privatebin if you'd like to give it a try.

@idarlund
Copy link
Contributor

idarlund commented Oct 4, 2020

Where's the "%d seconds (2nd plural)" used on https://privatebin.net/ ? Need context to translate it

@rugk
Copy link
Member

rugk commented Oct 5, 2020

Without having re-checked it in detail again: It's for translating the time remaining e.g. until the paste expires. Just like all the other time units (minutes, hours etc.) listed there.

BTW: FYI you can also ask for information on Crowdin now.

@idarlund
Copy link
Contributor

idarlund commented Oct 5, 2020

Yeah, the seconds/minutes part is not hard. It's the plural part that I need context for to translate.

EDIT: Maybe someone has a screen-shot of a site that this (or similar) sentence is visible?

@idarlund
Copy link
Contributor

idarlund commented Oct 5, 2020

When looking at the english one: https://github.com/PrivateBin/PrivateBin/blob/master/i18n/en.json#L31
I see that there's several "purals"; "1st plural", "2nd plural", and so on.. When doing a test post on https://privatebin.net/ I'm getting ie. the text "This document will expire in 4 seconds." There's no mention about what's in the parentheses; "(1st plural)". Is the "(1st plural)" part actually showed to the the users at any point, or is it just an informative text within the translation file? If the later; In Norwegian we only have one plural for all of these; seconds = sekunder, minutes = minutter, etc. There's not an other word for 2nd and 3rd plural.

@elrido
Copy link
Contributor

elrido commented Oct 5, 2020

The way crowdin works, I had to add a "source" file with all the possible list elements. Slovenian already uses 3 plural cases, so I had to add that many. We may have to add even more if newly added languages need it.

Most languages don't need more then one plural case. In those you can just leave anything beyond the first plural untranslated or empty. These additional strings will now be present in the translation files, but ignored in our software, as per the formula in:

PrivateBin/js/privatebin.js

Lines 767 to 796 in f0fa288

/**
* per language functions to use to determine the plural form
*
* @see {@link http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html}
* @name I18n.getPluralForm
* @function
* @param {int} n
* @return {int} array key
*/
me.getPluralForm = function(n) {
switch (language)
{
case 'cs':
return n === 1 ? 0 : (n >= 2 && n <=4 ? 1 : 2);
case 'fr':
case 'oc':
case 'zh':
return n > 1 ? 1 : 0;
case 'pl':
return n === 1 ? 0 : (n % 10 >= 2 && n %10 <=4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
case 'ru':
case 'uk':
return n % 10 === 1 && n % 100 !== 11 ? 0 : (n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
case 'sl':
return n % 100 === 1 ? 1 : (n % 100 === 2 ? 2 : (n % 100 === 3 || n % 100 === 4 ? 3 : 0));
// bg, de, en, es, hu, it, nl, no, pt
default:
return n !== 1 ? 1 : 0;
}
};

So for Norwegian, please ignore anything beyond the 1st plural (so only singular and the one plural) and don't include the note in brackets in the translation - I added them purely to make it clear why the multiple plurals exist Note to self: Need to probably update this in the translation wiki page.

@idarlund
Copy link
Contributor

idarlund commented Oct 5, 2020

Should be 100% now 😄

@Ahuahuachi
Copy link
Contributor

Spanish 100% now too.
Shouldn't this issue be closed now and add to the documentation the instruction to join the project in Crowdin for any future contributor?

@elrido
Copy link
Contributor

elrido commented Oct 6, 2020

I did update the wiki page accordingly https://github.com/PrivateBin/PrivateBin/wiki/Translation

@elrido elrido closed this as completed Oct 6, 2020
@Peneheals
Copy link
Contributor

@elrido Awesome! It would be advised to link this Wiki page on Crowdin too (maybe on project overview page and on top of every language's translation page if possible). I'm about to finish the missing Hungarian translations today.

And another suggestion: You write in the Wiki: "You can use the webinterface provided at Crowdin."

I think this is not crystal clear. Shall I need to do anything else after my string translations on Crowdin, or is it an automated process to have the new strings merged into the project? Shall I write an e-mail to you or somehow notify the project owners or not? So two more short sentences about the whole Crowdin translation process would be awesome too.

@Peneheals
Copy link
Contributor

Oh, and you should also clarify a bit more the 2nd and 3rd plurals in the Wiki. I think your above comment is more than enough: #201 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
i18n/l10n internationalisation/localisation
Projects
None yet
Development

No branches or pull requests

10 participants