Closed Bug 1019697 Opened 5 years ago Closed 5 years ago

Belarusian displaying English strings in multi-locale APK (Beta 30.0)

Categories

(Firefox for Android :: Locale switching and selection, defect)

30 Branch
ARM
All
defect
Not set

Tracking

()

RESOLVED INVALID

People

(Reporter: ioana.chiorean, Unassigned)

Details

Attachments

(3 files)

STR:
1. Set device language to Belorussian (Белару́сь)
2. Open Fennec and check menus, about:home etc

Expected Results:
- As per Bug 521981 and Bug 999281 BE should be available in Fennec 30. 

Actual Result:
- Fennec is still in English

Note:
- Beta Files locales; '--_--' 'ca' 'da' 'ja' 'be' 'de' 'th' 'fi' 'sk' 'uk' 'nl' 'pl' 'sl' 'in' 'ko' 'ro' 'fr' 'tr' 'cs' 'ms' 'et' 'it' 'lt' 'hu' 'ru' 'lv' 'en_GB' 'ga_IE' 'sv_SE' 'zh_CN' 'nb_NO' 'es_AR' 'pt_BR' 'es_ES' 'pt_PT' 'zh_TW' 'es_MX'
rnewman, do you have a minute to look at logcat or something to see what might be affecting this? There's no variation between the gecko and Java, but nalexander wondered if bug 1004556 might have anything to do with it. Additionally, Pike thinks it "could possibly in theory with tunnel effect and heisenbugs" be a build issue (cloning an empty repository at build).
Flags: needinfo?(rnewman)
For what it's worth, inside fennec-30.0b8.multi.android-arm.apk I see files for /be in omni.ja
(Dumping this in the most locale-related component for now.)

