redsolution / xabber-android

Open-source XMPP client for Android
http://xabber.com
Other
1.82k stars 815 forks source link

Xabber says translation is not available, even though translation exists #667

Open zippydan opened 7 years ago

zippydan commented 7 years ago

Using Xabber on an Android phone, bought in Colombia, in Spanish language mode, used in Colombia.

Problems:

  1. After install, Xabber says no translation is available, even though Spanish is an available Xabber translation.
  2. Don't see any way to manually select a UI language either.

Needed solutions:

  1. Better language detection
  2. Method to manually select UI language
zippydan commented 7 years ago

Is this project still alive? Should I expect any response to this issue?

danito commented 7 years ago

Same problem here. While french (belgium) is recognized on my phone 7.1.1, on Android <7 it seems that it is not recognized as french, so I get the same error message.

andrewnenakhov commented 7 years ago

What locale do you use? Francais seems to come in Belgique, Canada and France variants. Currently french translation is applied only to France one. Maybe we should apply translations for all french locales, but for some languages we've received complaints that, for example, Brazil Portuguese language is different from 'vanilla' Portuguese language so we don't apply those automatically.

danito commented 7 years ago

I'm using FR-be on my devices. FR_fr and FR_be is pretty the same, no complains will rise, for FR_ca I'm not sure how they feel about it.

I found the code where you check for the language : https://github.com/redsolution/xabber-android/blob/master/xabber/src/main/java/com/xabber/android/ui/activity/ContactList.java#L362

if (Application.getInstance().doNotify()) {
            if (!SettingsManager.isTranslationSuggested()) {
                Locale currentLocale = getResources().getConfiguration().locale;
                if (!currentLocale.getLanguage().equals("en") && !getResources().getBoolean(R.bool.is_translated)) {
                    new TranslationDialog().show(getFragmentManager(), "TRANSLATION_DIALOG");
                    SettingsManager.setTranslationSuggested();
                }
}

I'll have to check how Locale currentLocale = getResources().getConfiguration().local; behaves on my different devices.

zippydan commented 7 years ago

omg a response.

Look, not applying translations automatically is fine.

The primary, most important, most basic, absolutely essential solution needed here is:

1. A method to manually apply translations. I can't figure out how to change the Xabber UI language anywhere.

1A. It is possible such a method exists, but then we need documentation as to the procedure.

1B. The fact that I can't figure out how to change the UI language points to either a flaw in the program design (assuming there is no method to change the language manually), or a flaw in the program UI (because I can't find where to change that setting), or a flaw in my intelligence (this is a possibility). One of these should be fixed.

A secondary, less important, optional solution needs to provide the user with a choice as to language when first launching the program:

2. If my phone region is set to US and I launch Xabber for the first time, I should get a menu with something like:

Your phone region is set to USA. Recommended interface languages are: 1. English 2. Spanish (Spain) Select one of the above languages or: 3. Choose another language manually

Similarly, if my phone region is set to Brazil, I would get a menu like:

Your phone region is set to Brazil. Recommended interface languages are: 1. Portuguese (Brazil) 2. Portuguese (Portugal) Select one of the above languages or: 3. Choose another language manually

(Assuming that Brazilian Portuguese is available)

If they select the "Choose another language manually" option, then there should also be an option like "If you don't see your preferred language here, choose the closest available option and click here to help us translate Xabber to your language!" with a link to https://crowdin.com/project/xabber

andrewnenakhov commented 7 years ago

We do not plan to implement manual language selection within an app. While it definitely can be done, we have other priorities to take care of. And the only kind of applications I know that allow users to choose languages other than system are games on Steam. Any browser or productivity suite always uses system language - on Android, iOS, Ubuntu, Windows, MacOS... I'm sorry, @zippydan we're not going into this suggestion, at least for now.

zippydan commented 7 years ago

Ok, let me backtrack then.

My last response to you was predicated on the idea that you were refusing to automatically set the Xabber UI based on the Phone's region settings, because some people didn't like that. That's why I started with:

not applying translations automatically is fine.

My understanding that you don't want to automatically apply language UI settings is based on this response by you (italics mine):

Currently french translation is applied only to France one. Maybe we should apply translations for all french locales, but for some languages we've received complaints that, for example, Brazil Portuguese language is different from 'vanilla' Portuguese language so we don't apply those automatically.

I'm dumbfounded that you think a Brazilian Portuguese speaker would prefer to have his UI in English rather than have his UI in Portuguese Portuguese. I'm sure the "complaint" is more along the lines of, "please give me a Brazilian Portuguese translation", not "if you don't have Brazilian Portuguese then I want my UI to be in English which I might not even read fluently", but I'll continue on...

So based off your page here https://crowdin.com/project/xabber , you've got about 19 languages fully translated, and 15 partially translated. There are 196 countries in the world.

What exactly is your plan for this mismatch? Are you saying that you will only be automatically applying language UI settings in those 34 countries where the language perfectly matches the phone's region setting?

