jonaswinkler / paperless-ng

A supercharged version of paperless: scan, index and archive all your physical documents
https://paperless-ng.readthedocs.io/en/latest/
GNU General Public License v3.0
5.37k stars 358 forks source link

Translation of Paperless-ng #212

Open jonaswinkler opened 3 years ago

jonaswinkler commented 3 years ago

In an effort to provide Paperless-NG in multiple languages, I've started a translation project at crowdin, which is free for open source projects.

~https://crowdin.com/project/paperless-ng~ (please head over to paperless-ngx)

I will provide English and German translations, but will be unable to provide anything more than that. If you wan't to see paperless in your own language, please help out! The project page shows the current languages of paperless. If you want a new language added to the project, either mention me in this issue or post a message in the discussion section at crowdin.

Some notes about translation.

jonaswinkler commented 3 years ago

I found it pretty hard to find good German translations for some of the terms in paperless. This usually indicates that the given term might not be the best one to use in English and we should consider finding better terms for some features.

I'd like to hear about these (and maybe other) from some native English speakers.

qcasey commented 3 years ago

Are you looking to replace Saved View with something different? That one seems quite clear.

Any, All, Fuzzy, etc. I don't think its very clear what these do without consulting the documentation. Can we do better?

Even after reading the docs I have no idea what Fuzzy match can provide, especially in contrast to Auto. Misspellings maybe?

Contains All / Contains Any might be a little clearer. Similarly Exact Match might be better than Literal.

qcasey commented 3 years ago

This may be a different discussion, but if you're up for change, would something like this translate well? Perhaps with "Auto" as the default and with the lower items hidden, while "Search" brings up the extra options?

Regardless, I think some examples should show up in the Match field's placeholder/hint text.

Screenshot from 2020-12-30 20-01-21

Screenshot from 2020-12-30 19-58-36

jonaswinkler commented 3 years ago

Are you looking to replace Saved View with something different? That one seems quite clear.

Alright, good to know!

Even after reading the docs I have no idea what Fuzzy match can provide, especially in contrast to Auto. Misspellings maybe?

That searches for terms that are similar to the provided matches. possibly useful for when OCR messes up. I never used it though.

Regarding the screenshots:

"When document contains DROPDOWN of the following" is hard to translate, and doesn't really work for "exact match" or "regex". However, providing much longer names for the algorithms in the drop down might be the key here.

shamoon commented 3 years ago

I think he's also asking about https://github.com/jonaswinkler/paperless-ng/issues/164 . Do you remember what the issue was with hiding it? I can take a look if you want, I see theres a lot of other stuff going on right now!

jonaswinkler commented 3 years ago

Not sure. I just couldn't hook up the disabled attribute with the reactive form model.

Btw, localization support is on the development branch now. The next release will have localization support. Paperless will then support English, German, and any language that's sufficiently translated (untranslated strings will appear in English). Translating the .xlf file is mandatory, the .po is nice to have.

shamoon commented 3 years ago

Yea that localization tool seems awesome, crazy how fast you got all that spun up, seems like will be very straightforward for people to add other languages. Sorted out that other thing, I think.

jonaswinkler commented 3 years ago

image

First language complete! :+1:

Regarding language updates: I'll get pull requests whenever you feel like updating translations in transifex.

jonaswinkler commented 3 years ago

image

jovandeginste commented 3 years ago

image

First language complete! +1

Regarding language updates: I'll get pull requests whenever you feel like updating translations in transifex.

Sadly, it mistook my name and mail address :( Anyway, nice! ;-)

jovandeginste commented 3 years ago

Why is "Name" not translated?

jonaswinkler commented 3 years ago

Missed that one. Fixed. It will reuse existing translations.

jonaswinkler commented 3 years ago

Sadly, it mistook my name and mail address :( Anyway, nice! ;-)

