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

Application strings reworked #129

Open
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

comradekingu
Copy link
Contributor

No description provided.

Copy link
Member

@tasn tasn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for this pull request! The strings look a lot better now, great job!
I made a few small comments, and would love to hear your thoughts.

Btw, the next version of the Android app is being developed in the Etebase branch, there are some new strings there, and some strings were modified too. I'll take a look at copying these changes over to that branch too.

Additionally, we now use Weblate for translations. I don't know if it's a better or worse experience for translators as we only now added it, but here is the link https://hosted.weblate.org/projects/etesync/android/

<string name="about_license_terms">License terms</string>
<string name="about_license_info_no_warranty">This program comes with ABSOLUTELY NO WARRANTY. It is free software, and you are welcome to redistribute it under certain conditions.</string>
<string name="about_license_terms">License info</string>
<string name="about_license_info_no_warranty">This copylefted libre software licensed GPLv3+ comes with ABSOLUTELY NO WARRANTY. Use, see, change and share at will, with all.</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is a bit problematic as it removes the "under certain conditions" part.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't seen "you are welcome to redistribute it under certain conditions" anywhere else that I can think of. The GPLv3+ doesn't allow any invariant sections, so "Use, see, change and share at will, with all." isn't a functional part of the license.

The original string lacks the license altogether, and "free software" without a qualifier doesn't communicate much of anything.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look at the app, this string is immediately followed with the license in its entirety. I agree the existing string is lacking though.
How about this (sort of taken from the FSFs website):
This program is free software: you can redistribute it and/or modify it under the terms of the license below.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The FSF has been at it for 35 years trying to communicate to communicate that point, with no real distinction made.
Then it is all fine as it is. Near nobody reads the whole license text to find out what a sentence means. It isn't like people just happen to get ideas about GPL-licensed software, so to do anything functional with it, those people already know.
To separate it from other software, in clarifying how it is functionally different to freeware or closed source software is the issue IMO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My problem with the suggested translation is twofold:

  1. "copyleft" and "libre" are words you and I understand, because we know what the GPL is, but for a layman, it won't add any information. So I don't think they add clarity.
  2. The second part implies that it comes with no restrictions, which is not true, per the GPL. I'm also not sure about the wording.

Maybe add a link to a website that shows a summary of what's allowed and what isn't (there are a few)? Even github has a summary: https://github.com/etesync/android/blob/master/LICENSE (though let's not link to github).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are my issues with it.

  1. It says "program" when "app" is used elsewhere. Sometimes "EteSync" self-references, so it is arguably a third way to do one thing.
  2. Capital letter words shown to the user is bad practice. Looks hostile.
  3. The idea that it doesn't come with a warranty of any kind isn't important to point out, and it just looks unprofessional. It is in the license. It is the least valuable thing about the license.
  4. It also comes first for no good reason, so that is the third way it undermines value.
  5. "free software" is meaningless now that people don't use "freeware", and it is the way that people describe "gratis software". The user will likely conclude it is ~freeware.
  6. "free software" is likely to be mistranslated into "gratis software", which just adds insult to injury.
  7. "Free software" is not specifically "copyleft", which sells the project short. Similarly EteSync is also "software", but not everyone can say they are copyleft. That is an extra restriction/requirement/protection.
  8. The Oxford comma ", and" makes it seem like redistribution is different from free software, so there is even less chance of conveying what it "free software" means.
  9. "welcome to" is nice, but "under certain conditions" is not. Looks shady. The user is none the wiser. Relegating the user to the full license to figure it out is bad, because the license text is rough. Near nobody will read the full license, especially if they are confused at this point.
  10. The whole license is dumped on the user after that. Never seen that before, and to me it looks a lot like a wall of text.
  11. I don't know what is at the bottom of the license text, and I have to scroll through it. Fairly small problem, but it doesn't exactly fill me with confidence (for something I am unlikely to be very good at).
  12. It all doesn't fit on one screen, which is unaesthetic. The category is up top too, so it is also unfamiliar. Usually it is at the bottom.