Spanish comes from Spain, yes. But there are (at least) 19 other countries (in Central and South America) that read and speak in Spanish (20 if you count Puerto Rico).

So you think the best solution is to leave them all forced to use a UI in English (which they very likely can't read?) Spanish in Mexico is not exactly the same as in Spain, and it is even more different in Argentina, but the basic Spanish from Spain is mutually intelligible by all.

And the French speaker above has a similar concern. French is spoken in many countries in the world besides France - at least 28 including Belgium, Switzerland, Algeria, Haiti, the Ivory Coast, etc.

And what about countries where multiple languages are spoken, depending on region? In Belgium you can find French, German, and Flemish. In Switzerland you might find German, French, Italian, or English. In the US, Spanish can be as common as English. I'll assue this is handled by the phone region settings.

In conclusion:

It seems to me that in those regions where you have a close match, like Colombia where everyone can read Spanish even if it is from Spain, but very few can read English, that you should automatically be applying the Spanish UI language setting, until you have an approved translation for every country.

But what about those situations where you have no match at all?

For example. Let's say someone in Thailand wants to use Xabber. You have no Thai translation. You are going to force them then to use English? This is where I see that a manual language UI choice has merit. Some Thai might read English - others will have no clue how to read English. It's very possible that they might fair better with Chinese (that is the dominant power in the region, and Chinese speakers are more common), but many Thai also study German. Do you see what I'm getting at here?

Anyway, my point is that, with only 19 languages fully translated, you're (potentially) screwing over the other 177 countries where people might be using Xabber. You must have some kind of interim solution for this?

Anyway, I appreciate you being willing to engage my concerns, as well as the time and effort that have been put into this program. I use it a lot and I am very appreciative of the app. However, I'm using it in an international company and the language features are severely lacking. We have several Spanish speaking users that can't read English, and are unable to use Xabber on their Spanish-speaking Region phones.

andrewnenakhov commented 7 years ago

This actually has more to do with our workflow that involves CrowdIn service. Prevously we used webtranslateit service and copied, for example, Spanish or Portuguese translations to all locales that seemed be using those languages. With Crowdin we just take what locales are on service and move them into working project. I think we'll study this issue more when we ship new version of Xabber.

It would be a pity if our translators would have to translate French French and Canadian French independently, but currently I can't say if CrowdIn allows to 'borrow' strings from already translated similar locales automatically or semiautomatically.

However, we do not plan to offer choosing language in app in near future (too much other important work currently), and we'll do as Android suggests - it's either local language if it is available or default language (English).

zippydan commented 7 years ago

One thing I'm still not clear on is whether Region and Language are always defined individually within the Android ecosystem.

For example, does each country have its own language?

Colombia - Colombian Spanish Venezuela - Venezuelan Spanish Peru - Peruvian Spanish

Or can a language be shared across regions?

Colombia - Latin American Spanish Venezuela - Latin American Spanish Peru - Latin American Spanish

If it is the former, then this policy will be ridiculous, to expect every country to perform their own translation. If the latter, then it is still ridiculous, but only slightly less so.

To make one final plea to reason, the situation now is akin to this hypothetical situation:

  1. Xabber's default language is Mandarin Chinese
  2. Xabber has been translated into UK English, but NOT US English
  3. American users are thus presented with a Mandarin Chinese interface, with no recourse to switch to anything intelligible

This is what is happening to my Latin American users, as Latin American Spanish is just as similar to Spainish Spanish as American English is to UK English (i.e. it is pretty damn close and 99% mutually intelligible). And an English UI is just as _un_intelligible to my Latin American users as a Mandarin Chinese UI would be unintelligible to American users.

To make one final suggestion for a solution that could fit into your workflow, instead of just complaining, can I suggest that the standard French translation be put in as a placeholder for all French-speaking territories (Belgium, Canada, etc.), and the standard Spanish translation be put in as a placeholder for all Spanish-speaking territories (Mexico, Argentina, etc.), and the standard Chinese translation be put in as a placeholder for all Chinese-speaking territories (Taiwan, Hong Kong, etc.) until such time as a more appropriate region-specific localized translation is available?

To me, this basically comes down to a question of are you actually interested in people using this app? I know the programming world, and the Internet, tend to be very English-centric. And I can tell you that Xabber is fantastic for the English-speaking-world. But your current language-solution effectively makes Xabber unusable for the entire Latin-American world. Spanish, by the way, is the 3rd-most-spoken language in the world. You're making your app unusable for a lot of people. And I'm sure that the current language situation is also affecting users from other countries (e.g. French-speakers, German-speakers, Chinese-speakers, etc.).

Thanks again for your time.

andrewnenakhov commented 7 years ago

Well solution is obvious, just needs some of our time that we don't currently have for this task. Our plan is: 1) release new beta version with lots of new features 2) fix communication issues 3) do some updates to interface 4) release public version

somewhere after 4 we plan to do a translation update with all latest additions to languages.

(and there are just 2 spanish locales, thankfully)

zippydan commented 7 years ago

Last question: how can I contribute to Latin American Spanish in your crowdin project? I don't even see it as an option needing translation.

Chances are very good that it would just be 99% copy and pasting from the Spain Spanish.

grigoryfedorov commented 7 years ago

@zippydan I've added Spanish Colombia translation to crowding, here is the invitation link https://crowdin.com/project/xabber/invite?d=d585h4g6l6k5e3930783l46363c3j4 Thanks for help!

zippydan commented 7 years ago

I haaaate to be nitpicky, but @andrewnenakhov said there are only two Spanish locales, and I'm inclined to agree with him. Generally Spanish would be divided into European Spanish (i.e. Castellano in Spain) and Central / South American Spanish (i.e. Español in the New World), similar to the division between UK English and US English.

There are differences from region to region in Central and South America because it is a big area; just as there are regional diffrences from New England to California to Mississipi, but they're generally not great enough to warrant a completely separate translation because the formal, standard Spanish as one would find in a textbook, or on a news program, or in an application is pretty much 99.9% the same (the differences occur more in everyday informal, colloquial, or slang speech).

For purposes of formal translation, Colombian would fall under "Northern" Latin American Spanish, often represented by Mexican Spanish (Colombian readers might take umbrage at this, but standard / formal / academic / educated Mexican and standard Colombian are considered the purest, most grammatically standard and best pronounced Latin American Spanish). This Spanish would be applicable throughout Central America, and would also include South American countries such as Venezuela, Peru, Ecuador and even as far as Bolivia.

It would even serve well to the very tip of Argentina, but some apps and programs prefer to make a more localized version getting down into Chile, Argentina, Uruguay, and Paraguay - which do differ slightly more than other Latin American countries. But even they would have no problem understanding "standard" Mexican or Colombian in the context of a productivity application.

I mean, if you start considering all the dialectal differences in Spanish, even within the same country you'll find many small and seemingly large differences. Atlantic coast Colombian is different from central Colombian and is different from Southern and Pacific Coast Colombian. Mexico is an even larger country with even more variation, and even more influenced by regional native languages. But when it comes to formal, governmental, academic, or news and media contexts (or applications) there is a standard Spanish that everyone understands without difficulty for pretty much the entirety of Central and South America.

Anyway, I'm trying to save me time, and you time, and make Xabber more accessible, and more quickly accessible to my Spanish-speaking friends and brethren, so I'm asking you to consider whether you really intend to make a separate Spanish-language translation for each and every Spanish-speaking country, or just for specific Spanish-speaking trans-national regions.

For corroboration check out Firefox which does Spain, Mexico (representing the majority of Latin America), and then Chile, and Argentina: https://www.mozilla.org/en-US/firefox/all/

Also see Windows 10 which just does Spain, and Mexico (for all of Latin America): https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/desktop/available-language-packs-for-windows

I could see doing language translations for each country, one by one, if someone from each country specifically volunteers to do the work, but in the meantime, and as an initial more expedient and effective starting point, if Android only has two localizations for Spanish, why make more work for everyone?

Anyway, I really appreciate you adding Colombia to the list, and I'm not trying to look a gift horse in the mouth here, but before I start on the work I'd like to make sure this is really the direction you've decided to go.

grigoryfedorov commented 7 years ago

Before Android 7.0 there was no ability to specify "Latin American Spanish" translation in Android:

The language is defined by a two-letter ISO 639-1 language code, optionally followed by a two letter ISO 3166-1-alpha-2 region code (preceded by lowercase "r").

It was possible to provide general Spanish or/and more specified Spanish translations for regions (countries).

But starting from Android 7.0 (and this is new to me) there is an ability to specify Latin American Spanish as values-b+es+419 https://developer.android.com/guide/topics/resources/multilingual-support.html Seems that UN M.49 is usable now https://en.wikipedia.org/wiki/UN_M.49

Crowding does not have ability to specify Latin American Spanish. I asked their support about UN M.49 just now.

For now you can translate Spanish Colombia I added and than we can specify it for values-b+es+419

zippydan commented 7 years ago

Thank you! I appreciate the clarification and the assistance. I will get to work on this and hope to have it ready ASAP.

grigoryfedorov commented 7 years ago

@zippydan crowding support replied very fast, I've created custom translation, you can join it here: https://crowdin.com/project/xabber/invite?d=o645i46585d5e393s4l523i483a36383

Toastbacon commented 7 years ago

I'm in Chile and would prefer to use Xabber as the default xmpp client for the group I am working with, as I find it to be a very easy to use product, but am running up against this same issue with translations. To pile on to what has been said earlier, the users here would be more than content with Spain (Spanish) and it will be not be a viable solution in English. I'd also be happy to contribute to Spanish, Chile or Spanish, Latin America (though it wouldn't make a lot of sense to not seed those with a copy of the completed Spanish first).