I was unaware of that until I've seen this info pop up in the generated PRs, and at that point it was already too late. You can configure your mail address to not show up in translation files. Very annoying that this is turned off by default.

jovandeginste commented 3 years ago

Yes, I was unaware too :-)

jonaswinkler commented 3 years ago

@jovandeginste @Philmo67 @zjean

I'm not entirely sure how update notifications are handled with this tool - do you get any? I added a couple strings to the tool that cover added and changed features. I'll be doing some more testing in the next few days before getting this out.

Philmo67 commented 3 years ago

@jonaswinkler No notification from transifex. I didn't change any notification setting though. Let's get back to work :-)

jovandeginste commented 3 years ago

@jonaswinkler Are you planning to show the possible languages into the currently selected language? One issue I have with that, is that if I accidentally pick the wrong language (eg. Mandarin Chinese), it may take a long time to find a language I actually understand, to have a workable system :wink:

My 2 cents: either

jonaswinkler commented 3 years ago

Are you planning to show the possible languages into the currently selected language? One issue I have with that, is that if I accidentally pick the wrong language (eg. Mandarin Chinese), it may take a long time to find a language I actually understand, to have a workable system

If you're referring to why the actual names of the supported languages are in the translation strings: That's suggested by the documentation of the framework I used (django). I'm not using that anywhere, yet.

jovandeginste commented 3 years ago

That was the reason for the question, indeed 😁

Philmo67 commented 3 years ago

Very nice to be able to use Paperless-ng in your own language :-) thank you !

Some & quot ; are appearing in french, it seems I'll have to replace them all with some " (basic mistake, I should have asked...). The descriptions of some matching algorithms are also too long, they exceed the width of the dropbox. Some terms should be replaced by more adequate synonyms. I will do a correction session as soon as possible.

jovandeginste commented 3 years ago

So ... I just noticed the translation on my installation today, because my desktop is not broadcasting my native language (but my laptop is). There is no place where I can change/override this in the settings?

Also, I found these untranslated (in the admin settings):

Some confusion arises from terms like "any", which is sometimes translated to "all". Eg. in Dutch and German (my German is baaaad):

While in French:

I try to fix these in Dutch when I encounter them (sometimes only when using the app)

jonaswinkler commented 3 years ago

Also, I found these untranslated (in the admin settings):

  • Failed tasks
  • Scheduled tasks
  • Successful tasks

I don't have any control over that, this is an extension that is not translated. Translation would have to be done at the repository over at "django-q", but it looks like the source code isn't even ready for that.

In the long run, I want to have the front end in a state where the admin interface is not needed at all.

Some confusion arises from terms like "any", which is sometimes translated to "all". Eg. in Dutch and German (my German is baaaad):

I don't understand. Where exactly is "any" translated to "all"?

jovandeginste commented 3 years ago

Re. django-q: understood; I think that's a good goal, since it kinda breaks the flow...

Re. translations:

"elke" in Dutch means "each" in English.

According to Google Translate, translation of "Hat irgendein Tag" is different to English than to Dutch (???):

So, German is correct, I guess, and only Dutch was wrong?

jonaswinkler commented 3 years ago

I don't know if the Dutch translation is wrong; I dont speak that :)

"Has any tag" literally refers to a document that has at least one tag assigned, no matter what that tag is.

jovandeginste commented 3 years ago

Yes, that is what I understand "any" to mean. I updated the Dutch translation.

Philmo67 commented 3 years ago

Is the login/logout screen translatable ?

jonaswinkler commented 3 years ago

Good catch. I'll add strings for that.

Philmo67 commented 3 years ago

About last added strings : "Document editor" is "the tool used to read the documents within Paperless-ng" ? (edit != read)

jonaswinkler commented 3 years ago

It refers to the document details page, where you set the title, date, correspondents, etc of a single document and have the preview displayed on the right.

Philmo67 commented 3 years ago