In about the same amount of initial text, (in logical succession) the user can both be introduced to functional words that expand on what is merely free software/Open Source/etc. is (because EteSync is copyleft). It also works in all languages, all while explaining the concept of copyleft software in simple terms. I know that works, because I have done it in many projects. My experience is it increases donations. See https://liberapay.com/explore/teams

Copy link
Contributor Author

@comradekingu comradekingu Sep 26, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just tried the latest app version from F-Droid on an unsuspecting user:
Expectation about the category is that it is going to be about the license, and the people that made the program. (Usually there is more about the team and other libraries, but I digress.)

User scrolls down the side without reading, and notices there is a lot of text. Is somewhere into the GPLv3 text, and isn't going to read it. We are failing there.
When asked about the top part of the text, the user thinks there is no warranty because the program was gratis. (so failing to understand this is because of the license).
Says "redistribute" means "this is where you have to read the full text", again isn't going to do so. That is the second fail where the current EteSync shouldn't fail at presenting its strongest attribute.

User knows about open source (calls it open code though), thinks "free software" used here might mean one or the other, or both, asks me which one it is.
I say that it could be free software and still cost money. User derives that "the unique thing is that the source is free". I answer yes.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per my other comment, I just tried it on an unsuspecting translator, and it's indeed a pain to translate. Legalese are a problem like that. "copyleft" won't be easy to translate either. And heck, I don't think this page is even used often nor do I care about it that much.
How about:
This program is free (libre) and open-source software. You can use, modify and distribute it freely under the terms of the license below.

Btw, this string is used in each of the about pages, so copyleft doesn't apply to it anyway, as it doesn't apply to all of the deps.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This discussion is still open

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tasn It is still copyleft without being strong https://en.wikipedia.org/wiki/Copyleft#Full_and_partial_copyleft
Translators usually leave the strings that are hard to translate, but overall this way of doing it works for other projects. I think explaining things without resorting to the full license is better, and that copyleft in itself is a very meaningful concept that shouldn't be hidden away in the license. Your version seems like it (possibly) even takes away from "use, modify and distribute freely". I'll go with that and "email" if that is what it takes.

app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved
app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved
app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved
@@ -366,15 +366,15 @@
<string name="sync_phase_apply_local_entries">reapplying local entries</string>
<string name="sync_phase_push_entries">pushing entries</string>
<string name="sync_phase_post_processing">post processing</string>
<string name="sync_error_unauthorized">Authentication failed</string>
<string name="sync_error_user_inactive">User is inactive</string>
<string name="sync_error_unauthorized">Could not log in</string>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<string name="sync_error_unauthorized">Could not log in</string>
<string name="sync_error_unauthorized">Could not confirm identity</string>

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still not a fan. :|

Copy link
Contributor Author

@comradekingu comradekingu Sep 24, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you explain it above I can add the translator info and come up with something that encompasses all uses of "authenticate". "Authenticate" and "Unencrypt" with different passwords for each arrives at failure in comprehension for no good reason. If that part could be made to work, it would be a major improvement for a lot of users.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's keep the discussion in the other thread (sorry for replying here too, I thought that one was gone). I'll reply there now.

@tasn
Copy link
Member

tasn commented Sep 26, 2020

Hey,

I merged the etebase branch into master now with all of the string updates. I had to because a lot of people have been translating the current master which is outdated. I hope it didn't cause a mess for you.

@comradekingu
Copy link
Contributor Author

comradekingu commented Sep 26, 2020

@tasn Just some conflicts, but I can clear those up.
I thought that was my changes making it in, and I still found it hard to translate the untranslated strings.
So there is hope :)

@comradekingu
Copy link
Contributor Author

@tasn Fixed the merge issues and added the link. I think ready to go now?

Copy link
Member

@tasn tasn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry for the additional round of comments, I just reviewed everything with a fresh set of eyes and looked at how the strings would look in the app and found a few additional issues. To be honest, I don't know how I missed them the previous time. I disagree with a lot of these changes.

