New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 921001 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Android: broken localized strings for cast_intro_overlay_button_text

Project Member Reported by digit@google.com, Jan 11

Issue description

This was discovered by manually inspecting the localized strings embedded inside MonochromePublic.apk.

The Android resource string identified by the name cast_intro_overlay_button_text and defined in [1] doesn't have proper localizations, i.e.:

  - The resources.arsc does *not* contain a value for the (default)
    config for this named resource. Even though it is defined
    in the corresponding res/values/strings.xml file [2]

    Note that it provides a value for en-GB (British English) though,
    but not for en-US, which is the default on Android!

  - The value is all translations, as found in resources.arsc is
    otherwise "@android:string/ok", except for the Farsi locale (fa)
    where it is "\u202A@android:string/ok". Note that \u202A
    corresponds to the right-to-left directional indicator.

  - "@android:string/ok" looks like a resource reference, which are
    normally not supported in Android string resources (but can be
    used as attribute values for other XML elements though).

Note that no other resource string in the APK has any missing default value, or uses string references.

Likely reason for the current behaviour:

  - aapt rejected the string reference for some reason for the
    default config, but not the translations?

  - a build or packaging error from the upstream 
    com.google.android.gms.play_services.cast_framework library?


[1] https://cs.chromium.org/chromium/src/out/android-Debug/gen/third_party/android_deps/com_google_android_gms_play_services_cast_framework_java/res/

[2] https://cs.chromium.org/chromium/src/out/android-Debug/gen/third_party/android_deps/com_google_android_gms_play_services_cast_framework_java/res/values/values.xml?rcl=56b8e8078938e9c3175b5a07de9130846bdd14ee&l=109
 
Actually, it seems string references, as long as the whole string value is a reference, are supported, see [1]

So this means the issues are:

1) Bad value for Farsi
2) Missing default config in resources.arsc for that string (??)

1) should be easy to fix upstream. Not sure about 2) yet.

[1] https://tekeye.uk/android/examples/android-string-resources-gotchas
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df9e5cfddd192a7687f19626b35dfe25e843eb1c

commit df9e5cfddd192a7687f19626b35dfe25e843eb1c
Author: David 'Digit' Turner <digit@google.com>
Date: Tue Jan 15 14:59:15 2019

android: Dump localized strings without default configs.

The dump_apk_resource_strings.py script crashes when it
encounters a resources table that contains a localized string
without a value for the default configuration. This is obviously
a packaging bug (see below), but should not prevent the script
from working.

This fixes the issue by faking a value of <MISSING_STRING_<id>>.
This makes checking for these use cases obvious in the output.

BUG=921001
R=benmason@chromium.org
TBR=agrieve@chromium.org

Change-Id: I9d408e776d19334eed03a42ddd266895f7628b26
Reviewed-on: https://chromium-review.googlesource.com/c/1411777
Reviewed-by: David Turner <digit@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622856}
[modify] https://crrev.com/df9e5cfddd192a7687f19626b35dfe25e843eb1c/build/android/dump_apk_resource_strings.py

Sign in to add a comment