Update strings to be more translation friendly

Use different strings for "None" based on the context of the string.
Some languages may require different gendered grammar depending on its
context.

Also update contacts summary string to include plurals (1 vs many).

Test: make RunSettingsRoboTests7
Bug: 154898476
Fixes: 154944295
Change-Id: If9949d75de573042389a19df3d4c5d15c6cbeb25
This commit is contained in:
Beverly
2020-04-28 10:21:15 -04:00
committed by Beverly Tai
parent 4eeb99d63e
commit dcc79e9942
6 changed files with 32 additions and 21 deletions

View File

@@ -1148,14 +1148,14 @@
<item>@string/zen_mode_from_anyone</item>
<item>@string/zen_mode_from_contacts</item>
<item>@string/zen_mode_from_starred</item>
<item>@string/zen_mode_from_none_messages</item>
<item>@string/zen_mode_none_messages</item>
</string-array>
<string-array name="zen_mode_contacts_calls_entries" translatable="false">
<item>@string/zen_mode_from_anyone</item>
<item>@string/zen_mode_from_contacts</item>
<item>@string/zen_mode_from_starred</item>
<item>@string/zen_mode_from_none_calls</item>
<item>@string/zen_mode_none_calls</item>
</string-array>
<string-array name="zen_mode_contacts_values" translatable="false">

View File