app/src/main/res/values/strings.xml Show resolved Hide resolved
app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved
app/src/main/res/values/strings.xml Show resolved Hide resolved
<string name="about_license_terms">License terms</string>
<string name="about_license_info_no_warranty">This program comes with ABSOLUTELY NO WARRANTY. It is free software, and you are welcome to redistribute it under certain conditions.</string>
<string name="about_license_terms">License info</string>
<string name="about_license_info_no_warranty">This copylefted libre software licensed GPLv3+ comes with ABSOLUTELY NO WARRANTY. Use, browse, change and share at will; with all. https://simple.wikipedia.org/wiki/GNU_General_Public_License</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still not happy with this string, will reply to the thread.

app/src/main/res/values/strings.xml Show resolved Hide resolved

<!-- AddAccountActivity -->
<string name="login_title">Add account</string>
<string name="login_username">Username</string>
<string name="login_username_error">Valid username required</string>
<string name="login_email_address">Email</string>
<string name="login_email_address_error">Valid email required</string>
<string name="login_email_address">E-mail</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, I prefer Email

app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved

<string name="signup_title">Enter Signup Details</string>
<string name="signup_password_restrictions">Password should be at least 8 characters long</string>

<!-- ChangeEncryptionPasswordActivity -->
<string name="change_encryption_password_title">Change Encryption Password</string>
<string name="change_encryption_password_extra_info">Please don\'t use this tool if you believe your encryption password has been compromised. Contact support instead.</string>
<string name="change_encryption_password_extra_info">Please don\'t use this tool if you believe your encryption password is in the wrong hands. Contact support instead.</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer how it was before.

Copy link
Contributor Author

@comradekingu comradekingu Sep 28, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ask some people what "compromised" means in terms of passwords.
Ask some people what "in the wrong hands" means in terms of passwords. I imagine the latter not only gets more recognition and introduces less fear in users, but also avoids awkward translations of a word that isn't common. It just allows for more users to get the point. Personification helps a lot to carry meaning. "compromised" is an arbitration.

Arguably "compromised" encompasses making a bad password in the first place.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's a common word with a well understood meaning. English is a rich language, and while I'm OK with avoiding the more esoteric parts of it, I think it's a bad idea to only use the 5000 most common words. Compromised is the correct word here. At least better than the suggested alternative.

Copy link
Contributor Author

@comradekingu comradekingu Sep 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tasn What regular user did you ask? Do you want those?
Did confidence in their own ability to make these choices and operate the software go up or down? If that is a good thing, then the idea is to have only the right kind of user. I'm not saying that isn't the goal, but it sure isn't mine.

To the contrary sticking within 5000 is a fantastic idea if at all possible. I'll fancy it up any day, like https://remmina.org/ecosystem/ however this is an app. An app that isn't available in much other than currently poor English.
As of right now only the Turkish and Norwegian Bokmål translation even has completion, which means most users see it in English, and a fair assumption is half of those aren't going to be from the anglosphere.
To no surprise, the coverage in other languages doesn't extend to the "compromised" string:
https://hosted.weblate.org/translate/etesync/android/en/?checksum=f5bd2cdf38910fea

My guess is that if it doesn't change, it will stay that way, because the harder strings always get left out. If you have to think about it, it breaks the flow of translation. This in turn means a lot of translators stop right there. Then you get someone translating another part, and they might forget to check for consistency. No, the language will not improve, it will deteriorate.

If by linguistic style regular users aren't included, then by all means. It isn't an easy word to translate, nor is it actually common.
(Other than EteSync) it is only found in Dino, pypa, F-Droid, OpenWrt, Debian Handbook, and phpMyAdmin. The latter 4 are not good examples of localization, and it is a selection of highly technical projects.
https://hosted.weblate.org/search/?page=1&limit=100&q=+source%3Acompromised+&sort_by=-priority%2Cposition

To decimate users further, try serving them "post processing" and "preparing for fetch" "case sensitive" "uppercase" "read-only" and see how many you are left with. Those are all in here. Where they are not to be found, is in https://www.oxfordlearnersdictionaries.com/wordlists/oxford3000-5000
The result is going to be fewer users for no good reason at all.
How much do you like relying on only context when trying to do something you aren't good at?

Bonus, why not make "Would you like to revoke %s" say "rescind %s" to drive the point home? If it is a certificate that is nullified(?), it isn't actually revoked. Yes, it is somehow still called revocation, fun for everyone.