(In reply to Francesco Lodolo [:flod] from comment #2)
> For what it's worth, inside fennec-30.0b8.multi.android-arm.apk I see files
> for /be in omni.ja

That doesn't really tell us anything about the Android UI, I'm afraid.

Bug 1004556 shouldn't be relevant -- that's only in 32, along with locale switching. I presume you're testing Aurora (31) or Beta (30).

This could conceivably be a fallback issue (be_BY not falling back to be), or a build issue.

Questions:

1. Is this an official build?
2. What's the behavior in Nightly (you might need to do a custom build, if `be` isn't in m-c's maemo-locales) and Aurora?
Component: General → Locale switching and selection
Flags: needinfo?(rnewman)
(In reply to Richard Newman [:rnewman] from comment #3)
> (Dumping this in the most locale-related component for now.)
> 
> (In reply to Francesco Lodolo [:flod] from comment #2)
> > For what it's worth, inside fennec-30.0b8.multi.android-arm.apk I see files
> > for /be in omni.ja
> 
> That doesn't really tell us anything about the Android UI, I'm afraid.
> 
> Bug 1004556 shouldn't be relevant -- that's only in 32, along with locale
> switching. I presume you're testing Aurora (31) or Beta (30).
> 
> This could conceivably be a fallback issue (be_BY not falling back to be),
> or a build issue.
Thanks for looking into this. Neither we or Android uses the lang_region locale code, only 'be'.
> 
> Questions:
> 
> 1. Is this an official build?
Yes
> 2. What's the behavior in Nightly (you might need to do a custom build, if
> `be` isn't in m-c's maemo-locales) and Aurora?
Custom build would be necessary on Nightly. Ioana, since you have Belarusian on your device, can you look into this?
Flags: needinfo?(ioana.bugs)
Kevin will address the needinfo
Flags: needinfo?(ioana.bugs)
ni? on kbrosnan in that case.  We expect to build our final FF30 candidate today, will need to know if we should expect to remove be from releasenotes and target FF31 instead?
Flags: needinfo?(kbrosnan)
Aurora multi-locale (31.0a2) displays English when setting the android system language to Belarusian (Белару́сь).
Summary: Belorussian not available using Multi Fennec Beta build → Belorussian displaying English strings in multi-locale APK (Aurora 31.0a2 & Beta 30.0)
I assume a single locale build for 'be' works fine?
(In reply to Aaron Train [:aaronmt] from comment #7)
> Aurora multi-locale (31.0a2) displays English when setting the android
> system language to Belarusian (Белару́сь).

Is this a regression for work done to support the internal locale picker? Or has this always failed when using the Android system locale changer?
(In reply to Mark Finkle (:mfinkle) from comment #8)
> I assume a single locale build for 'be' works fine?

Yes, the single locale works fine.
(In reply to Mark Finkle (:mfinkle) from comment #9)

> Is this a regression for work done to support the internal locale picker? Or
> has this always failed when using the Android system locale changer?

No. The locale picker is in 32, and this is broken on 30.
I just tested a local 32 build using locale switching. This is not built using the mainstream repack mechanism, which is both a good and bad thing from a validation perspective.


Picking Беларуyскaᴙ shows English, so `be` does seem to be busted.


`ru` works. `zh_CN` works. `sk` works. `nb_NO`, `pt`, and the usual European languages work.

`th` does not. `sl` does not.

Behavior in these cases is exactly as expected for the locale simply not including translations for strings.

Curiously, when I extract omni.ja to poke around:

  inflating: res/raw-cs/suggestedsites.json
  inflating: res/raw-da/suggestedsites.json
  inflating: res/raw-de/suggestedsites.json
  inflating: res/raw-es-ES/suggestedsites.json
  inflating: res/raw-fi/suggestedsites.json
  inflating: res/raw-fr/suggestedsites.json
  inflating: res/raw-it/suggestedsites.json
  inflating: res/raw-ja/suggestedsites.json
  inflating: res/raw-ko/suggestedsites.json
  inflating: res/raw-nb-NO/suggestedsites.json
  inflating: res/raw-nl/suggestedsites.json
  inflating: res/raw-pl/suggestedsites.json
  inflating: res/raw-pt-BR/suggestedsites.json
  inflating: res/raw-pt-PT/suggestedsites.json
  inflating: res/raw-ru/suggestedsites.json
  inflating: res/raw-sk/suggestedsites.json
  inflating: res/raw-sv-SE/suggestedsites.json
  inflating: res/raw-zh-CN/suggestedsites.json
  inflating: res/raw-zh-TW/suggestedsites.json

And here's the contents of mobile/android/locales in my objdir:


Makefile
backend.mk
binaries
m-cs
m-da
m-de
m-es-ES
m-fi
m-fr
m-it
m-ja
m-ko
m-nb-NO
m-nl
m-pl
m-pt-BR
m-pt-PT
m-ru
m-sk
m-sv-SE
m-zh-CN
m-zh-TW



So my guess is that something is making the build exclude some locales from the built output.
Oh, heh, it's the fact that I don't have those languages in maemo-locales that's excluding them, so this is expected. Damn special snowflake. Let me test a switcher build on Aurora and try again.
I've also played with this a bit, and I took the fennec-30.0b10.multi.android-arm.apk from the candidates repository, and fed it to the apk took (https://code.google.com/p/android-apktool/wiki/Install), and it reconstructed this strings.xml, which looks a lot non-English to me.
In Aurora testing on launch with my system language set manually to Белару́сь , I see

D/GeckoApp(28443): OS locale is bg_BG, app locale is null

... Bulgarian?
Worth checking: Ioana, when you say "Open Fennec", did you launch Fennec prior to opening Settings? If the process is still alive when the language changes, behavior will differ.

Please try the following:

* Open Settings > Apps > Aurora.
* Click "Force Stop" and "Clear data".
* Switch to Belorussian, if necessary.
* Launch Aurora from the app launcher.
Flags: needinfo?(ioana.chiorean)
Aaron picked Bulgarian, not Belarusian. We suck at Cyrillic.

Bulgarian:  Български
Belarusian: Белару́сь
(In reply to Aaron Train [:aaronmt] from comment #7)
> Aurora multi-locale (31.0a2) displays English when setting the android
> system language to Belarusian (Белару́сь).

Invalid, based on comment #17, whoops!

Thus, my Nexus 5 doesn't have Belarusian.
Summary: Belorussian displaying English strings in multi-locale APK (Aurora 31.0a2 & Beta 30.0) → Belorussian displaying English strings in multi-locale APK (Beta 30.0)
I don't have a device that exposes `be`, so I can't investigate this myself.


Open question to Ioana in Comment 16, plus:

* Which Android version?
* Does this affect any other locales? (This will be time-consuming.)
* Can you reproduce with Aurora?
* Do you have an adb log during startup?

I don't think we can proceed further without answers to these five things.
Attached image emulator screenshot
I've managed to get a simulator up, and fake 'be' locale there.

The Beta we have on ftp comes up (not great, but still), with the string I expect as the url placeholder. See the attached screenshot of the emulator and the 'be' source file for url_bar_default_text.

IMHO, this is INVALID, and seems to be something related to the test environment.

That said, I haven't found docs about Android supporting Belarusian. Jeff, where's that information from?
Flags: needinfo?(jbeatty)
(In reply to Axel Hecht [:Pike] from comment #20)
 
> That said, I haven't found docs about Android supporting Belarusian. Jeff,
> where's that information from?


Fwiw:  www.mozilla.org/en-US/mobile/30.0beta/releasenotes/  says we are now supporting it.
Summary: Belorussian displaying English strings in multi-locale APK (Beta 30.0) → Belarusian displaying English strings in multi-locale APK (Beta 30.0)
Android source code has Belarusian localizations of default Android apps: https://android.googlesource.com/platform/packages/apps/Browser/+/master/res/values-be/strings.xml
Flags: needinfo?(jbeatty)
(In reply to Richard Newman [:rnewman] from comment #17)
> Aaron picked Bulgarian, not Belarusian. We suck at Cyrillic.
> Bulgarian:  Български
> Belarusian: Белару́сь

I do not have independent Android Locale on our phones either. So there are 2 possibilities:
1. I mistaken the languages as Aaron :( 
2. I choose the wrong locale from 3rd  party app (https://play.google.com/store/apps/details?id=com.bruce.setlocale)

I tested this on 3 different devices and at the moment I am seeing the following:
- Using Locale Select App - I choose Belarussian (has at least 3 versions of it after you select it) 
- With the 1st one the app is ok - localized
- With the other 2 near it - it is not. 

(In reply to Richard Newman [:rnewman] from comment #16)
> Worth checking: Ioana, when you say "Open Fennec", did you launch Fennec
> prior to opening Settings? If the process is still alive when the language
> changes, behavior will differ.
Yes, I had the process alive (but that is what I did for all languages and worked fine for others)
> * Open Settings > Apps > Aurora.
> * Click "Force Stop" and "Clear data".
> * Switch to Belorussian, if necessary.
> * Launch Aurora from the app launcher.
Same behavior:
- With the 1st one the app is ok - localized
- With the other 2 near it - it is not. 

(In reply to Richard Newman [:rnewman] from comment #19)
> Open question to Ioana in Comment 16, plus:
> * Which Android version?
Android 4.1.2
> * Does this affect any other locales? (This will be time-consuming.)
No, only be (all languages results are here, https://wiki.mozilla.org/QA/Fennec/30/Beta/10/L10N-builds_matrix )
> * Can you reproduce with Aurora?
yes
> * Do you have an adb log during startup?
06-05 16:05:39.358: D/GeckoApplication(31017): onConfigurationChanged: bg, background: true
06-05 16:05:42.668: D/GeckoApplication(31017): onConfigurationChanged: bg_BG, background: true
06-05 16:05:49.388: D/GeckoApplication(31017): onConfigurationChanged: be, background: true

SO from the SDK errors I see that I interpreted wrongly the Locale and I was using BG too. As you can see in the screenshot they are pretty similar and I was looking mostly a the terminal letters. My mistake.

I will have to agree with Pike :
(In reply to Axel Hecht [:Pike] from comment #20) 
> IMHO, this is INVALID, and seems to be something related to the test
> environment.
Flags: needinfo?(ioana.chiorean)
Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(kbrosnan)
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.