@@ -8978,6 +8978,8 @@
<item quantity="one">1 other</item>
<item quantity="other"><xliff:g id="num_people" example="3">%d</xliff:g> others</item>
</plurals>
<!-- [CHAR LIMIT=40] Zen mode settings: Starred contacts summary when there are no starred contacts -->
<string name="zen_mode_starred_contacts_summary_none">None</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Messages option -->
<string name="zen_mode_messages">Messages</string>
@@ -8997,8 +8999,13 @@
<!-- Zen mode settings: All calls can bypass DND summary [CHAR LIMIT=NONE -->
<string name="zen_mode_all_calls_summary">All calls can reach you</string>
<!-- Zen mode settings: Senders in contacts can bypass DND summary summary [CHAR LIMIT=NONE -->
<string name="zen_mode_contacts_senders_summary"><xliff:g id="num_contacts" example="120">%d</xliff:g> contacts</string>
<!-- Zen mode settings: There are no contacts on the device [CHAR LIMIT=NONE] -->
<string name="zen_mode_contacts_count_none">None</string>
<!-- Zen mode settings: Senders in contacts can bypass DND summary summary [CHAR LIMIT=NONE] -->
<plurals name="zen_mode_contacts_count">
<item quantity="one">1 contact</item>
<item quantity="other"><xliff:g id="num_contacts" example="120">%d</xliff:g> contacts</item>
</plurals>
<!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From anyone -->
<string name="zen_mode_from_anyone">Anyone</string>
@@ -9006,8 +9013,6 @@
<string name="zen_mode_from_contacts">Contacts</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From starred contacts only -->
<string name="zen_mode_from_starred">Starred contacts</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Calls and/or messages from none-->
<string name="zen_mode_from_none">None</string>
<!-- Do not disturb settings, calls summary [CHAR LIMIT=100]-->
<string name="zen_calls_summary_starred_repeat">From starred contacts and repeat callers</string>
@@ -9017,9 +9022,9 @@
<string name="zen_calls_summary_repeat_only">From repeat callers only</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Calls option value: No calls allowed -->
<string name="zen_mode_from_none_calls">Don\u2019t allow any calls</string>
<string name="zen_mode_none_calls">None</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Messages option value: No messages allowed -->
<string name="zen_mode_from_none_messages">Don\u2019t allow any messages</string>
<string name="zen_mode_none_messages">None</string>
<!-- [CHAR LIMIT=80] Zen mode settings: Allow alarms option -->
<string name="zen_mode_alarms">Alarms</string>

View File

@@ -287,13 +287,13 @@ public class ZenModeBackend {
protected int getAlarmsTotalSilencePeopleSummary(int category) {
if (category == NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES) {
return R.string.zen_mode_from_none;
return R.string.zen_mode_none_messages;
} else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CALLS){
return R.string.zen_mode_from_none;
return R.string.zen_mode_none_calls;
} else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CONVERSATIONS) {
return R.string.zen_mode_from_no_conversations;
}
return R.string.zen_mode_from_none;
return R.string.zen_mode_from_no_conversations;
}
protected int getConversationSummary() {
@@ -322,7 +322,7 @@ public class ZenModeBackend {
return R.string.zen_mode_from_starred;
case ZenPolicy.PEOPLE_TYPE_NONE:
default:
return R.string.zen_mode_from_none;
return R.string.zen_mode_none_calls;
}
}
@@ -337,7 +337,7 @@ public class ZenModeBackend {
return R.string.zen_mode_from_starred;
case ZenPolicy.PEOPLE_TYPE_NONE:
default:
return R.string.zen_mode_from_none;
return R.string.zen_mode_none_messages;
}
}
@@ -472,7 +472,7 @@ public class ZenModeBackend {
List<String> displayContacts = new ArrayList<>();
if (numStarredContacts == 0) {
displayContacts.add(context.getString(R.string.zen_mode_from_none));
displayContacts.add(context.getString(R.string.zen_mode_starred_contacts_summary_none));
} else {
for (int i = 0; i < 2 && i < numStarredContacts; i++) {
displayContacts.add(starredContacts.get(i));
@@ -494,10 +494,11 @@ public class ZenModeBackend {
String getContactsNumberSummary(Context context) {
final int numContacts = queryAllContactsData().getCount();
if (numContacts == 0) {
return context.getResources().getString(R.string.zen_mode_from_none);
return context.getResources().getString(
R.string.zen_mode_contacts_count_none);
}
return context.getResources().getString(R.string.zen_mode_contacts_senders_summary,
numContacts);
return context.getResources().getQuantityString(R.plurals.zen_mode_contacts_count,
numContacts, numContacts);
}
private Cursor queryStarredContactsData() {

View File

@@ -91,7 +91,9 @@ public class ZenModePrioritySendersPreferenceController
makeRadioPreference(KEY_ANY,
com.android.settings.R.string.zen_mode_from_anyone);
makeRadioPreference(KEY_NONE,
com.android.settings.R.string.zen_mode_from_none);
mIsMessages
? com.android.settings.R.string.zen_mode_none_messages
: com.android.settings.R.string.zen_mode_none_calls);
updateSummaries();
}

View File

@@ -91,7 +91,10 @@ public class ZenModeSendersImagePreferenceController
newImageRes = mIsMessages
? R.drawable.zen_messages_none
: R.drawable.zen_calls_none;
newContentDescription = mContext.getString(R.string.zen_mode_from_none);
newContentDescription =
mContext.getString(mIsMessages
? R.string.zen_mode_none_messages
: R.string.zen_mode_none_calls);
}
mImageView.setImageResource(newImageRes);

View File

@@ -156,7 +156,7 @@ public class ZenModeSettings extends ZenModeSettingsBase {
|| PRIORITY_CATEGORY_REPEAT_CALLERS == category, true);
int numCategories = enabledCategories.size();
if (numCategories == 0) {
return mContext.getString(R.string.zen_mode_from_none);
return mContext.getString(R.string.zen_mode_none_calls);
} else if (numCategories == 1) {
return mContext.getString(R.string.zen_mode_calls_summary_one,
enabledCategories.get(0));
@@ -172,7 +172,7 @@ public class ZenModeSettings extends ZenModeSettingsBase {
category -> PRIORITY_CATEGORY_MESSAGES == category, false);
int numCategories = enabledCategories.size();
if (numCategories == 0) {
return mContext.getString(R.string.zen_mode_from_none);
return mContext.getString(R.string.zen_mode_none_messages);
} else {
return enabledCategories.get(0);
}