Let's not get into the breadth of English, lest we forget how poor this all was a minute ago. If there is some quality to be had later on, we can get there in due time, like in en_US and en_UK branches.

Edit: "Compromised" isn't even there for a lot of languages in wiki-words https://en.wiktionary.org/wiki/compromised One more word to dig up help for. Or we can play the game and see what it results in if there isn't any help.

I can almost guarantee no equivalent word exists in a lot of languages, but I hope you can be convinced.

Edit2: These are the language levels according to the Common European Framework of Reference for Language Learning.

A1 | 500
A2 | 1000
B1 | 2000
B2 | 4000
C1 | 8000
C2 | 16000

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason why compromised is not translated in most languages for EteSync is because we inherited a lot of translations from DAVx5, and this word is not one of them.

As I said, I don't want to limit to only the 5000 most common words. Sure, it's better when possible, but I wouldn't want to cripple the English version by using weird word constructs or incorrect terms just to make translation be more directly mapped. What you are suggesting is being incorrect so it's easier for translators to do their jobs. I don't think it's a good idea, and even if it is, it's not a path I'd like to go down.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not "to the wrong hands" "into the wrong hands". Ah, I messed that up too.
Fair point about possibility. I argue it is then a compromised as a password, but that it could or could not be actually compromised. The distinction is not something I would bank on. Changing the string around.

Edit: Actually https://idioms.thefreedictionary.com/fall+into+the+wrong+hands is the correct idiom, but it is maybe a bit clunky.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better, but clunky. Maybe we should try something in the lines of "revealed" or "exposed" or something. I have no idea really, I'm just trying to think of synonyms for compromised...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better, but know still feels weird. "Could have gained access" maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about it, went with "someone else could know your encryption password" I like "could have gained access" too.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine now. One more thought though: since there's now only one password, what do you think, should we drop the word "encryption" from there? The title should still include it (since it should only be used in v1), but the content is used in v2 too. What do you think?

I can't wait to get rid of v1 strings. :)

<string name="change_encryption_password_new_password">New encryption Password</string>
<string name="change_encryption_password_are_you_sure">Are you sure you would like to continue? The process can not be stopped half way or be undone, and may take a while to complete.</string>
<string name="change_encryption_password_success_title">Encryption Password Change</string>
<string name="change_encryption_password_success_body">Encryption password has been successfully changed!</string>
<string name="change_encryption_password_success_body">Use the new encryption password to unlock your tasks next time</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change doesn't make sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It isn't otherwise clear what an encryption password is/does.(?)
That's the idea anyhow.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It sounds to me like you are not very familiar with the EteSync app, have you used it before? Because it doesn't just do tasks... Also, the button that leads to it is labelled "change encryption password". I think the previous string makes a lot of sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. I was trying to make it functional. What is the most generic way to describe what EteSync does?
The word "successfully" doesn't do anything, and the exclamation mark is unwarranted. People will translate "!" into languages where it is even worse for the user than in English.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not saying what was there is great, just that the new translation makes much less sense than the previous one.
"Password successfully changed" is also fine by me.
The successfully doesn't add meaning, I agree, though it makes it visually better. "Password changed" is too short.

Copy link
Contributor Author

@comradekingu comradekingu Sep 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no "Login successful" though…? Nor is it different from "Login successful". All the "successful" is gone.
Here is how "Encryption password has been successfully changed!" breaks down.

  1. What is encryption?
  2. What is an encryption password
  3. What does an encryption password do?
  4. Why "successfully", is there some other not quite successful state?
  5. Why the exclamation, it sounds like being able to change the password is an unlikely event.

In 13 chars more, the user knows

  1. That there is an encryption password
  2. It is new
  3. It is used to unlock the tasks
  4. Deductive, without it, unlocking the tasks isn't possible, and the user should record the password now, for fear of not being able to.

Possibly "Remember your new encryption password if you want to unlock your data next time" is better.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point they already know the answer to all of your questions because they are changing something they have set before. They've been educated (or not) about these concepts when they first set the encryption password when they first signed up.