Not sure if it is a translation issue as I cannot find the involved string(s) : after adding and suppressing only 1 tag, the confirmation dialog shows non-quoted labels firefox_tI3fvEDgW3 The enumeration of multiple additions or deletions contains quoted labels. I also need to review the possibility of having singular or plural on the labels here.

jonaswinkler commented 3 years ago

after adding and suppressing only 1 tag, the confirmation dialog shows non-quoted labels

That's an issue with how the text is generated, and not with the translation. Noted!

I also need to review the possibility of having singular or plural on the labels here.

This would mean a lot of new strings that cover all cases (singular tags added, plural tags removed, both plural, both singular, etc).

Maybe a more structured message would be better, such as

This operation will perform the following operations on x selected documents. Tags to be added:

  • Tag1

Tags to be removed:

  • Tag2
  • Tag3

I am aware that proper pluralization is useful for the document count as well.

jonaswinkler commented 3 years ago

I found it pretty hard to find fitting translations for everything involving "Consumer". How about the other languages?

Philmo67 commented 3 years ago

In French, I'm also a bit stuck on this word, I think I'll stick to something like "file/document processing" (traitement de fichier/document).

jovandeginste commented 3 years ago

I too used "processing" in Dutch ("verwerken" etc). I see there are a number of new strings to translate with "consume", probably the reason you brought this up...

jonaswinkler commented 3 years ago

probably the reason you brought this up...

Exactly. I'll try to find some more fitting terms for English.

jovandeginste commented 3 years ago

As an aside, I had a tough moment trying to figure out what was meant with "Dismiss completed"... I was trying to figure out what the "dismiss operation" was.

jonaswinkler commented 3 years ago

I'll add notes to ambiguous strings in the future.

jonaswinkler commented 3 years ago

Uuh. Don't have very good news on the translation front.

I had to rename the file that contained the english source strings for the Django admin section (some locale/en-us/LC_MESSAGES/django.po file had to move to locale/en_US/LC_MESSAGES/django.po), in order to get proper support for en-us and en-gb. That's the proper way to name these files, I should have done that from the beginning.

And by doing that transifex removed that entire resource from the tool. That also means that translations of that file that were not 100% complete are gone as well. I've contacted them and hope they can do something about it, I'm not sure how much has been lost.

I'll also probably switch to crowdin, there's just too much wrong with transifex.

jovandeginste commented 3 years ago

Can you not upload a po file from the repository?

jonaswinkler commented 3 years ago

It's about incomplete translations that were not yet checked into git due to them being incomplete.

German, Dutch and French is fine.

jonaswinkler commented 3 years ago

Alright, they've got it sorted, everything's back to normal.

rodavelino commented 3 years ago

@jonaswinkler could you split the pt locale into pt_BR and pt_PT on transifex? There's some confusion going on right now with some strings.

jonaswinkler commented 3 years ago

@jonaswinkler could you split the pt locale into pt_BR and pt_PT on transifex? There's some confusion going on right now with some strings.

Sure. Should I copy the existing pt translations into pt_PT or pt_BR, or both?

rodavelino commented 3 years ago

If you can copy both, it would be great. There are some overlaps between the two of them.

jonaswinkler commented 3 years ago

Alright, I'll fix that up right now.

@rodavelino Done!

rodavelino commented 3 years ago

Thanks! I'll try to finish translating the pt_BR today.

jonaswinkler commented 3 years ago

Thank you so much. It's awesome to see this software getting translated into so many languages.

image

@rodavelino The last thing to do before I can put this into a release is to translate the name of the language (I've just updated transifex) into Portuguese.

rodavelino commented 3 years ago

Great, done! Indeed. Your improvements over the original paperless made it much more useful for some people (myself included). Awesome work! Let's hope with more people using it, we can get more contributors and improve what is already good.

jonaswinkler commented 3 years ago

image

Another language added to paperless!

jonaswinkler commented 3 years ago

image

Romanian added to paperless!