As for 4/5:
4. "X finished successfully" is a common pattern. It's because you want to indicate success but you really have nothing to say.
5. I agree, get rid of it.

In 13 chars more, the user knows ...

As I said, they should already know there's an encryption password, they set it. It's not new, they changed something. Take a look at the UI in question, is very obvious that it's new. You are literally prompted for the old and new passwords. It's not just used to unlock tasks, it's used for all of your data. Now with the new EteSync notes it's also for that. You really can't know from this app what it would be used for. As I said previously, this is not tasks specific.

As I said elsewhere, please use the app and see where it's used.

Possibly "Remember your new encryption password if you want to unlock your data next time" is better.

I think we already added a notice for that in the dialog itself (or it's in my todo), as you want people to remember it before the change applies.

Again, I'm sorry, but I just disagree with the whole premise of your argument. It's a really standard thing, change your password in literally every app out there and you'll get "password successfully changed".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still in the process of setting things up, or is there a lot of time in between? There is a disconnect of possibly years(?) I still don't think it hurts to reiterate. The idea of having two passwords is unique, and it isn't out of the ordinary people forget the difference between login and unencryption passwords for e-mail.

"password successfully changed" is only found in one other project https://hosted.weblate.org/search/?offset=1&q=%22password+successfully+changed%22&sort_by=-priority%2Cposition&checksum=

Windows does not use "successfully changed" http://www.fullerton.edu/it/_resources/images/password/pc_desktop/changesuccessful.png nor does Android to my knowledge. I tried to search for it and only got software I had never heard about.

What is being encrypted other than tasks?
How about "Encryption password changed". It isn't good, but it isn't bad on the assumption people know what is being encrypted already.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I didn't mean the actual string "Successfully changed", I meant the same kind of string (compared to what you were suggesting). The windows one is a good string and I'm happy to use that.

Starting from EteSync v2 there are no longer two passwords, just one. Maybe that's where the confusion stems from. It should now be "The password has been changed". I'm happy with that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, changing.

app/src/main/res/values/strings.xml Show resolved Hide resolved
@tasn
Copy link
Member

tasn commented Sep 30, 2020

Following our discussion here I had a friend translate the app (while watching her do it), and indeed, many of the strings are problematic. I think part of it is that the strings are just poorly worded, but another is the lack of context and documentation about where the strings are used and what they mean. She encountered quite a few strings that even I wasn't sure how they should be translated, so yeah, we need to improve them.

Another thing that was annoying is the places where we refer to the app as EteSync (which you raised above). It still makes sense in some cases, but it would have been better to reword them in others.

<string name="journal_entries_list_empty">Collection is empty.\nMaybe it\'s still syncing?</string>
<string name="journal_entries_loading">Loading change log entries...</string>
<string name="journal_entries_list_empty">The collection is empty.\n(Maybe it\'s still syncing?)</string>
<string name="journal_entries_loading">Loading journal entries</string>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tasn Is it "journal entries", or "changelog entries…"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used to be journal entries, now "changelog entries".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change it to "changelog" here. Lots of other instances of "journal" though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The app currently supports both etesync v1 and etesync v2. In EteSync v1 journal was used for both "changelog" and "collection". In v2 we separate the two. I updated all of the strings that are v2 only or common for both, but kept the strings that are v1 only as they were. I know it's not optimal, but given that the v1 strings are going away soon, it's not that big of a deal.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually noticed there are a few strings I missed. :|
I'll have to have a proper sweep soon.

@comradekingu
Copy link
Contributor Author

comradekingu commented Sep 30, 2020

@tasn That is my experience too, I forget the strings in Remmina from time to time.
With precisely this in mind, knowing that happens in just about every project, the changes here are made to keep it easy for translators. You get more complete translations that way, and fewer errors.
Adding context on Weblate in the form of hints and screenshots helps too, but we haven't gotten there yet.
Merging this makes things a lot easier, and then the remaining issues can be solved. Plenty of smaller fish to fry.
I added some comments on Weblate for some strings, and two comments here for "Signup details" and "change log"?

app/src/main/res/values/strings.xml Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants