From 087730eb76495d93dc8773c35833943ce7a964e4 Mon Sep 17 00:00:00 2001
From: Michael W <baddaemon87@gmail.com>
Date: Fri, 01 Mar 2019 12:36:08 +0100
Subject: [PATCH] Automatic translation import

Change-Id: I1f045f2d6474296c883180a78a4782470ff3e487
---

diff --git a/java/com/android/contacts/common/res/values-as-rIN/strings.xml b/java/com/android/contacts/common/res/values-as-rIN/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-ast-rES/strings.xml b/java/com/android/contacts/common/res/values-ast-rES/strings.xml
index 863d7bd..c5acbd0 100644
--- a/java/com/android/contacts/common/res/values-ast-rES/strings.xml
+++ b/java/com/android/contacts/common/res/values-ast-rES/strings.xml
@@ -16,356 +16,59 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
+  <string name="toast_text_copied">Copióse\'l testu</string>
+  <string name="copy_text">Copiar al cartafueyu</string>
+  <string name="call_custom">Llamar a <xliff:g id="Custom">%s</xliff:g>
+    </string>
+  <string name="call_home">Llamar a casa</string>
+  <string name="call_mobile">Llamar al móvil</string>
+  <string name="call_work">Llamar al trabayu</string>
+  <string name="call_fax_work">Llamar al fax del trabayu</string>
+  <string name="call_fax_home">Llamar al fax de casa</string>
+  <string name="call_pager">Llamar al busca</string>
+  <string name="call_other">Llamar</string>
+  <string name="call_callback">Llamar a un númberu de devolución de llamada</string>
+  <string name="call_car">Llamar al coche</string>
+  <string name="call_company_main">Llamar al teléfonu principal de la empresa</string>
+  <string name="call_isdn">Llamar a RDSI</string>
+  <string name="call_main">Llamar al teléfonu principal</string>
+  <string name="call_other_fax">Llamar al fax</string>
+  <string name="call_radio">Llamar a la radio</string>
+  <string name="call_telex">Llamar al télex</string>
+  <string name="call_tty_tdd">Llamar a TTY/TDD</string>
+  <string name="call_work_mobile">Llamar al móvil del trabayu</string>
+  <string name="call_work_pager">Llamar al busca del trabayu</string>
+  <string name="call_assistant">Llamar al <xliff:g id="Assistant">%s</xliff:g>    </string>
+  <string name="call_mms">Llamar a MMS</string>
+  <string name="call_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Llamar)</string>
+  <string name="sms_custom">Testu <xliff:g id="Custom">%s</xliff:g>    </string>
+  <string name="sms_home">Unviar Sms a casa</string>
+  <string name="sms_mobile">Unviar Sms al móvil</string>
+  <string name="sms_work">Unviar Sms al trabayu</string>
+  <string name="sms_fax_work">Unviar Sms al fax del trabayu</string>
+  <string name="sms_fax_home">Unviar Sms al fax de casa</string>
+  <string name="sms_pager">Unviar Sms al busca</string>
+  <string name="sms_other">Testu</string>
+  <string name="sms_callback">Unviar Sms a un númberu de devolución de llamada</string>
+  <string name="sms_car">Unviar Sms al coche</string>
+  <string name="sms_company_main">Unviar Sms al teléfonu principal de la empresa</string>
+  <string name="sms_isdn">Unviar SMS a RDSI</string>
+  <string name="sms_main">Unviar Sms al númberu de teléfonu principal</string>
+  <string name="sms_other_fax">Unviar Sms al fax</string>
+  <string name="sms_radio">Unviar Sms a la radio</string>
+  <string name="sms_telex">Unviar Sms al télex</string>
+  <string name="sms_tty_tdd">Unviar SMS a TTY/TDD</string>
+  <string name="sms_work_mobile">Unviar Sms al móvil del trabayu</string>
+  <string name="sms_work_pager">Unviar Sms al busca del trabayu</string>
+  <string name="sms_assistant">Unviar Sms al <xliff:g id="Assistant">%s</xliff:g>    </string>
+  <string name="sms_mms">Unviar SMS a MMS</string>
+  <string name="sms_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Unviar mensaxe)</string>
+  <string name="clearFrequentsConfirmation_title">¿Llimpiar contautos frecuentes?</string>
+  <string name="clearFrequentsConfirmation">Vas desaniciar la llista de persones coles que tas en
+        contautu nes apps de Contautos y Teléfonu. Arriendes, les tos apps de corréu van tener d\'afitar les tos preferencies dende
+        cero.
+    </string>
+  <string name="clearFrequentsProgress_title">Llimpiando contautos frecuentes</string>
+  <string name="status_away">Ausente</string>
   <string name="fail_reason_io_error">Fallu d\'E/S</string>
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
 </resources>
diff --git a/java/com/android/contacts/common/res/values-br-rFR/strings.xml b/java/com/android/contacts/common/res/values-br-rFR/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-csb/strings.xml b/java/com/android/contacts/common/res/values-csb/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-csb/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-cy/strings.xml b/java/com/android/contacts/common/res/values-cy/strings.xml
index bb57eca..e5e9483 100644
--- a/java/com/android/contacts/common/res/values-cy/strings.xml
+++ b/java/com/android/contacts/common/res/values-cy/strings.xml
@@ -16,129 +16,76 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
   <string name="toast_text_copied">Testun wedi\'i gopïo</string>
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
   <string name="copy_text">Copïo i\'r clipfwrdd</string>
-  <!-- Action string for calling a custom phone number -->
   <string name="call_custom">Galw
         <xliff:g id="custom">%s</xliff:g>
     </string>
-  <!-- Action string for calling a home phone number -->
   <string name="call_home">Galw cartref</string>
-  <!-- Action string for calling a mobile phone number -->
   <string name="call_mobile">Galw symudol</string>
-  <!-- Action string for calling a work phone number -->
   <string name="call_work">Galw gwaith</string>
-  <!-- Action string for calling a work fax phone number -->
   <string name="call_fax_work">Galw ffacs gwaith</string>
-  <!-- Action string for calling a home fax phone number -->
   <string name="call_fax_home">Galw ffacs cartref</string>
-  <!-- Action string for calling a pager phone number -->
   <string name="call_pager">Galw peiriant galw</string>
-  <!-- Action string for calling an other phone number -->
   <string name="call_other">Galw</string>
-  <!-- Action string for calling a callback number -->
   <string name="call_callback">Galw rhif galw nôl</string>
-  <!-- Action string for calling a car phone number -->
   <string name="call_car">Galw car</string>
-  <!-- Action string for calling a company main phone number -->
   <string name="call_company_main">Galw prif rif gwaith</string>
-  <!-- Action string for calling a ISDN phone number -->
   <string name="call_isdn">Galw ISDN</string>
-  <!-- Action string for calling a main phone number -->
   <string name="call_main">Galw prif rif</string>
-  <!-- Action string for calling an other fax phone number -->
   <string name="call_other_fax">Galw rhif ffacs</string>
-  <!-- Action string for calling a radio phone number -->
   <string name="call_radio">Galw rhif radio</string>
-  <!-- Action string for calling a Telex phone number -->
   <string name="call_telex">Galw rhif telex</string>
-  <!-- Action string for calling a TTY/TDD phone number -->
   <string name="call_tty_tdd">Galw rhif TTY/TDD</string>
-  <!-- Action string for calling a work mobile phone number -->
   <string name="call_work_mobile">Galw symudol gwaith</string>
-  <!-- Action string for calling a work pager phone number -->
   <string name="call_work_pager">Galw peiriant galw gwaith</string>
-  <!-- Action string for calling an assistant phone number -->
   <string name="call_assistant">Galw
         <xliff:g id="assistant">%s</xliff:g>
     </string>
-  <!-- Action string for calling a MMS phone number -->
   <string name="call_mms">Galw rhif MMS</string>
-  <!-- Action string for calling a contact by shortcut -->
   <string name="call_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Galw)</string>
-  <!-- Action string for sending an SMS to a custom phone number -->
   <string name="sms_custom">Tecstio
         <xliff:g id="custom">%s</xliff:g>
     </string>
-  <!-- Action string for sending an SMS to a home phone number -->
   <string name="sms_home">Tecstio cartref</string>
-  <!-- Action string for sending an SMS to a mobile phone number -->
   <string name="sms_mobile">Neges destun i symudol</string>
-  <!-- Action string for sending an SMS to a work phone number -->
   <string name="sms_work">Tecstio gwaith</string>
-  <!-- Action string for sending an SMS to a work fax phone number -->
   <string name="sms_fax_work">Tecstio ffacs gwaith</string>
-  <!-- Action string for sending an SMS to a home fax phone number -->
   <string name="sms_fax_home">Tecstio ffacs cartref</string>
-  <!-- Action string for sending an SMS to a pager phone number -->
   <string name="sms_pager">Tecstio peiriant galw</string>
-  <!-- Action string for sending an SMS to an other phone number -->
   <string name="sms_other">Tecstio</string>
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
+  <string name="sms_callback">Neges destun â chais i alw nôl</string>
   <string name="sms_car">Tecstio car</string>
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
+  <string name="sms_company_main">Neges destun at brif rif gwmni</string>
   <string name="sms_isdn">Tecstio ISDN</string>
-  <!-- Action string for sending an SMS to a main phone number -->
   <string name="sms_main">Tecstio prif rif</string>
-  <!-- Action string for sending an SMS to an other fax phone number -->
   <string name="sms_other_fax">Tecstio rhif ffacs</string>
-  <!-- Action string for sending an SMS to a radio phone number -->
   <string name="sms_radio">Tecstio rhif radio</string>
-  <!-- Action string for sending an SMS to a Telex phone number -->
   <string name="sms_telex">Tecstio rhif telex</string>
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
+  <string name="sms_tty_tdd">Neges destun at rif TTY/TDD</string>
+  <string name="sms_work_mobile">Neges destun at rif symudol gwaith</string>
+  <string name="sms_work_pager">Neges destun at beiriant galw gwaith</string>
+  <string name="sms_assistant">Neges destun at <xliff:g id="assistant">%s</xliff:g>
+    </string>
   <string name="sms_mms">Tecstio rhif MMS</string>
-  <!-- Action string for sending an SMS to a contact by shortcut -->
   <string name="sms_by_shortcut"><xliff:g id="contact_name">%s</xliff:g> (Neges)</string>
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
+  <string name="clearFrequentsConfirmation_title">Clirio\'r cysylltiadau y cysylltir â nhw\'n aml?</string>
   <string name="clearFrequentsConfirmation">Mi fydd hyn yn clirio\'r rhestr o gysylltiadau rwyt mewn cyswllt gyda nhw amlach o\'r rhestr yn yr apiau Cysylltiadau a Ffôn. Mi fydd hefyd yn gorfodi apiau e-bost i ail-ddysgu dy ddulliau cyfeirio atynt.    </string>
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
+  <string name="clearFrequentsProgress_title">Yn clirio\'r cysylltiadau y cysylltir â nhw\'n aml\u2026</string>
   <string name="status_available">Ar gael</string>
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
   <string name="status_away">I ffwrdd</string>
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
   <string name="status_busy">Yn brysur</string>
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
+  <string name="contactsList">Cysylltiadau</string>
+  <string name="contact_suggestions">Awgrymiadau Gorau</string>
   <string name="local_invisible_directory">Arall</string>
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
   <string name="directory_search_label">Cyfeiriadur</string>
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
+  <string name="directory_search_label_work">Cyfeiriadur gwaith</string>
   <string name="local_search_label">Pob cyswllt</string>
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
   <string name="local_suggestions_search_label">Awgrymiadau</string>
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
   <string msgid="9154761216179882405" name="user_profile_contacts_list_header">Fi</string>
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
+  <string name="search_results_searching">Yn chwilio\u2026</string>
+  <string name="foundTooManyContacts">Daethpwyd o hyd i fwy na <xliff:g id="count">%d</xliff:g>.</string>
   <string name="listFoundAllContactsZero">Dim cysylltiadau</string>
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
   <plurals name="searchFoundContacts">
     <item quantity="zero">canfuwyd <xliff:g id="count">%d</xliff:g></item>
     <item quantity="one">canfuwyd 1</item>
@@ -147,347 +94,174 @@
     <item quantity="many">canfuwyd <xliff:g id="count">%d</xliff:g></item>
     <item quantity="other">canfuwyd <xliff:g id="count">%d</xliff:g></item>
   </plurals>
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
+  <string name="description_quick_contact_for">Cyswllt cyflym ar gyfer <xliff:g id="name">%1$s</xliff:g></string>
   <string name="missing_name">(Dim enw)</string>
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
+  <string name="favoritesFrequentCalled">Galwir yn aml</string>
+  <string name="favoritesFrequentContacted">Cysylltir yn aml</string>
+  <string msgid="2795575601596468581" name="description_view_contact_detail">Gweld y cyswllt</string>
   <string name="list_filter_phones">Pob cyswllt gyda rhif ffôn</string>
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
+  <string name="list_filter_phones_work">Cysylltiadau proffil gwaith</string>
+  <string name="view_updates_from_group">Gweld diweddariadau</string>
+  <string name="account_phone">Dyfais yn unig, heb gysoni</string>
   <string name="nameLabelsGroup">Enw</string>
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
   <string name="nicknameLabelsGroup">Llysenw</string>
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
   <string name="full_name">Enw</string>
-  <!-- Field title for the given name of a contact -->
   <string name="name_given">Enw cyntaf</string>
-  <!-- Field title for the family name of a contact -->
   <string name="name_family">Cyfenw</string>
-  <!-- Field title for the prefix name of a contact -->
   <string name="name_prefix">Rhagddodiaid enw</string>
-  <!-- Field title for the middle name of a contact -->
   <string name="name_middle">Enw canol</string>
-  <!-- Field title for the suffix name of a contact -->
   <string name="name_suffix">Ôl-ddodiad enw</string>
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
+  <string name="name_phonetic">Enw\'n ffonetig</string>
+  <string name="name_phonetic_given">Enw cyntaf yn ffonetig</string>
+  <string name="name_phonetic_middle">Enw canol yn ffonetig</string>
+  <string name="name_phonetic_family">Cyfenw yn ffonetig</string>
   <string name="phoneLabelsGroup">Ffôn</string>
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
   <string name="emailLabelsGroup">Ebost</string>
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
   <string name="postalLabelsGroup">Cyfeiriad</string>
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
   <string name="imLabelsGroup">IM</string>
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
+  <string name="organizationLabelsGroup">Sefydliad</string>
+  <string name="relationLabelsGroup">Perthynas</string>
+  <string name="eventLabelsGroup">Dyddiad arbennig</string>
+  <string name="sms">Neges destun</string>
   <string name="postal_address">Cyfeiriad</string>
-  <!-- Hint text for the organization name when editing -->
   <string name="ghostData_company">Cwmni</string>
-  <!-- Hint text for the organization title when editing -->
   <string name="ghostData_title">Teitl</string>
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
   <string name="label_notes">Nodiadau</string>
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
   <string name="label_sip_address">SIP</string>
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
   <string name="websiteLabelsGroup">Gwefan</string>
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
   <string name="groupsLabel">Grwpiau</string>
-  <!-- Action string for sending an email to a home email address -->
   <string name="email_home">Ebost i gartref</string>
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
+  <string name="email_mobile">Ebost at symudol</string>
   <string name="email_work">Ebost i gwaith</string>
-  <!-- Action string for sending an email to an other email address -->
   <string name="email_other">Anfon ebost</string>
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
+  <string name="email_custom">Anfon ebost at <xliff:g id="custom">%s</xliff:g></string>
   <string name="email">Anfon ebost</string>
-  <!-- Field title for the street of a structured postal address of a contact -->
   <string name="postal_street">Stryd/Ffordd/Heol</string>
-  <!-- Field title for the PO box of a structured postal address of a contact -->
   <string name="postal_pobox">Blwch post</string>
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
   <string name="postal_neighborhood">Pentref/Ardal</string>
-  <!-- Field title for the city of a structured postal address of a contact -->
   <string name="postal_city">Tref/Dinas</string>
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
   <string name="postal_region">Sir/Talaith</string>
-  <!-- Field title for the postal code of a structured postal address of a contact -->
   <string name="postal_postcode">Cod post</string>
-  <!-- Field title for the country of a structured postal address of a contact -->
   <string name="postal_country">Gwlad</string>
-  <!-- Action string for viewing a home postal address -->
   <string name="map_home">Gweld cyfeiriad cartref</string>
-  <!-- Action string for viewing a work postal address -->
   <string name="map_work">Gweld cyfeiriad gwaith</string>
-  <!-- Action string for viewing an other postal address -->
   <string name="map_other">Gweld cyfeiriad</string>
-  <!-- Action string for viewing a custom postal address -->
   <string name="map_custom">Gweld cyfeiriad <xliff:g id="custom">%s</xliff:g></string>
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
+  <string name="chat_aim">Sgwrsio gydag AIM</string>
+  <string name="chat_msn">Sgwrsio gyda Windows Live</string>
+  <string name="chat_yahoo">Sgwrsio gyda Yahoo</string>
+  <string name="chat_skype">Sgwrsio gyda Skype</string>
+  <string name="chat_qq">Sgwrsio gyda QQ</string>
+  <string name="chat_gtalk">Sgwrsio gyda Google Talk</string>
+  <string name="chat_icq">Sgwrsio gydag ICQ</string>
+  <string name="chat_jabber">Sgwrsio gyda Jabber</string>
   <string name="chat">Sgwrsio</string>
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
   <string name="description_minus_button">dileu</string>
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
+  <string name="expand_collapse_name_fields_description">Ehangu neu leihau meysydd enwau</string>
+  <string name="expand_collapse_phonetic_name_fields_description">Ehangu neu cwympo meysydd enwau ffonetig</string>
   <string name="list_filter_all_accounts">Pob cyswllt</string>
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
   <string name="menu_done">Iawn</string>
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
   <string name="menu_doNotSave">Diddymu</string>
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
+  <string name="listAllContactsInAccount">Cysylltiadau yn <xliff:g example="abc@gmail.com" id="name">%s</xliff:g></string>
+  <string name="listCustomView">Cysylltiadau mewn golwg addasedig</string>
+  <string name="listSingleContact">Cyswllt sengl</string>
+  <string name="dialog_new_contact_account">Cadw\'r cysylltiadau a fewnforiwyd i:</string>
+  <string name="import_from_sim">Mewnforio o gerdyn SIM</string>
+  <string name="import_from_sim_summary">Mewnforio o SIM <xliff:g id="sim_name">^1</xliff:g> - <xliff:g id="sim_number">^2</xliff:g></string>
+  <string name="import_from_sim_summary_no_number">Mewnforio o SIM <xliff:g id="sim_name">%1$s</xliff:g></string>
+  <string name="import_from_vcf_file" product="default">Mewnforio o ffeil .vcf</string>
   <string name="cancel_import_confirmation_message">Diddymu mewnforio <xliff:g example="import.vcf" id="filename">%s</xliff:g>?</string>
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
   <string name="cancel_export_confirmation_message">Diddymu allforio <xliff:g example="export.vcf" id="filename">%s</xliff:g>?</string>
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
+  <string name="cancel_vcard_import_or_export_failed">Methwyd â diddymu mewnforio/allforio vCard</string>
+  <string name="fail_reason_unknown">Gwall anhysbys.</string>
+  <string name="fail_reason_could_not_open_file">Methwyd ag agor \"<xliff:g id="file_name">%s</xliff:g>": <xliff:g id="exact_reason">%s</xliff:g>.</string>
+  <string name="fail_reason_could_not_initialize_exporter">Methwyd â dechrau\'r allforiwr: \"<xliff:g id="exact_reason">%s</xliff:g>\".</string>
+  <string name="fail_reason_no_exportable_contact">Does dim cyswllt y gellir ei allforio.</string>
+  <string name="missing_required_permission">Rwyt wedi analluogi caniatâd sy\'n angenrheidiol.</string>
   <string name="fail_reason_error_occurred_during_export">Bu gwall wrth allforio: \"<xliff:g id="exact_reason">%s</xliff:g>\".</string>
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
+  <string name="fail_reason_too_long_filename">Mae enw\'r ffeil yn rhy hir (\"<xliff:g id="filename">%s</xliff:g>\").</string>
   <string name="fail_reason_io_error">Gwall I/O</string>
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
+  <string name="fail_reason_low_memory_during_import">Dim digon o gof. Gall fod y ffeil yn rhy fawr.</string>
+  <string name="fail_reason_vcard_parse_error">Methwyd â dosrannu\'r vCard am reswm annisgwyl.</string>
+  <string name="fail_reason_not_supported">Ni chefnogir y fformat hwn.</string>
+  <string name="fail_reason_failed_to_collect_vcard_meta_info">Methwyd â chasglu gwybodaeth meta o\'r ffeilu(iau) vCard dan sylw.</string>
   <string name="fail_reason_failed_to_read_files">Methwyd â mewnforio un neu ragor o ffeiliau (%s).</string>
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
+  <string name="exporting_vcard_finished_title">Wedi gorffen allforio <xliff:g example="export.vcf" id="filename">%s</xliff:g>.</string>
+  <string name="exporting_vcard_finished_title_fallback">Wedi cwblhau allforio cysylltiadau.</string>
+  <string name="exporting_vcard_finished_toast">Wedi gorffen allforio cysylltiadau. Clicia\'r hysbysiad i rannu\'r cysylltiadau.</string>
+  <string name="touch_to_share_contacts">Tapia i rannu cysylltiadau.</string>
+  <string name="exporting_vcard_canceled_title">Diddymwyd allforio <xliff:g example="export.vcf" id="filename">%s</xliff:g>.</string>
+  <string name="exporting_contact_list_title">Yn allforio data cyswllt</string>
+  <string name="exporting_contact_list_message">Mae data cysylltiadau yn cael ei allforio.</string>
+  <string name="composer_failed_to_get_database_infomation">Methwyd â chael gwybodaeth y gronfa ddata.</string>
+  <string name="composer_has_no_exportable_contact">Nid oes cysylltiadau y mae modd eu hallforio. Mae\'n bosib bod cysylltiadau ar dy ddyfais, ond mae rhai darparwyr data yn gwrthod allforio cysylltiadau o\'u dyfeisiau.</string>
+  <string name="composer_not_initialized">Methodd y cyfansoddwr vCard â dechrau\'n gywir.</string>
+  <string name="exporting_contact_failed_title">Methwyd ag allforio</string>
+  <string name="exporting_contact_failed_message">Ni chafodd data\'r cyswllt ei allforio.\nRheswm: \"<xliff:g id="fail_reason">%s</xliff:g>\"</string>
+  <string name="importing_vcard_description">Yn mewnforio <xliff:g example="Joe Due" id="name">%s</xliff:g></string>
+  <string name="reading_vcard_failed_title">Methwyd â darllen data vCard</string>
+  <string name="reading_vcard_canceled_title">Diddymwyd darllen data vCard</string>
+  <string name="importing_vcard_finished_title">Gwedi gorffen mewnforio vCard <xliff:g example="import.vcf" id="filename">%s</xliff:g></string>
+  <string name="importing_vcard_canceled_title">Diddymwyd mewnforio <xliff:g example="import.vcf" id="filename">%s</xliff:g></string>
   <string name="vcard_import_will_start_message">Caiff <xliff:g example="import.vcf" id="filename">%s</xliff:g> ei mewnforio\'n fuan.</string>
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
+  <string name="vcard_import_will_start_message_with_default_name">Caiff y ffeil ei mewnforio\'n fuan.</string>
+  <string name="vcard_import_request_rejected_message">Cafodd y cais i mewnforio vCard ei wrthod. Rho gynnig arall arni\'n hwyrach.</string>
   <string name="vcard_export_will_start_message">Caiff <xliff:g example="import.vcf" id="filename">%s</xliff:g> ei allforio\'n fuan.</string>
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
+  <string name="vcard_export_will_start_message_fallback">Caiff y ffeil ei allforio\'n fuan.</string>
+  <string name="contacts_export_will_start_message">Caiff cysylltiadau eu hallforio\'n fuan.</string>
+  <string name="vcard_export_request_rejected_message">Cafodd y cais i allforio vCard ei wrthod. Rho gynnig arall arni\'n hwyrach.</string>
   <string name="vcard_unknown_filename">cyswllt</string>
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
   <string name="caching_vcard_message">Yn cadw\'r ffeil(iau) vCard i storfa dros dro. Bydd y mewnforio ei hun yn dechrau\'n fuan.</string>
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
+  <string name="vcard_import_failed">Methwyd â mewnforio vCard.</string>
+  <string name="nfc_vcard_file_name">Wedi derbyn y cyswllt trwy NFC</string>
+  <string name="confirm_export_title">Allforio cysylltiadau?</string>
   <string name="caching_vcard_title">Cofio dros dro</string>
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
+  <string name="progress_notifier_message">Yn mewnforio <xliff:g id="current_number">%s</xliff:g>/<xliff:g id="total_number">%s</xliff:g>: <xliff:g example="Joe Due" id="name">%s</xliff:g></string>
+  <string name="export_to_vcf_file" product="default">Allforio i ffeil .vcf</string>
   <string name="display_options_sort_list_by">Trefnu yn ôl</string>
-  <!-- An allowable value for the "sort list by" contact display option  -->
   <string name="display_options_sort_by_given_name">Enw cyntaf</string>
-  <!-- An allowable value for the "sort list by" contact display option  -->
   <string name="display_options_sort_by_family_name">Cyfenw</string>
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <string name="display_options_view_names_as">Fformat enw</string>
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <string name="setting_about">Ymghylch Cysylltiadau</string>
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
+  <string name="display_options_view_names_as">Dangos enwau</string>
+  <string name="display_options_view_given_name_first">Enwau cyntaf yn gyntaf</string>
+  <string name="display_options_view_family_name_first">Cyfenw yn gyntaf</string>
+  <string name="default_editor_account">Cyfrif rhagosodedig ar gyfer cysylltiadau newydd</string>
+  <string name="sync_contact_metadata_dialog_title">Cysoni metaddata cysylltiadau</string>
+  <string name="setting_about">Ynghylch Cysylltiadau</string>
+  <string name="activity_title_settings">Gosodiadau</string>
+  <string name="share_visible_contacts">Rhannu\'r cysylltiadau gweladwy</string>
+  <string name="share_visible_contacts_failure">Methwyd â rhannu\'r cysylltiadau gweladwy.</string>
+  <string name="share_favorite_contacts">Rhannu hoff cysylltiadau</string>
+  <string name="share_contacts">Rhannu pob cyswllt</string>
+  <string name="share_contacts_failure">Methwyd â rhannu cysylltiadau.</string>
+  <string name="dialog_import_export">Mewnforio/allforio cysylltiadau</string>
+  <string name="dialog_import">Mewnforio cysylltiadau</string>
+  <string name="share_error">Ni ellir rhannu\'r cyswllt hwn.</string>
+  <string name="no_contact_to_share">Does dim cysylltiadau i\'w rhannu.</string>
+  <string name="menu_search">Chwilio</string>
+  <string name="hint_findContacts">Canfod cysylltiadau</string>
   <string name="contactsFavoritesLabel">Ffefrynnau</string>
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
   <string name="listTotalAllContactsZero">Dim cysylltiadau.</string>
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
+  <string name="listTotalAllContactsZeroCustom">Dim cysylltiadau i\'w dangos.</string>
   <string name="listTotalAllContactsZeroStarred">Dim ffefrynnau</string>
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
+  <string name="listTotalAllContactsZeroGroup">Dim cysylltiadau yn <xliff:g example="Friends" id="name">%s</xliff:g></string>
+  <string name="menu_clear_frequents">Clirio rhestr galw\'n aml</string>
+  <string name="menu_select_sim">Dewis cerdyn SIM</string>
   <string name="menu_accounts">Rheoli cyfrifon</string>
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
   <string name="menu_import_export">Mewnforio/Allforio</string>
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
   <string name="contact_status_update_attribution">gyda <xliff:g example="Google Talk" id="source">%1$s</xliff:g></string>
-  <!-- Attribution of a contact status update, when the time of update is known -->
   <string name="contact_status_update_attribution_with_date"><xliff:g example="3 hours ago" id="date">%1$s</xliff:g> gyda <xliff:g example="Google Talk" id="source">%2$s</xliff:g></string>
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
   <string name="action_menu_back_from_search">stopio chwilio</string>
-  <!--  String describing the icon used to clear the search field -->
   <string name="description_clear_search">Clirio\'r chwiliad</string>
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
   <string name="settings_contact_display_options_title">Dewisiadau dangos cysylltiadau</string>
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
   <string name="select_account_dialog_title">Cyfrif</string>
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
   <string name="set_default_account">Defnyddio hwn bob tro ar gyfer galwadau</string>
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
   <string name="select_phone_account_for_calls">Galw gyda</string>
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
   <string name="call_with_a_note">Galw gyda nodyn</string>
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
+  <string name="call_subject_hint">Rho nodyn i\'w anfon gyda\'r galwad...</string>
   <string name="send_and_call_button">ANFON A GALW</string>
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
   <string name="call_subject_limit"><xliff:g example="4" id="count">%1$s</xliff:g> / <xliff:g example="64" id="limit">%2$s</xliff:g></string>
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
   <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
-  <!-- String format to describe a tab e.g.call history tab. -->
   <string name="tab_title">tab <xliff:g id="title">%1$s</xliff:g>.</string>
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
   <plurals name="tab_title_with_unread_items">
     <item quantity="zero">            <xliff:g id="title">%1$s</xliff:g> tab. <xliff:g id="count">%2$d</xliff:g> eitemau heb eu darllen.
         </item>
@@ -502,30 +276,13 @@
     <item quantity="other">            <xliff:g id="title">%1$s</xliff:g> tab. <xliff:g id="count">%2$d</xliff:g> eitem heb eu darllen.
         </item>
   </plurals>
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
   <string name="about_build_version">Fersiwn adeiledd</string>
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
   <string name="about_open_source_licenses">Trwyddedau cod agored</string>
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
   <string name="about_open_source_licenses_summary">Manylion trwyddedau ar gyfer meddalwedd cod agored</string>
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
   <string name="about_privacy_policy">Polisi preifatrwydd</string>
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
   <string name="about_terms_of_service">Telerau gwasanaeth</string>
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
   <string name="activity_title_licenses">Trwyddedau cod agored</string>
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
   <string name="url_open_error_toast">Methwyd ag agor yr Url.</string>
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
   <string name="description_search_video_call">Galwad fideo</string>
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
   <string name="description_search_call_and_share">Rhannu a galw</string>
 </resources>
diff --git a/java/com/android/contacts/common/res/values-en-rPT/strings.xml b/java/com/android/contacts/common/res/values-en-rPT/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-eo/strings.xml b/java/com/android/contacts/common/res/values-eo/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-eo/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-es-rCO/strings.xml b/java/com/android/contacts/common/res/values-es-rCO/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-es-rMX/strings.xml b/java/com/android/contacts/common/res/values-es-rMX/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-fil/strings.xml b/java/com/android/contacts/common/res/values-fil/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-fil/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-frp/strings.xml b/java/com/android/contacts/common/res/values-frp/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-frp/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-fy-rNL/strings.xml b/java/com/android/contacts/common/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-ga-rIE/strings.xml b/java/com/android/contacts/common/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-gd/strings.xml b/java/com/android/contacts/common/res/values-gd/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-gd/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-kab-rDZ/strings.xml b/java/com/android/contacts/common/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-ku/strings.xml b/java/com/android/contacts/common/res/values-ku/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-ku/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-lb/strings.xml b/java/com/android/contacts/common/res/values-lb/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-lb/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-oc/strings.xml b/java/com/android/contacts/common/res/values-oc/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-oc/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-or-rIN/strings.xml b/java/com/android/contacts/common/res/values-or-rIN/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-rm/strings.xml b/java/com/android/contacts/common/res/values-rm/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-rm/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-sc-rIT/strings.xml b/java/com/android/contacts/common/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-ug/strings.xml b/java/com/android/contacts/common/res/values-ug/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-ug/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/contacts/common/res/values-vec/strings.xml b/java/com/android/contacts/common/res/values-vec/strings.xml
deleted file mode 100644
index 3b8da1e..0000000
--- a/java/com/android/contacts/common/res/values-vec/strings.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Toast shown when text is copied to the clipboard [CHAR LIMIT=64] -->
-  <!-- Option displayed in context menu to copy long pressed item to clipboard [CHAR LIMIT=64] -->
-  <!-- Action string for calling a custom phone number -->
-  <!-- Action string for calling a home phone number -->
-  <!-- Action string for calling a mobile phone number -->
-  <!-- Action string for calling a work phone number -->
-  <!-- Action string for calling a work fax phone number -->
-  <!-- Action string for calling a home fax phone number -->
-  <!-- Action string for calling a pager phone number -->
-  <!-- Action string for calling an other phone number -->
-  <!-- Action string for calling a callback number -->
-  <!-- Action string for calling a car phone number -->
-  <!-- Action string for calling a company main phone number -->
-  <!-- Action string for calling a ISDN phone number -->
-  <!-- Action string for calling a main phone number -->
-  <!-- Action string for calling an other fax phone number -->
-  <!-- Action string for calling a radio phone number -->
-  <!-- Action string for calling a Telex phone number -->
-  <!-- Action string for calling a TTY/TDD phone number -->
-  <!-- Action string for calling a work mobile phone number -->
-  <!-- Action string for calling a work pager phone number -->
-  <!-- Action string for calling an assistant phone number -->
-  <!-- Action string for calling a MMS phone number -->
-  <!-- Action string for calling a contact by shortcut -->
-  <!-- Action string for sending an SMS to a custom phone number -->
-  <!-- Action string for sending an SMS to a home phone number -->
-  <!-- Action string for sending an SMS to a mobile phone number -->
-  <!-- Action string for sending an SMS to a work phone number -->
-  <!-- Action string for sending an SMS to a work fax phone number -->
-  <!-- Action string for sending an SMS to a home fax phone number -->
-  <!-- Action string for sending an SMS to a pager phone number -->
-  <!-- Action string for sending an SMS to an other phone number -->
-  <!-- Action string for sending an SMS to a callback number -->
-  <!-- Action string for sending an SMS to a car phone number -->
-  <!-- Action string for sending an SMS to a company main phone number -->
-  <!-- Action string for sending an SMS to a ISDN phone number -->
-  <!-- Action string for sending an SMS to a main phone number -->
-  <!-- Action string for sending an SMS to an other fax phone number -->
-  <!-- Action string for sending an SMS to a radio phone number -->
-  <!-- Action string for sending an SMS to a Telex phone number -->
-  <!-- Action string for sending an SMS to a TTY/TDD phone number -->
-  <!-- Action string for sending an SMS to a work mobile phone number -->
-  <!-- Action string for sending an SMS to a work pager phone number -->
-  <!-- Action string for sending an SMS to an assistant phone number -->
-  <!-- Action string for sending an SMS to a MMS phone number -->
-  <!-- Action string for sending an SMS to a contact by shortcut -->
-  <!-- Title of the confirmation dialog for clearing frequents. [CHAR LIMIT=37] -->
-  <!-- Confirmation dialog for clearing frequents. [CHAR LIMIT=NONE] -->
-  <!-- Title of the "Clearing frequently contacted" progress-dialog [CHAR LIMIT=35] -->
-  <!--  Used to display as default status when the contact is available for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is away or idle for chat [CHAR LIMIT=19] -->
-  <!--  Used to display as default status when the contact is busy or Do not disturb for chat [CHAR LIMIT=19] -->
-  <!-- Directory partition name (also exists in contacts) -->
-  <!-- Directory partition name for p13n suggestions -->
-  <!-- The name of the invisible local contact directory -->
-  <!-- The label in section header in the contact list for a contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a work contact directory [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local contacts [CHAR LIMIT=128] -->
-  <!-- The label in section header in the contact list for a local suggested contacts [CHAR LIMIT=128] -->
-  <!-- String describing the text on the header of the profile contact in the contacts list
-       This may be programatically capitalized. [CHAR LIMIT=20] -->
-  <!-- Title shown in the search result activity of contacts app while searching.  [CHAR LIMIT=20]
-       (also in contacts) -->
-  <!-- Displayed at the top of search results indicating that more contacts were found than shown [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30]
-       (also in contacts) -->
-  <!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
-  <!-- String describing the text for photo of a contact in a contacts list.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Shown as the display name for a person when the name is missing or unknown. [CHAR LIMIT=18]-->
-  <!-- The text displayed on the divider for the Favorites tab in Phone app indicating that items below it are frequently called as opposed to starred contacts [CHAR LIMIT = 39] -->
-  <!-- The text displayed on the divider for the Favorites tab in People app indicating that items below it are frequently contacted [CHAR LIMIT = 39] -->
-  <!-- String describing a contact picture that introduces users to the contact detail screen.
-
-     Used by AccessibilityService to announce the purpose of the button.
-
-     [CHAR LIMIT=NONE]
-  -->
-  <!-- Contact list filter selection indicating that the list shows all contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Contact list filter selection indicating that the list shows all work contacts with phone numbers [CHAR LIMIT=64] -->
-  <!-- Button to view the updates from the current group on the group detail page [CHAR LIMIT=25] -->
-  <!-- Title for data source when creating or editing a contact that doesn't
-       belong to a specific account.  This contact will only exist on the device
-       and will not be synced. -->
-  <!-- Header that expands to list all name types when editing a structured name of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all nickname types when editing a nickname of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Field title for the full name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the given name of a contact -->
-  <!-- Field title for the family name of a contact -->
-  <!-- Field title for the prefix name of a contact -->
-  <!-- Field title for the middle name of a contact -->
-  <!-- Field title for the suffix name of a contact -->
-  <!-- Field title for the phonetic name of a contact [CHAR LIMIT=64]-->
-  <!-- Field title for the phonetic given name of a contact -->
-  <!-- Field title for the phonetic middle name of a contact -->
-  <!-- Field title for the phonetic family name of a contact -->
-  <!-- Header that expands to list all of the types of phone numbers when editing or creating a
-       phone number for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of email addresses when editing or creating
-       an email address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of postal addresses when editing or creating
-       an postal address for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all of the types of IM account when editing or creating an IM
-       account for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all organization types when editing an organization of a
-       contact [CHAR LIMIT=20] -->
-  <!-- Header for the list of all relationships for a contact [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all event types when editing an event of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Generic action string for text messaging a contact. Used by AccessibilityService to
-       announce the purpose of the view. [CHAR LIMIT=NONE] -->
-  <!-- Field title for the full postal address of a contact [CHAR LIMIT=64]-->
-  <!-- Hint text for the organization name when editing -->
-  <!-- Hint text for the organization title when editing -->
-  <!-- The label describing the Notes field of a contact. This field allows free form text entry
-       about a contact -->
-  <!-- The label describing the SIP address field of a contact. [CHAR LIMIT=20] -->
-  <!-- Header that expands to list all website types when editing a website of a contact
-       [CHAR LIMIT=20] -->
-  <!-- Header for the list of all groups for a contact [CHAR LIMIT=20] -->
-  <!-- Action string for sending an email to a home email address -->
-  <!-- Action string for sending an email to a mobile email address -->
-  <!-- Action string for sending an email to a work email address -->
-  <!-- Action string for sending an email to an other email address -->
-  <!-- Action string for sending an email to a custom email address -->
-  <!-- Generic action string for sending an email -->
-  <!-- Field title for the street of a structured postal address of a contact -->
-  <!-- Field title for the PO box of a structured postal address of a contact -->
-  <!-- Field title for the neighborhood of a structured postal address of a contact -->
-  <!-- Field title for the city of a structured postal address of a contact -->
-  <!-- Field title for the region, or state, of a structured postal address of a contact -->
-  <!-- Field title for the postal code of a structured postal address of a contact -->
-  <!-- Field title for the country of a structured postal address of a contact -->
-  <!-- Action string for viewing a home postal address -->
-  <!-- Action string for viewing a work postal address -->
-  <!-- Action string for viewing an other postal address -->
-  <!-- Action string for viewing a custom postal address -->
-  <!-- Action string for starting an IM chat with the AIM protocol -->
-  <!-- Action string for starting an IM chat with the MSN or Windows Live protocol -->
-  <!-- Action string for starting an IM chat with the Yahoo protocol -->
-  <!-- Action string for starting an IM chat with the Skype protocol -->
-  <!-- Action string for starting an IM chat with the QQ protocol -->
-  <!-- Action string for starting an IM chat with the Google Talk protocol -->
-  <!-- Action string for starting an IM chat with the ICQ protocol -->
-  <!-- Action string for starting an IM chat with the Jabber protocol -->
-  <!-- Generic action string for starting an IM chat -->
-  <!-- String describing the Contact Editor Minus button
-
-       Used by AccessibilityService to announce the purpose of the button.
-
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Content description for the expand or collapse name fields button.
-       Clicking this button causes the name editor to toggle between showing
-       a single field where the entire name is edited at once, or multiple
-       fields corresponding to each part of the name (Name Prefix, First Name,
-       Middle Name, Last Name, Name Suffix).
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the expand or collapse phonetic name fields button. [CHAR LIMIT=100] -->
-  <!-- Contact list filter label indicating that the list is showing all available accounts [CHAR LIMIT=64] -->
-  <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
-  <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
-  <!-- Displayed at the top of the contacts showing the account filter selected  [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Displayed at the top of the contacts showing single contact. [CHAR LIMIT=64] -->
-  <!-- Message asking user to select an account to save contacts imported from vcard or SIM card [CHAR LIMIT=64] -->
-  <!-- Action string for selecting SIM for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts -->
-  <!-- Action string for selecting a SIM subscription for importing contacts, without a phone number -->
-  <!-- Action string for selecting a .vcf file to import contacts from [CHAR LIMIT=30] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard import.
-       The argument is file name for the vCard import the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Message shown in a Dialog confirming a user's cancel request toward existing vCard export.
-       The argument is file name for the vCard export the user wants to cancel.
-       [CHAR LIMIT=128] -->
-  <!-- Title shown in a Dialog telling users cancel vCard import/export operation is failed. [CHAR LIMIT=40] -->
-  <!-- The failed reason which should not be shown but it may in some buggy condition. [CHAR LIMIT=40] -->
-  <!-- The failed reason shown when vCard importer/exporter could not open the file
-       specified by a user. The file name should be in the message. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when contacts exporter fails to be initialized.
-       Some exact reason must follow this. [CHAR LIMIT=NONE]-->
-  <!-- The failed reason shown when there's no contact which is allowed to be exported.
-       Note that user may have contacts data but all of them are probably not allowed to be
-       exported because of security/permission reasons. [CHAR LIMIT=NONE] -->
-  <!-- The user doesn't have all permissions required to use the current screen. So
-       close the current screen and show the user this message. -->
-  <!-- The failed reason shown when some error happend during contacts export.
-       Some exact reason must follow this. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when the given file name is too long for the system.
-       The length limit of each file is different in each Android device, so we don't need to
-       mention it here. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when Contacts app (especially vCard importer/exporter)
-       emitted some I/O error. Exact reason will be appended by the system. [CHAR LIMIT=NONE] -->
-  <!-- Failure reason show when Contacts app (especially vCard importer) encountered
-       low memory problem and could not proceed its import procedure. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard parser was not able to be parsed by the current vCard
-       implementation. This might happen even when the input vCard is completely valid, though
-       we believe it is rather rare in the actual world. [CHAR LIMIT=NONE] -->
-  <!-- The failed reason shown when vCard importer doesn't support the format.
-       This may be shown when the vCard is corrupted [CHAR LIMIT=40] -->
-  <!-- Fail reason shown when vCard importer failed to look over meta information stored in vCard file(s). -->
-  <!-- The failed reason shown when the import of some of vCard files failed during multiple vCard
-       files import. It includes the case where all files were failed to be imported. -->
-  <!-- The title shown when exporting vCard is successfuly finished [CHAR LIMIT=40] -->
-  <!-- The title shown when exporting vCard has finished successfully but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The toast message shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=150]-->
-  <!-- The message on notification shown when exporting vCard has finished and vCards are ready to be shared [CHAR LIMIT=60]-->
-  <!-- The title shown when exporting vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- Dialog title shown when the application is exporting contact data outside. [CHAR LIMIT=NONE] -->
-  <!-- Message shown when the application is exporting contact data outside -->
-  <!-- The error reason the vCard composer "may" emit when database is corrupted or
-       something is going wrong. Usually users should not see this text. [CHAR LIMIT=NONE] -->
-  <!-- This error message shown when the user actually have no contact
-       (e.g. just after data-wiping), or, data providers of the contact list prohibits their
-       contacts from being exported to outside world via vcard exporter, etc. [CHAR LIMIT=NONE] -->
-  <!-- The error reason the vCard composer may emit when vCard composer is not initialized
-       even when needed.
-       Users should not usually see this error message. [CHAR LIMIT=NONE] -->
-  <!-- Dialog title shown when exporting Contact data failed. [CHAR LIMIT=20] -->
-  <!-- Dialog message shown when exporting Contact data failed. [CHAR LIMIT=NONE] -->
-  <!-- Description shown when importing vCard data.
-       The argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Dialog title shown when reading vCard data failed [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard is canceled (probably by a user)
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when reading vCard finished
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The title shown when importing vCard is canceled (probably by a user)
-       The argument is file name the user canceled importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user imported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when vCard import request is accepted. The system may start that work soon, or do it later when there are already other import/export requests.
-       "The file" is what a user selected for importing.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a given vCard import request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when vCard export request is accepted. The system may start that work soon, or do it later
-       when there are already other import/export requests.
-       The argument is file name the user exported.
-       [CHAR LIMIT=40] -->
-  <!-- The message shown when a vCard export request is accepted but the destination filename could not be resolved. [CHAR LIMIT=NONE] -->
-  <!-- The message shown when a vCard export request is accepted and contacts will be exported shortly. [CHAR LIMIT=70]-->
-  <!-- The message shown when a given vCard export request is rejected by the system. [CHAR LIMIT=NONE] -->
-  <!-- Used when file name is unknown in vCard processing. It typically happens
-       when the file is given outside the Contacts app. [CHAR LIMIT=30] -->
-  <!-- The message shown when vCard importer is caching files to be imported into local temporary
-       data storage. [CHAR LIMIT=NONE] -->
-  <!-- Message used when vCard import has failed. [CHAR LIMIT=40] -->
-  <!-- The "file name" displayed for vCards received directly via NFC [CHAR LIMIT=16] -->
-  <!-- Dialog title shown when a user confirms whether he/she export Contact data. [CHAR LIMIT=32] -->
-  <!-- The title shown when vCard importer is caching files to be imported into local temporary
-       data storage.  [CHAR LIMIT=40] -->
-  <!-- The message shown while importing vCard(s).
-       First argument is current index of contacts to be imported.
-       Second argument is the total number of contacts.
-       Third argument is the name of a contact which is being read.
-       [CHAR LIMIT=20] -->
-  <!-- Action that exports all contacts to a user selected destination. [CHAR LIMIT=25] -->
-  <!-- Contact preferences related strings -->
-  <!-- Label of the "sort by" display option -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- An allowable value for the "sort list by" contact display option  -->
-  <!-- Label of the "name format" display option [CHAR LIMIT=64]-->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!-- An allowable value for the "view names as" contact display option  -->
-  <!--Label of the "default account" setting option to set default editor account. [CHAR LIMIT=80]-->
-  <!--Label of the "Sync contact metadata" setting dialog to set sync account for Lychee. [CHAR LIMIT=80]-->
-  <!-- Label of the "About" setting -->
-  <!-- Title of the settings activity [CHAR LIMIT=64] -->
-  <!-- Action that shares visible contacts -->
-  <!-- A framework exception (ie, transaction too large) can be thrown while attempting to share all visible contacts. If so, show this toast. -->
-  <!-- Action that shares favorite contacts [CHAR LIMIT=40]-->
-  <!-- Action that shares contacts [CHAR LIMIT=30]-->
-  <!-- A framework exception can be thrown while attempting to share all contacts. If so, show this toast. [CHAR LIMIT=40]-->
-  <!-- Dialog title when selecting the bulk operation to perform from a list. [CHAR LIMIT=36] -->
-  <!-- Dialog title when importing contacts from an external source. [CHAR LIMIT=36] -->
-  <!-- Toast indicating that sharing a contact has failed. [CHAR LIMIT=NONE]  -->
-  <!-- Toast indicating that no visible contact to share [CHAR LIMIT=NONE]  -->
-  <!-- Menu item to search contacts -->
-  <!-- Query hint displayed inside the search field [CHAR LIMIT=64] -->
-  <!-- The description text for the favorites tab.
-
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE] -->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "All contacts" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when "Custom" is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when starred contact list is selected  [CHAR LIMIT=64]-->
-  <!-- Displayed at the top of the contacts showing the zero total number of contacts visible when a group or account is selected  [CHAR LIMIT=64]-->
-  <!--  The menu item to clear frequents [CHAR LIMIT=30] -->
-  <!-- Menu item to select SIM card -->
-  <!-- The menu item to open the list of accounts. [CHAR LIMIT=60]-->
-  <!-- The menu item to bulk import or bulk export contacts from SIM card or SD card.  [CHAR LIMIT=30]-->
-  <!-- The font-family to use for tab text. -->
-  <!-- Attribution of a contact status update, when the time of update is unknown -->
-  <!-- Attribution of a contact status update, when the time of update is known -->
-  <!-- Font family used when drawing letters for letter tile avatars. -->
-  <!-- Content description for the fake action menu up button as used
-   inside search. [CHAR LIMIT=NONE] -->
-  <!--  String describing the icon used to clear the search field -->
-  <!-- The font-family to use for the text inside the searchbox. -->
-  <!-- The title of the preference section that allows users to configure how they want their
-       contacts to be displayed. [CHAR LIMIT=128] -->
-  <!-- Title for Select Account Dialog [CHAR LIMIT=30] -->
-  <!-- Label for the check box to toggle default sim card setting [CHAR LIMIT=35]-->
-  <!-- Title for dialog to select Phone Account for outgoing call.  [CHAR LIMIT=40] -->
-  <!-- String used for actions in the dialer call log and the quick contact card to initiate
-       a call to an individual.  The user is prompted to enter a note which is sent along with
-       the call (e.g. a call subject). [CHAR LIMIT=40] -->
-  <!-- Hint text shown in the call subject dialog. [CHAR LIMIT=255] -->
-  <!-- Button used to start a new call with the user entered subject. [CHAR LIMIT=32] -->
-  <!-- String used to represent the total number of characters entered for a call subject,
-       compared to the character limit.  Example: 2 / 64 -->
-  <!-- String used to build a phone number type and phone number string.
-       Example: Mobile 650-555-1212  -->
-  <!-- String format to describe a tab e.g.call history tab. -->
-  <!-- String format to describe the number of unread items in a tab.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- Build version title in About preference. [CHAR LIMIT=40]-->
-  <!-- Open source licenses title in About preference. [CHAR LIMIT=60] -->
-  <!-- Open source licenses summary in About preference. [CHAR LIMIT=NONE] -->
-  <!-- Privacy policy title in About preference. [CHAR LIMIT=40]-->
-  <!-- Terms of service title in about preference. [CHAR LIMIT=60]-->
-  <!-- Title for the activity that displays licenses for open source libraries. [CHAR LIMIT=100]-->
-  <!-- Toast message showing when failed to open the url. [CHAR LIMIT=100]-->
-  <!-- Description string for an action button to initiate a video call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-  <!-- Description string for an action button to initiate an enriched call from search results.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       This is especially valuable for views without textual representation like ImageView.
-
-       [CHAR LIMIT=NONE]-->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-as-rIN/strings.xml b/java/com/android/dialer/about/res/values-as-rIN/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-ast-rES/strings.xml b/java/com/android/dialer/about/res/values-ast-rES/strings.xml
index 9f0df8a..14332ed 100644
--- a/java/com/android/dialer/about/res/values-ast-rES/strings.xml
+++ b/java/com/android/dialer/about/res/values-ast-rES/strings.xml
@@ -1,22 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
 <resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
   <string name="build_version_label">Versión de compilación</string>
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
   <string name="licenseActivityLabel">Llicencies de códigu abiertu</string>
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
   <string name="privacy_policy_label">Política de privacidá</string>
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
   <string name="terms_of_service_label">Términos del serviciu</string>
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
 </resources>
diff --git a/java/com/android/dialer/about/res/values-br-rFR/strings.xml b/java/com/android/dialer/about/res/values-br-rFR/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-csb/strings.xml b/java/com/android/dialer/about/res/values-csb/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-csb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-cy/strings.xml b/java/com/android/dialer/about/res/values-cy/strings.xml
index d6deb70..31c6a41 100644
--- a/java/com/android/dialer/about/res/values-cy/strings.xml
+++ b/java/com/android/dialer/about/res/values-cy/strings.xml
@@ -1,23 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
 <resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
   <string name="build_version_label">Fersiwn adeiledd</string>
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
   <string name="open_source_license_detail_label">Manylion trwyddedau ar gyfer meddalwedd cod agored</string>
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
   <string name="licenseActivityLabel">Trwyddedau cod agored</string>
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
   <string name="privacy_policy_label">Polisi preifatrwydd</string>
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
   <string name="terms_of_service_label">Telerau gwasanaeth</string>
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
 </resources>
diff --git a/java/com/android/dialer/about/res/values-en-rPT/strings.xml b/java/com/android/dialer/about/res/values-en-rPT/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-eo/strings.xml b/java/com/android/dialer/about/res/values-eo/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-eo/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-es-rCO/strings.xml b/java/com/android/dialer/about/res/values-es-rCO/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-es-rMX/strings.xml b/java/com/android/dialer/about/res/values-es-rMX/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-fil/strings.xml b/java/com/android/dialer/about/res/values-fil/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-fil/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-frp/strings.xml b/java/com/android/dialer/about/res/values-frp/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-frp/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-fy-rNL/strings.xml b/java/com/android/dialer/about/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-ga-rIE/strings.xml b/java/com/android/dialer/about/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-gd/strings.xml b/java/com/android/dialer/about/res/values-gd/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-gd/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/about/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-ku/strings.xml b/java/com/android/dialer/about/res/values-ku/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-ku/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-lb/strings.xml b/java/com/android/dialer/about/res/values-lb/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-lb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-oc/strings.xml b/java/com/android/dialer/about/res/values-oc/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-oc/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-or-rIN/strings.xml b/java/com/android/dialer/about/res/values-or-rIN/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-rm/strings.xml b/java/com/android/dialer/about/res/values-rm/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-rm/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-sc-rIT/strings.xml b/java/com/android/dialer/about/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-ug/strings.xml b/java/com/android/dialer/about/res/values-ug/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-ug/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/about/res/values-vec/strings.xml b/java/com/android/dialer/about/res/values-vec/strings.xml
deleted file mode 100644
index 4be5c2f..0000000
--- a/java/com/android/dialer/about/res/values-vec/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Internal preferences key for displaying the build version -->
-  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
-  <!-- Internal preferences key for displaying the open source license
-       libraries -->
-  <!-- Detail label text shown on the About Phone screen to supplement 
-       @string/licenseActivityLabel -->
-  <!-- Title for the activity that displays licenses for open source libraries used in the
-       application. -->
-  <!-- Internal preferences key for displaying the privacy policy -->
-  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
-  <!-- URL for privacy policy -->
-  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
-  <!-- Internal preferences key for displaying the terms of service-->
-  <!-- URL for terms of service -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-af/cm_strings.xml b/java/com/android/dialer/app/res/values-af/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-am/cm_strings.xml b/java/com/android/dialer/app/res/values-am/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-as-rIN/cm_strings.xml b/java/com/android/dialer/app/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-as-rIN/strings.xml b/java/com/android/dialer/app/res/values-as-rIN/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-ast-rES/strings.xml b/java/com/android/dialer/app/res/values-ast-rES/strings.xml
index 070ebc9..09f0fb7 100644
--- a/java/com/android/dialer/app/res/values-ast-rES/strings.xml
+++ b/java/com/android/dialer/app/res/values-ast-rES/strings.xml
@@ -16,452 +16,127 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
+  <string name="action_report_number">Informar de númberu imprecisu</string>
+  <string name="action_copy_number_text">Copiar númberu</string>
+  <string name="copy_transcript_text">Copiar trescripción</string>
+  <string name="action_block_number">Bloquiar númberu</string>
+  <string name="action_unblock_number">Desbloquiar númberu</string>
+  <string name="action_edit_number_before_call">Editar númberu enantes de llamar</string>
+  <string name="call_log_delete_all">Llimpiar historial de llamaes</string>
+  <string name="call_log_trash_voicemail">Desaniciar mensaxe de voz</string>
+  <string name="snackbar_voicemail_deleted">Desanicióse\'l mensaxe de voz</string>
+  <string name="snackbar_voicemail_deleted_undo">DESFACER</string>
+  <string name="clearCallLogConfirmation_title">¿Llimpiar historial de llamaes?</string>
+  <string name="clearCallLogConfirmation">Esto desaniciará toles llamaes del to historial</string>
+  <string name="clearCallLogProgress_title">Llimpiando historial de llamaes\u2026</string>
+  <string name="notification_missedWorkCallTitle">Perdióse la llamada\'l trabayu</string>
+  <string name="notification_missedCallsMsg"><xliff:g id="num_missed_calls">%d</xliff:g> llamaes perdíes</string>
+  <string name="notification_missedCall_call_back">Llamar</string>
+  <string name="notification_missedCall_message">Mensaxe</string>
+  <string name="post_call_notification_message"><xliff:g id="name">%1$s</xliff:g><xliff:g id="message">%2$s</xliff:g></string>
+  <string name="notification_voicemail_text_format">Marcar <xliff:g id="voicemail_number">%s</xliff:g></string>
+  <string name="notification_voicemail_no_vm_number">Númberu del buzón de voz desconocíu</string>
+  <plurals name="notification_voicemail_title">
+    <item quantity="one">Mensaxe de voz</item>
+    <item quantity="other"><xliff:g id="Count">%1$d</xliff:g> mensaxes de voz        </item>
+  </plurals>
+  <string name="notification_action_voicemail_play">Reproducir</string>
+  <string name="notification_voicemail_callers_list"><xliff:g id="newer_callers">%1$s</xliff:g>,
+<xliff:g id="older_caller">%2$s</xliff:g>
+    </string>
+  <string name="notification_new_voicemail_ticker">Mensaxe de voz nuevu de <xliff:g id="caller">%1$s</xliff:g>    </string>
+  <string name="voicemail_playback_error">Nun pudo reproducise\'l corréu de voz</string>
+  <string name="voicemail_fetching_content">Cargando corréu de voz\u2026</string>
+  <string name="voicemail_archiving_content">Archivando mensaxe de voz\u2026</string>
+  <string name="voicemail_fetching_timout">Nun pudo cargase\'l corréu de voz</string>
+  <string name="call_log_voicemail_header">Namái llamaes con mensaxes de voz</string>
+  <string name="call_log_incoming_header">Namái llamaes entrantes</string>
+  <string name="call_log_outgoing_header">Namái llamaes salientes</string>
+  <string name="call_log_missed_header">Namái llamaes perdíes</string>
+  <string name="call_log_item_count_and_date">(<xliff:g id="count">%1$d</xliff:g>)
+        <xliff:g id="date">%2$s</xliff:g>
+    </string>
+  <string name="description_search_button">guetar</string>
+  <string name="description_dial_button">marcar</string>
+  <string name="description_digits_edittext">númberu que va a marcase</string>
+  <string name="description_playback_start_stop">Aniciar o parar reproducción</string>
+  <string name="description_playback_speakerphone">Activar o desactivar l\'altavoz</string>
+  <string name="description_playback_seek">Guetar posición de reproducción</string>
+  <string name="description_rate_decrease">Amenorgar la velocidá de reproducción</string>
+  <string name="description_rate_increase">Aumentar la velocidá de reproducción</string>
+  <string name="action_menu_call_history_description">Historial de llamaes</string>
+  <string name="menu_show_outgoing_only">Amosar namái llamaes salientes</string>
+  <string name="menu_show_incoming_only">Amosar namái llamaes entrantes</string>
+  <string name="menu_show_missed_only">Amosar namái llamaes perdíes</string>
+  <string name="menu_show_voicemails_only">Namái mensaxes de voz</string>
+  <string name="menu_show_all_calls">Amosar toles llamaes</string>
+  <string name="add_2sec_pause">Amestar posa de 2 segundos</string>
+  <string name="add_wait">Amestar espera</string>
+  <string name="dialer_settings_label">Axustes</string>
+  <string name="favorite_hidden">Desaniciáu de favoritos</string>
+  <string name="search_shortcut_call_number">Llamar a <xliff:g id="Number">%s</xliff:g>    </string>
+  <string name="search_shortcut_create_new_contact">Crear contautu nuevu</string>
+  <string name="search_shortcut_add_to_contact">Amestar a un contautu</string>
+  <string name="num_missed_calls"><xliff:g id="Number">%s</xliff:g> llamaes perdíes nueves</string>
+  <string name="speed_dial_empty">Entá nun hai naide nel to marcador rápidu</string>
+  <string name="speed_dial_empty_add_favorite_action">Amestar un favoritu</string>
+  <string name="contact_tooltip">Calca na imaxe pa ver tolos númberos o calca &amp; espera pa volver a mandalo</string>
+  <string name="call_log_action_send_message">Unviar un mensaxe</string>
+  <string name="call_log_action_details">Detalles de la llamada</string>
+  <string name="call_log_action_call">        Llamar<xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_incoming_missed_call">Llamada perdida de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
+  <string name="description_incoming_answered_call">Llamada retrucada de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
+  <string name="description_unread_voicemail">Mensaxe de voz ensin lleer de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
+  <string name="description_read_voicemail">Mensaxe de voz de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
+  <string name="description_outgoing_call">Llamar a <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
+  <string name="call_log_via_number">per <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g></string>
+  <string name="call_log_via_number_phone_account"><xliff:g example="SIM 1" id="phoneAccount">%1$s</xliff:g> per <xliff:g example="(555) 555-5555" id="number">%2$s</xliff:g></string>
+  <string name="description_call_action">        Llamar<xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_video_call_action">        Videullamada<xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>.
+    </string>
+  <string name="description_voicemail_action">        Escuchar el mensaxe de voz de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_voicemail_play">        Reproducir el mensaxe de voz de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_voicemail_pause">        Pausar el mensaxe de voz de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_voicemail_delete">        Desaniciar el mensaxe de voz de <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <plurals name="description_voicemail_unread">
+    <item quantity="one"><xliff:g id="count">%d</xliff:g> mensaxe de voz nuevu</item>
+    <item quantity="other"><xliff:g id="count">%d</xliff:g> mensaxes de voz nuevos</item>
+  </plurals>
+  <string name="description_create_new_contact_action">        Crear contautu pa <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="description_add_to_existing_contact_action">        Amestar <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g> a contautu esistente 
+    </string>
+  <string name="description_details_action">        Detalles de llamada pa <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
+    </string>
+  <string name="toast_entry_removed">Desaniciáu del historial de llamaes</string>
+  <string name="call_log_header_other">Más antigua</string>
+  <string name="call_detail_list_header">Llista de llamaes</string>
+  <string name="voicemail_speaker_on">Activar altavoz.</string>
+  <string name="voicemail_speaker_off">Desactivar altavoz.</string>
+  <string name="voicemail_play_faster">Reproducir más rápido.</string>
+  <string name="voicemail_play_slower">Reproducir más sele.</string>
+  <string name="voicemail_play_start_pause">Aniciar o posar reproducción.</string>
+  <string name="display_options_title">Opciones d\'amuesa</string>
+  <string name="sounds_and_vibration_title">Soníos y vibración</string>
+  <string name="accessibility_settings_title">Accesibilidá</string>
+  <string name="ringtone_title">Tonu del teléfonu</string>
+  <string name="vibrate_on_ring_title">Vibrar tamién nes llamaes</string>
+  <string name="dtmf_tone_enable_title">Tonos del tecláu</string>
+  <string name="dtmf_tone_length_title">Llargor del tonu del tecláu</string>
+  <string-array name="dtmf_tone_length_entries">
+    <item>Normal</item>
+    <item>Llargu</item>
+  </string-array>
+  <string name="respond_via_sms_setting_title">Rempuestes rápides</string>
+  <string name="call_settings_label">Llamaes</string>
+  <string name="manage_blocked_numbers_label">Bloquéu de llamaes</string>
+  <string name="voicemail_settings_label">Mensaxe de voz</string>
+  <string name="voicemail_settings_select_sim_title">Escueyi SIM pa los axustes del corréu de voz</string>
+  <string name="blocked_numbers_disabled_emergency_header_label">Torga de llamaes apagáu temporalmente    </string>
 </resources>
diff --git a/java/com/android/dialer/app/res/values-az/cm_strings.xml b/java/com/android/dialer/app/res/values-az/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-be/cm_strings.xml b/java/com/android/dialer/app/res/values-be/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-bn/cm_strings.xml b/java/com/android/dialer/app/res/values-bn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-br-rFR/cm_strings.xml b/java/com/android/dialer/app/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-br-rFR/strings.xml b/java/com/android/dialer/app/res/values-br-rFR/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-bs/cm_strings.xml b/java/com/android/dialer/app/res/values-bs/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-csb/cm_strings.xml b/java/com/android/dialer/app/res/values-csb/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-csb/strings.xml b/java/com/android/dialer/app/res/values-csb/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-csb/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-cy/cm_strings.xml b/java/com/android/dialer/app/res/values-cy/cm_strings.xml
index 99acdd2..e926bab 100644
--- a/java/com/android/dialer/app/res/values-cy/cm_strings.xml
+++ b/java/com/android/dialer/app/res/values-cy/cm_strings.xml
@@ -23,7 +23,7 @@
     <string name="incall_vibrate_call_waiting_title">Dirgrynu wrth i alwad aros</string>
     <string name="incall_vibrate_hangup_title">Dirgrynu wrth orffen yr alwad</string>
     <string name="incall_vibrate_45_title">Dirgrynu pob munud</string>
-    <string name="incall_vibrate_45_summary">Mae\'n dirgrynu ar eiliad 45 o bob munud yn ystod galwadau allan</string>
+    <string name="incall_vibrate_45_summary">Dirgrynu ar 45ain eiliad pob munud yn ystod galwadau allan</string>
     <string name="incall_dnd_dialog_message">Er mwyn galluogi Dim Tarfu, mae\'n rhaid rhoi caniatâd i\'r ap Ffôn medru rheoli statws Dim Tarfu.\nRho ganiatâd iddo.</string>
     <string name="allow">Caniatáu</string>
     <string name="deny">Gwrthod</string>
diff --git a/java/com/android/dialer/app/res/values-cy/strings.xml b/java/com/android/dialer/app/res/values-cy/strings.xml
index 97042cd..41f73f9 100644
--- a/java/com/android/dialer/app/res/values-cy/strings.xml
+++ b/java/com/android/dialer/app/res/values-cy/strings.xml
@@ -16,80 +16,33 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
   <string name="applicationLabel">Ffôn</string>
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
+  <string name="launcherDialpadActivityLabel">Pad Deialu Ffôn</string>
   <string name="dialerIconLabel">Ffôn</string>
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
   <string name="callHistoryIconLabel">Hanes galwadau</string>
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
   <string name="action_report_number">Rhoi gwybod am rif anghywir</string>
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
   <string name="action_copy_number_text">Copïo\'r rhif</string>
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
   <string name="copy_transcript_text">Copïo\'r trawsgrifiad</string>
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
   <string name="action_block_number">Rhwystro\'r rhif</string>
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
   <string name="action_unblock_number">Dadrwystro\'r rhif</string>
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
   <string name="action_edit_number_before_call">Golygu\'r rhif cyn galw</string>
-  <!-- Menu item used to remove all calls from the call log -->
   <string name="call_log_delete_all">Clirio hanes galwadau</string>
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
   <string name="call_log_trash_voicemail">Dileu neges lleisbost</string>
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
   <string name="snackbar_voicemail_deleted">Neges lleisbost wedi ei dileu</string>
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
   <string name="snackbar_voicemail_deleted_undo">DADWNEUD</string>
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
   <string name="clearCallLogConfirmation_title">Clirio hanes galwadau?</string>
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
   <string name="clearCallLogConfirmation">Bydd hyn yn dileu\'r holl alwadau o dy hanes.</string>
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
   <string name="clearCallLogProgress_title">Yn clirio hanes galwadau\u2026</string>
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
   <string name="userCallActivityLabel" product="default">Ffonio</string>
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
   <string name="notification_missedCallTitle">Galwad wedi\'i methu</string>
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
   <string name="notification_missedWorkCallTitle">Galwad gwaith wedi\'i methu</string>
-  <!-- Missed call notification label, used when there are two or more missed calls -->
   <string name="notification_missedCallsTitle">Galwadau wedi\'u methu</string>
-  <!-- Missed call notification message used when there are multiple missed calls -->
   <string name="notification_missedCallsMsg"><xliff:g id="num_missed_calls">%d</xliff:g> galwad wedi\'u methu</string>
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
   <string name="notification_missedCall_call_back">Galw nôl</string>
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
   <string name="notification_missedCall_message">Neges</string>
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
   <string name="post_call_notification_message"><xliff:g id="name">%1$s</xliff:g>: <xliff:g id="message">%2$s</xliff:g></string>
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
   <string name="notification_voicemail_text_format">Deialu <xliff:g id="voicemail_number">%s</xliff:g></string>
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
   <string name="notification_voicemail_no_vm_number">Dim yn gwybod y rhif lleisbost</string>
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
   <plurals name="notification_voicemail_title">
     <item quantity="zero">            <xliff:g id="count">%1$d</xliff:g>
             negeseuon lleisbost
@@ -108,382 +61,150 @@
             neges lleisbost
         </item>
   </plurals>
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
   <string name="notification_action_voicemail_play">Chwarae</string>
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
   <string name="notification_voicemail_callers_list"><xliff:g id="newer_callers">%1$s</xliff:g>,
         <xliff:g id="older_caller">%2$s</xliff:g>
     </string>
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
   <string name="notification_new_voicemail_ticker">Neges lleisbost newydd gan <xliff:g id="caller">%1$s</xliff:g>
     </string>
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
+  <string name="voicemail_playback_error">Methwyd â chwarae\'r neges lleisbost</string>
   <string name="voicemail_fetching_content">Yn llwytho lleisbost\u2026</string>
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
   <string name="voicemail_archiving_content">Yn archifo lleisbost\u2026</string>
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
+  <string name="voicemail_fetching_timout">Methwyd â llwytho lleisbost</string>
   <string name="call_log_voicemail_header">Galwadau i\'r lleisbost yn unig</string>
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
+  <string name="call_log_incoming_header">Galwadau i mewn yn unig</string>
+  <string name="call_log_outgoing_header">Galwadau allan yn unig</string>
   <string name="call_log_missed_header">Galwadau wedi\'u methu yn unig</string>
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
   <string name="call_log_item_count_and_date">(<xliff:g id="count">%1$d</xliff:g>)
         <xliff:g id="date">%2$s</xliff:g>
     </string>
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
+  <string name="description_search_button">chwilio</string>
   <string name="description_dial_button">deialu</string>
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
+  <string name="description_digits_edittext">rhif i\'w deialu</string>
+  <string name="description_playback_start_stop">Chwarae neu stopio chwarae</string>
+  <string name="description_playback_speakerphone">Troi\'r seinydd uchel ymlaen neu i ffwrdd</string>
+  <string name="description_playback_seek">Canfod lleoliad chwarae</string>
+  <string name="description_rate_decrease">Arafu cyflymder chwarae</string>
+  <string name="description_rate_increase">Cynyddu cyflymder chwarae</string>
   <string name="action_menu_call_history_description">Hanes galwadau</string>
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
+  <string msgid="2295659037509008453" name="action_menu_overflow_description">Rhagor o ddewisiadau</string>
   <string name="action_menu_dialpad_button">pad bysellau</string>
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
+  <string name="menu_show_outgoing_only">Dangos galwadau allan yn unig</string>
+  <string name="menu_show_incoming_only">Dangos galwadau i mewn yn unig</string>
   <string name="menu_show_missed_only">Dangos wedi\'u methu yn unig</string>
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
+  <string name="menu_show_voicemails_only">Dangos lleisbost yn unig</string>
+  <string name="menu_show_all_calls">Dangos pob galwad</string>
   <string name="add_2sec_pause">Ychwanegu saib o 2 eiliad</string>
   <string name="add_wait">Ychwanegu saib</string>
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
+  <string name="dialer_settings_label">Gosodiadau</string>
+  <string name="simulator_submenu_label">Efelychydd</string>
+  <string name="new_ui_launcher_shortcut_label">Creu Llwybr Byr i\'r Rhyngwyneb Newydd</string>
   <string name="menu_allContacts">Pob cyswllt</string>
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
   <string name="dialer_useDtmfDialpad">Defnyddio pad deialu tonau cyffwrdd</string>
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
+  <string name="dialer_returnToInCallScreen">Dychwelyd i\'r galwad</string>
   <string name="dialer_addAnotherCall">Ychwanegu galwad</string>
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
+  <string name="actionIncomingCall">Galwadau i mewn</string>
+  <string name="description_entering_bulk_action_mode">Yn mynd mewn i fodd swmp weithredu</string>
+  <string name="description_leaving_bulk_action_mode">Wedi gadael modd swmp weithredu</string>
+  <string name="description_selecting_bulk_action_mode">Dewiswyd <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+  <string name="description_unselecting_bulk_action_mode">Dad-ddewiswyd <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+  <string name="description_call_log_play_button">Chwarae lleisbost</string>
+  <string name="description_view_contact">Gweld cyswllt <xliff:g id="name">%1$s</xliff:g></string>
   <string name="description_call">Galw <xliff:g id="name">%1$s</xliff:g></string>
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
+  <string name="description_contact_details">Manylion cysylltu ar gyfer <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+  <string name="description_spam_contact_details">Manylion cyswllt galwr <xliff:g id="nameOrNumber">%1$s</xliff:g> sy\'n cael ei amau o fod yn sbamiwr</string>
   <string name="description_num_calls"><xliff:g id="numberOfCalls">%1$s</xliff:g> galwad.</string>
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
   <string name="description_video_call">Galwad fideo.</string>
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
+  <string name="description_send_text_message">Anfon SMS at <xliff:g id="name">%1$s </xliff:g></string>
+  <string name="description_call_log_unheard_voicemail">Negeseuon lleisbost heb eu clywed</string>
+  <string name="description_start_voice_search">Dechrau chwiliad llais</string>
   <string name="menu_callNumber">Galw <xliff:g id="number">%s</xliff:g></string>
-  <!-- String used for displaying calls to the voicemail number in the call log -->
   <string name="voicemail">Lleisbost</string>
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
   <string name="callDetailsShortDurationFormat"><xliff:g example="28" id="seconds">%s</xliff:g> eil</string>
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
   <string name="callDetailsDurationFormat"><xliff:g example="42" id="minutes">%s</xliff:g> mun <xliff:g example="28" id="seconds">%s</xliff:g> eil</string>
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
+  <string name="description_cancel_multi_select">Diddymu modd swp o weithredoedd</string>
   <string name="voicemailMultiSelectDeleteConfirm">Dileu</string>
   <string name="voicemailMultiSelectDeleteCancel">Diddymu</string>
   <string name="voicemailMultiSelectDialogTitle">Dileu\'r <xliff:g id="voicemailorvoicemails">%1$s</xliff:g> wedi\'u dewis?</string>
   <string name="voicemailMultiSelectActionBarTitle"><xliff:g id="number">%1$s</xliff:g> wedi\'u dewis</string>
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
+  <plurals name="delete_voicemails_confirmation_dialog_title">
+    <item quantity="zero"><b>Dileu\'r negeseuon lleisbost hyn? </b></item>
+    <item quantity="one"><b>Dileu\'r neges lleisbost hon? </b></item>
+    <item quantity="two"><b>Dileu\'r negeseuon lleisbost hyn? </b></item>
+    <item quantity="few"><b>Dileu\'r negeseuon lleisbost hyn? </b></item>
+    <item quantity="many"><b>Dileu\'r negeseuon lleisbost hyn? </b></item>
+    <item quantity="other"><b>Dileu\'r negeseuon lleisbost hyn? </b></item>
+  </plurals>
+  <string name="voicemailCallLogToday">@string/call_log_header_today</string>
   <string name="voicemailCallLogDateTimeFormat"><xliff:g example="Jul 25, 2014" id="date">%1$s</xliff:g> am <xliff:g example="2:49 PM" id="time">%2$s</xliff:g></string>
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
   <string name="voicemailDurationFormat"><xliff:g example="10" id="minutes">%1$02d</xliff:g>:<xliff:g example="20" id="seconds">%2$02d</xliff:g></string>
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
   <string name="voicemailCallLogDateTimeFormatWithDuration"><xliff:g example="Jul 25, 2014 at 2:49PM" id="dateAndTime">%1$s</xliff:g> \u2022 <xliff:g example="01:22" id="duration">%2$s</xliff:g></string>
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
   <string msgid="4313552620858880999" name="dialog_phone_call_prohibited_message">Methu â galw\'r rhif hwn</string>
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
+  <string name="dialog_voicemail_not_ready_message">I osod y lleisbost, gweler Dewislen &gt; Gosodiadau.</string>
   <string name="dialog_voicemail_airplane_mode_message">I alw\'r rhif lleisbost, rhaid diffodd modd awyren.</string>
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
   <string name="contact_list_loading">Yn llwytho\u2026</string>
-  <!-- The title of a dialog that displays the IMEI of the phone -->
   <string name="imei">IMEI</string>
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
   <string name="meid">MEID</string>
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
   <string name="simContacts_emptyLoading">Yn llwytho o gerdyn SIM\u2026</string>
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
+  <string name="simContacts_title">Cysylltiadau cerdyn SIM</string>
+  <string name="voice_search_not_available">Chwilio llais ddim ar gael</string>
   <string name="call_not_available">Methu â gwneud galwad ffôn gan fod yr ap Ffôn wedi ei analluogi.</string>
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
+  <string name="dialer_hint_find_contact">Chwilio cysylltiadau</string>
   <string name="block_number_search_hint">Ychwanega rif neu chwilio cysylltiadau</string>
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
   <string name="call_log_all_empty">Does dim hanes galwadau.</string>
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
   <string name="call_log_all_empty_action">Gwneud galwad</string>
-  <!-- Text displayed when the list of missed calls is empty -->
   <string name="call_log_missed_empty">Does dim galwadau wedi eu methu.</string>
-  <!-- Text displayed when the list of voicemails is empty -->
   <string name="call_log_voicemail_empty">Mae dy flwch lleisbost yn wag.</string>
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
+  <string name="show_favorites_only">Dangos ffefrynnau yn unig</string>
   <string name="call_log_activity_title">Hanes Galwadau</string>
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
   <string name="call_log_all_title">Pob un</string>
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
   <string name="call_log_missed_title">Wedi\'u methu</string>
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
   <string name="call_log_voicemail_title">Lleisbost</string>
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
   <string name="tab_speed_dial">Deialu cyflym</string>
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
   <string name="tab_history">Hanes Galwadau</string>
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
   <string name="tab_all_contacts">Cysylltiadau</string>
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
   <string name="tab_voicemail">Lleisbost</string>
-  <!--  Text displayed when user swipes out a favorite contact -->
   <string name="favorite_hidden">Tynnwyd o\'r ffefrynnau</string>
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
   <string name="favorite_hidden_undo">Dadwneud</string>
-  <!-- Shortcut item used to call a number directly from search -->
   <string name="search_shortcut_call_number">Galw
         <xliff:g id="number">%s</xliff:g>
     </string>
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
   <string name="search_shortcut_create_new_contact">Creu cyswllt newydd</string>
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
   <string name="search_shortcut_add_to_contact">Ychwanegu at gyswllt</string>
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
   <string name="search_shortcut_send_sms_message">Anfon SMS</string>
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
   <string name="search_shortcut_make_video_call">Gwneud galwad fideo</string>
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
   <string name="search_shortcut_block_number">Rhwystro\'r rhif</string>
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
   <string name="num_missed_calls"><xliff:g id="number">%s</xliff:g> galwad newydd wedi\'u methu</string>
-  <!-- Shown when there are no speed dial favorites. -->
   <string name="speed_dial_empty">Does neb ar dy restr deialu cyflym</string>
-  <!-- Shown as an action when there are no speed dial favorites -->
   <string name="speed_dial_empty_add_favorite_action">Ychwanegu ffefryn</string>
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
+  <string name="contact_tooltip">Cyffyrdda\'r ddelwedd i weld yr holl rifau neu gyffwrdd a dal i\'w aildrefnu</string>
   <string name="remove_contact">Tynnu</string>
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
   <string name="select_all">Dewis y cyfan</string>
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
   <string name="call_log_action_video_call">Galwad fideo</string>
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
   <string name="call_log_action_send_message">Anfon neges</string>
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
   <string name="call_log_action_details">Manylion yr alwad</string>
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
+  <string name="call_log_action_share_voicemail">Anfon at …</string>
   <string name="call_log_action_call">        Galw <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
   <string name="description_incoming_missed_call">Wedi methu galwad oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^ 1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^ 2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^ 3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^ 4</xliff:g>.</string>
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
   <string name="description_incoming_answered_call">Wedi ateb galwad oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
   <string name="description_unread_voicemail">Lleisbost heb ei glywed oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
   <string name="description_read_voicemail">Lleisbost oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
   <string name="description_outgoing_call">Galwad i <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
+  <string name="call_log_via_number">trwy <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g></string>
   <string name="call_log_via_number_phone_account"><xliff:g example="SIM 1" id="phoneAccount">%1$s</xliff:g> trwy <xliff:g example="(555) 555-5555" id="number">%2$s</xliff:g></string>
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_call_action">        Galw <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_video_call_action">        Galwad fideo <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>.
     </string>
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_voicemail_action">        Gwrando ar neges leisbost oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_voicemail_play">        Chwarae negese lleisbost oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_voicemail_pause">        Seibio\'r neges lleisbost oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="description_voicemail_delete">        Dileu neges lleisbost oddi wrth <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <plurals name="description_voicemail_unread">
     <item quantity="zero"><xliff:g id="count">%d</xliff:g> negeseuon lleisbost newydd</item>
     <item quantity="one"><xliff:g id="count">%d</xliff:g> neges lleisbost newydd</item>
@@ -492,179 +213,71 @@
     <item quantity="many"><xliff:g id="count">%d</xliff:g> neges lleisbost newydd</item>
     <item quantity="other"><xliff:g id="count">%d</xliff:g> neges lleisbost newydd</item>
   </plurals>
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
   <string name="description_create_new_contact_action">Creu cyswllt ar gyfer <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>    </string>
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
   <string name="description_add_to_existing_contact_action">        Ychwanegu <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g> i gyswllt sy\'n bodoli eisoes
     </string>
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
   <string name="description_details_action">        Manylion galw ar gyfer <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
   <string name="toast_entry_removed">Wedi ei dileu o\'r hanes galwadau</string>
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
   <string name="call_log_header_today">Heddiw</string>
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
   <string name="call_log_header_yesterday">Ddoe</string>
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
   <string name="call_log_header_other">Hŷn</string>
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
   <string name="call_detail_list_header">Rhestr galwadau\</string>
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="voicemail_speaker_on">Troi seinydd ymlaen.</string>
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="voicemail_speaker_off">Troi\'r seinydd i ffwrdd.</string>
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="voicemail_play_faster">Chwarae\'n gynt.</string>
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="voicemail_play_slower">Chwarae\'n arafach.</string>
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
   <string name="voicemail_play_start_pause">Dechrau neu seibio chwarae.</string>
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
   <string name="display_options_title">Dewisiadau dangos</string>
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
   <string name="sounds_and_vibration_title">Synau a dirgrynu</string>
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
   <string name="accessibility_settings_title">Hygyrchedd</string>
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
   <string name="ringtone_title">Tôn caniad y ffôn</string>
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
+  <string name="vibrate_on_ring_title">\"Dirgrynu ar gyfer galwadau hefyd</string>
   <string name="dtmf_tone_enable_title">Tonau pad deialu</string>
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
   <string name="dtmf_tone_length_title">Hyd tonau pad deialu</string>
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
   <string-array name="dtmf_tone_length_entries">
     <item>Arferol</item>
     <item>Hir</item>
   </string-array>
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
   <string name="respond_via_sms_setting_title">Ymatebion cyflym</string>
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
   <string name="call_settings_label">Galwadau</string>
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
   <string name="manage_blocked_numbers_label">Rhwystro galwadau</string>
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
   <string name="voicemail_settings_label">Lleisbost</string>
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
+  <string name="voicemail_settings_select_sim_title">Dewisa SIM ar gyfer gosodiadau lleisbost</string>
   <string name="blocked_numbers_disabled_emergency_header_label">Rhwystro galwadau wedi\'i diffodd dros dro
     </string>
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
   <string name="blocked_numbers_disabled_emergency_desc">Mae rhwystro galwadau wedi\'i analluogi gan dy fod wedi cysylltu â\'r gwasanaethau brys o\'r ffôn hwn o fewn y 48 awr ddiwethaf. Caiff ei alluogi eto pan fydd y cyfnod 48 awr wedi pasio.
     </string>
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
+  <string name="import_send_to_voicemail_numbers_label">Mewnforio rhifau</string>
   <string name="blocked_call_settings_import_description">Rwyt wedi nodi rhai galwyr fel bod eu galwadau yn mynd yn syth i\'r llaisbost trwy apiau eraill.
     </string>
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
   <string name="blocked_call_settings_view_numbers_button">Gweld rhifau</string>
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
   <string name="blocked_call_settings_import_button">Mewnforio</string>
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
   <string name="description_blocked_number_list_delete">Dadrwystro\'r rhif</string>
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
   <string name="addBlockedNumber">Ychwanegu rhif</string>
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
   <string name="block_number_footer_message_vvm">Caiff galwadau o\'r rhifau hyn eu rhwystro a bydd negeseuon llais yn cael eu dileu yn awtomatig.
     </string>
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
   <string name="block_number_footer_message_no_vvm">Caiff galwadau o\'r rhifau hyn eu rhwystro, ond mi fydd dal yn bosib i\'r galwyr adael negeseuon llais.
     </string>
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
   <string name="block_list">Rhifau wedi\'u rhwystro</string>
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
   <string name="alreadyBlocked">Mae <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> eisoes wedi\'i rwystro.</string>
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
   <string name="phone_account_settings_label">Cyfrifon galw</string>
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
+  <string name="permission_multiple_turn_on">Gosod caniatâd</string>
   <string name="permission_no_speeddial">I alluogi deialu cyflym, rho ganiatâd yn yr ap Cysylltiadau.</string>
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
+  <string name="permission_no_calllog">I weld dy log galwadau, rho ganiatâd yn yr ap Ffôn.</string>
+  <string name="permission_no_voicemail">I gael mynediad i dy leisbost, rho ganiatâd yn yr ap Ffôn.</string>
+  <string name="permission_no_search">I chwilio dy gysylltiadau,\nrho ganiatâd i\'r ap Cysylltiadau.</string>
   <string name="permission_place_call">I wneud galwad, rho ganiatâd i\'r ap Ffôn.</string>
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
+  <string name="toast_cannot_write_system_settings">Nid oes gan yr ap Ffôn ganiatâd i ysgrifennu ar osodiadau\'r system.</string>
   <string name="blocked_number_call_log_label">Wedi\'i rhwystro</string>
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
   <string name="call_log_action_block_report_number">Rhwystro/adrodd am sbam</string>
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
   <string name="call_log_action_block_number">Rhwystro\'r rhif</string>
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
   <string name="call_log_action_remove_spam">Dim yn sbam</string>
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
+  <string name="call_log_action_unblock_number">Dadrwystro\'r rhif</string>
   <string name="spam_number_call_log_label">Sbam</string>
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
   <string name="call_composer_connection_failed">Mae <xliff:g id="name">%1$s</xliff:g> all-lein ac felly ddim ar gael</string>
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
   <string name="about_phone_label">Ynghylch</string>
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
+  <string name="view_conversation">Gweld</string>
   <string name="ec_data_deleted">Dileuwyd yr alwad. Edrycha yn Negeseuon i weld a dileu atodiadau cafwyd eu rhannu yn ystod yr alwad hon.</string>
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
   <string name="multiple_ec_data_deleted">Dileuwyd y galwadau. Edrycha yn Negeseuon i weld a dileu atodiadau cafwyd eu rhannu yn ystod galwadau.</string>
 </resources>
diff --git a/java/com/android/dialer/app/res/values-da/cm_strings.xml b/java/com/android/dialer/app/res/values-da/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-en-rCA/cm_strings.xml b/java/com/android/dialer/app/res/values-en-rCA/cm_strings.xml
index beba990..b20648b 100644
--- a/java/com/android/dialer/app/res/values-en-rCA/cm_strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rCA/cm_strings.xml
@@ -16,4 +16,20 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="incall_category_title">In-call</string>
+    <string name="incall_enable_dnd_title">Enable Do Not Disturb during calls</string>
+    <string name="incall_vibrate_outgoing_title">Vibrate on answer</string>
+    <string name="incall_vibrate_call_waiting_title">Vibrate on call waiting</string>
+    <string name="incall_vibrate_hangup_title">Vibrate on hang up</string>
+    <string name="incall_vibrate_45_title">Vibrate every minute</string>
+    <string name="incall_vibrate_45_summary">Vibrates at the 45 second mark of every minute during outgoing calls</string>
+    <string name="incall_dnd_dialog_message">In order to enable Do Not Disturb, the Phone app needs to be granted the permission to control the Do Not Disturb status.\nPlease allow it.</string>
+    <string name="allow">Allow</string>
+    <string name="deny">Deny</string>
+    <string name="call_recording_category_title">Call recording</string>
+    <string name="call_recording_format">Audio format</string>
+    <string name="call_via">Call via</string>
+    <string name="call_via_dialog_title">Call via\u2026</string>
+    <string name="call_log_stats_title">Statistics</string>
+</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/cm_strings.xml b/java/com/android/dialer/app/res/values-en-rGB/cm_strings.xml
index 61028d6..b20648b 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/cm_strings.xml
@@ -27,4 +27,9 @@
     <string name="incall_dnd_dialog_message">In order to enable Do Not Disturb, the Phone app needs to be granted the permission to control the Do Not Disturb status.\nPlease allow it.</string>
     <string name="allow">Allow</string>
     <string name="deny">Deny</string>
+    <string name="call_recording_category_title">Call recording</string>
+    <string name="call_recording_format">Audio format</string>
+    <string name="call_via">Call via</string>
+    <string name="call_via_dialog_title">Call via\u2026</string>
+    <string name="call_log_stats_title">Statistics</string>
 </resources>
diff --git a/java/com/android/dialer/app/res/values-en-rPT/cm_strings.xml b/java/com/android/dialer/app/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-en-rPT/strings.xml b/java/com/android/dialer/app/res/values-en-rPT/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-eo/cm_strings.xml b/java/com/android/dialer/app/res/values-eo/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-eo/strings.xml b/java/com/android/dialer/app/res/values-eo/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-eo/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-es-rCO/cm_strings.xml b/java/com/android/dialer/app/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-es-rCO/strings.xml b/java/com/android/dialer/app/res/values-es-rCO/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-es-rMX/cm_strings.xml b/java/com/android/dialer/app/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-es-rMX/strings.xml b/java/com/android/dialer/app/res/values-es-rMX/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-et/cm_strings.xml b/java/com/android/dialer/app/res/values-et/cm_strings.xml
index beba990..11bad50 100644
--- a/java/com/android/dialer/app/res/values-et/cm_strings.xml
+++ b/java/com/android/dialer/app/res/values-et/cm_strings.xml
@@ -16,4 +16,19 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="incall_category_title">Kõnes</string>
+    <string name="incall_enable_dnd_title">Luba Mitte segada kõnede ajal</string>
+    <string name="incall_vibrate_outgoing_title">Vibreeri vastamisel</string>
+    <string name="incall_vibrate_call_waiting_title">Vibreeri kõne koputusel</string>
+    <string name="incall_vibrate_hangup_title">Vibreeri kõne lõppemisel</string>
+    <string name="incall_vibrate_45_title">Vibreeri iga minuti tagant</string>
+    <string name="incall_dnd_dialog_message">Mitte segada režiimi lubamiseks vajab rakendus Telefon luba režiimi Mitte segada juhtimiseks.\nPalun luba see.</string>
+    <string name="allow">Luba</string>
+    <string name="deny">Keela</string>
+    <string name="call_recording_category_title">Kõne salvestamine</string>
+    <string name="call_recording_format">Heli formaat</string>
+    <string name="call_via">Helista läbi</string>
+    <string name="call_via_dialog_title">Helista läbi\u2026</string>
+    <string name="call_log_stats_title">Statistika</string>
+</resources>
diff --git a/java/com/android/dialer/app/res/values-fa/cm_strings.xml b/java/com/android/dialer/app/res/values-fa/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-fil/cm_strings.xml b/java/com/android/dialer/app/res/values-fil/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-fil/strings.xml b/java/com/android/dialer/app/res/values-fil/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-fil/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/cm_strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-frp/cm_strings.xml b/java/com/android/dialer/app/res/values-frp/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-frp/strings.xml b/java/com/android/dialer/app/res/values-frp/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-frp/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-fy-rNL/cm_strings.xml b/java/com/android/dialer/app/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-fy-rNL/strings.xml b/java/com/android/dialer/app/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-ga-rIE/cm_strings.xml b/java/com/android/dialer/app/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ga-rIE/strings.xml b/java/com/android/dialer/app/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-gd/strings.xml b/java/com/android/dialer/app/res/values-gd/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-gd/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-gu/cm_strings.xml b/java/com/android/dialer/app/res/values-gu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-hi/cm_strings.xml b/java/com/android/dialer/app/res/values-hi/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-hu/cm_strings.xml b/java/com/android/dialer/app/res/values-hu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-hy/cm_strings.xml b/java/com/android/dialer/app/res/values-hy/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-is/cm_strings.xml b/java/com/android/dialer/app/res/values-is/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ka/cm_strings.xml b/java/com/android/dialer/app/res/values-ka/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-kab-rDZ/cm_strings.xml b/java/com/android/dialer/app/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/app/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-kk/cm_strings.xml b/java/com/android/dialer/app/res/values-kk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-km/cm_strings.xml b/java/com/android/dialer/app/res/values-km/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-kn/cm_strings.xml b/java/com/android/dialer/app/res/values-kn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-kn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ku/cm_strings.xml b/java/com/android/dialer/app/res/values-ku/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ku/strings.xml b/java/com/android/dialer/app/res/values-ku/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-ku/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-ky/cm_strings.xml b/java/com/android/dialer/app/res/values-ky/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-lb/cm_strings.xml b/java/com/android/dialer/app/res/values-lb/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-lb/strings.xml b/java/com/android/dialer/app/res/values-lb/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-lb/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-lo/cm_strings.xml b/java/com/android/dialer/app/res/values-lo/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-lt/cm_strings.xml b/java/com/android/dialer/app/res/values-lt/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-lv/cm_strings.xml b/java/com/android/dialer/app/res/values-lv/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-mk/cm_strings.xml b/java/com/android/dialer/app/res/values-mk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ml/cm_strings.xml b/java/com/android/dialer/app/res/values-ml/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-mn/cm_strings.xml b/java/com/android/dialer/app/res/values-mn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-mr/cm_strings.xml b/java/com/android/dialer/app/res/values-mr/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ms/cm_strings.xml b/java/com/android/dialer/app/res/values-ms/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-my/cm_strings.xml b/java/com/android/dialer/app/res/values-my/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ne/cm_strings.xml b/java/com/android/dialer/app/res/values-ne/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-oc/cm_strings.xml b/java/com/android/dialer/app/res/values-oc/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-oc/strings.xml b/java/com/android/dialer/app/res/values-oc/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-oc/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-or-rIN/cm_strings.xml b/java/com/android/dialer/app/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-or-rIN/strings.xml b/java/com/android/dialer/app/res/values-or-rIN/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-pa/cm_strings.xml b/java/com/android/dialer/app/res/values-pa/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-rm/cm_strings.xml b/java/com/android/dialer/app/res/values-rm/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-rm/strings.xml b/java/com/android/dialer/app/res/values-rm/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-rm/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-sc-rIT/strings.xml b/java/com/android/dialer/app/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-si/cm_strings.xml b/java/com/android/dialer/app/res/values-si/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-sw/cm_strings.xml b/java/com/android/dialer/app/res/values-sw/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ta/cm_strings.xml b/java/com/android/dialer/app/res/values-ta/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-te/cm_strings.xml b/java/com/android/dialer/app/res/values-te/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-th/cm_strings.xml b/java/com/android/dialer/app/res/values-th/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-tl/cm_strings.xml b/java/com/android/dialer/app/res/values-tl/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ug/cm_strings.xml b/java/com/android/dialer/app/res/values-ug/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ug/strings.xml b/java/com/android/dialer/app/res/values-ug/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-ug/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-uk/cm_strings.xml b/java/com/android/dialer/app/res/values-uk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-uk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-ur/cm_strings.xml b/java/com/android/dialer/app/res/values-ur/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-uz/cm_strings.xml b/java/com/android/dialer/app/res/values-uz/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-vec/cm_strings.xml b/java/com/android/dialer/app/res/values-vec/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-vec/strings.xml b/java/com/android/dialer/app/res/values-vec/strings.xml
deleted file mode 100644
index 070ebc9..0000000
--- a/java/com/android/dialer/app/res/values-vec/strings.xml
+++ /dev/null
@@ -1,467 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Application name used in Settings/Apps. Default label for activities
-       that don't specify a label. -->
-  <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
-  <!-- The description text for the dialer tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- The description text for the call log tab.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-  This is especially valuable for views without textual representation like ImageView.
-
-  [CHAR LIMIT=NONE] -->
-  <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
-  <!-- Label for action to block a number. [CHAR LIMIT=48] -->
-  <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Menu item used to remove all calls from the call log -->
-  <!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
-  <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
-  <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
-  <!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37]  -->
-  <!-- Confirmation dialog for clearing the call log. [CHAR LIMIT=NONE]  -->
-  <!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
-  <!-- Title used for the activity for placing a call. This name appears
-       in activity disambig dialogs -->
-  <!-- Notification strings -->
-  <!-- Missed call notification label, used when there's exactly one missed call -->
-  <!-- Missed call notification label, used when there's exactly one missed call from work contact -->
-  <!-- Missed call notification label, used when there are two or more missed calls -->
-  <!-- Missed call notification message used when there are multiple missed calls -->
-  <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
-       The user will be able to call back to the person or the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
-       The user will be able to send text messages using the phone number.
-       [CHAR LIMIT=18] -->
-  <!-- Hardcoded number used for restricted incoming phone numbers. -->
-  <!-- Format for a post call message. (ex. John Doe: Give me a call when you're free.) -->
-  <!-- Message displayed in the "Voicemail" notification item, allowing the user
-       to dial the indicated number. -->
-  <!-- Message displayed in the "Voicemail" notification item,
-       indicating that there's no voicemail number available -->
-  <!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
-  <!-- Used in the notification of a new voicemail for the action to play the voicemail. -->
-  <!-- Used to build a list of names or phone numbers, to indicate the callers who left
-       voicemails.
-       The first argument may be one or more callers, the most recent ones.
-       The second argument is an additional callers.
-       This string is used to build a list of callers.
-
-       [CHAR LIMIT=10]
-   -->
-  <!-- Text used in the ticker to notify the user of the latest voicemail. [CHAR LIMIT=30] -->
-  <!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
-  <!-- Message to display whilst we are waiting for the content to be archived. [CHAR LIMIT=40] -->
-  <!-- Message to display if we fail to get content within a suitable time period. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing voicemail calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing incoming calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing outgoing calls. [CHAR LIMIT=40] -->
-  <!-- The header to show that call log is only showing missed calls. [CHAR LIMIT=40] -->
-  <!-- The counter for calls in a group and the date of the latest call as shown in the call log [CHAR LIMIT=15] -->
-  <!-- String describing the Search ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the Dial ImageButton
-
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!-- String describing the digits text box containing the number to dial.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to start/stop playback.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to switch on/off speakerphone.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the seekbar in the voicemail playback to seek playback position.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to decrease playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- String describing the button in the voicemail playback to increase playback rate.
-
-       Used by AccessibilityService to announce the purpose of the view.
-  -->
-  <!-- Content description for the fake action menu button that brings up the call history
-       activity -->
-  <!-- Content description for the fake action menu overflow button.
-       This should be same as the description for the real action menu
-       overflow button available in ActionBar.
-       [CHAR LIMIT=NONE] -->
-  <!-- Content description for the button that displays the dialpad
-       [CHAR LIMIT=NONE] -->
-  <!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only incoming in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only missed in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show only voicemails in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu item used to show all calls in the call log. [CHAR LIMIT=30] -->
-  <!-- Menu items for dialpad options as part of Pause and Wait ftr [CHAR LIMIT=30] -->
-  <!-- Label for the dialer app setting page [CHAR LIMIT=30]-->
-  <!-- Label for the simulator submenu. This is used to show actions that are useful for development
-       and testing. [CHAR LIMIT=30]-->
-  <!-- Label for the menu item that installs a shortcut for the new UI. [CHAR LIMIT=30] -->
-  <!-- Menu item to display all contacts [CHAR LIMIT=30] -->
-  <!-- Item label: jump to the in-call DTMF dialpad.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: jump to the in-call UI.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Item label: use the Dialer's keypad to add another call.
-       (Part of a list of options shown in the dialer when another call
-       is already in progress.) -->
-  <!-- Description for incoming calls going to voice mail vs. not -->
-  <!-- String describing the user entering bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the user leaving bulk action mode.
-
-    Note: AccessibilityServices use this attribute to announce what the view represents.
-          This is especially valuable for views without textual representation like ImageView.
--->
-  <!-- String describing the button to select an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to unselect an entry for bulk action.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the icon in the call log used to play a voicemail.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to view the contact for the current number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to call a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String describing the button to access the contact details for a name or number when the
-       when the number is a suspected spam.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating the number of calls to/from a caller in the call log.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-  -->
-  <!-- String indicating a call log entry had video capabilities.
-
-  Note: AccessibilityServices use this attribute to announce what the view represents.
-        This is especially valuable for views without textual representation like ImageView.
-        [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the button to SMS a number or contact.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon in the call log used to represent an unheard voicemail left to
-       the user.
-
-      Note: AccessibilityServices use this attribute to announce what the view represents.
-            This is especially valuable for views without textual representation like ImageView.
-            [CHAR LIMIT=NONE]
-  -->
-  <!-- String describing the icon used to start a voice search -->
-  <!-- Menu item used to call a contact, containing the number of the contact to call -->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-  <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28 sec" -->
-  <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
-  <!-- String describing the cancel button in multi select.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- Alert dialog title to accept or decline deleting voicemail(s). -->
-  <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
-       explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
-       current day -->
-  <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
-       The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
-  <!-- Format for duration of voicemails which are displayed when viewing voicemail logs. For example "01:22" -->
-  <!-- A format string used for displaying the date, time and duration for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM • 00:34 -->
-  <!-- Dialog message which is shown when the user tries to make a phone call
-       to prohibited phone numbers [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system isn't ready for the access. [CHAR LIMIT=NONE] -->
-  <!-- Dialog message which is shown when the user tries to check voicemail
-       while the system is in airplane mode. The user cannot access to
-       voicemail service in Airplane mode. [CHAR LIMI=NONE] -->
-  <!-- Message that appears in the favorites tab of the Phone app when the contact list has not fully loaded yet (below the favorite and frequent contacts) [CHAR LIMIT=20] -->
-  <!-- The title of a dialog that displays the IMEI of the phone -->
-  <!-- The title of a dialog that displays the MEID of the CDMA phone -->
-  <!-- Dialog text displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
-  <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
-  <!-- Message displayed when the Phone application has been disabled and a phone call cannot
-       be made. [CHAR LIMIT=NONE] -->
-  <!-- Hint displayed in dialer search box when there is no query that is currently typed.
-       [CHAR LIMIT=30] -->
-  <!-- Hint displayed in add blocked number search box when there is no query typed.
-       [CHAR LIMIT=45] -->
-  <!-- String resource for the font-family to use for the call log activity's title -->
-  <!-- String resource for the font-family to use for the full call history footer -->
-  <!-- Text displayed when the call log is empty. -->
-  <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
-  <!-- Text displayed when the list of missed calls is empty -->
-  <!-- Text displayed when the list of voicemails is empty -->
-  <!--  Menu option to show favorite contacts only -->
-  <!--  Title of activity that displays a list of all calls -->
-  <!-- Title for the call log tab containing the list of all voicemails and calls
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all missed calls only
-       [CHAR LIMIT=30] -->
-  <!-- Title for the call log tab containing the list of all voicemail calls only
-       [CHAR LIMIT=30] -->
-  <!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
-       [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
-  <!-- Accessibility text for the tab showing the user's voicemails. [CHAR LIMIT=40] -->
-  <!--  Text displayed when user swipes out a favorite contact -->
-  <!--  Text displayed for the undo button to undo removing a favorite contact -->
-  <!-- Shortcut item used to call a number directly from search -->
-  <!-- Shortcut item used to add a number directly to a new contact from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to add a number to an existing contact directly from search.
-       [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to send a text message directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
-  <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
-  <!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
-  <!-- Shown when there are no speed dial favorites. -->
-  <!-- Shown as an action when there are no speed dial favorites -->
-  <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
-       card can be tapped to bring up a list of all numbers, or long pressed to start reordering
-       [CHAR LIMIT=NONE]
-  -->
-  <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
-  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
-  <!-- Button text for the "video call" displayed underneath an entry in the call log.
-       Tapping causes a video call to be placed to the caller represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which opens up a
-       messaging app to send a SMS to the number represented by the call log entry.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping navigates the user to the call details screen where the user can view details for
-       the call log entry. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log.
-       Tapping opens dialog to share voicemail archive with other apps. [CHAR LIMIT=30] -->
-  <!-- Button text for the button displayed underneath an entry in the call log, which when
-       tapped triggers a return call to the named user. [CHAR LIMIT=30] -->
-  <!-- String describing an incoming missed call entry in the call log.
-     Note: AccessibilityServices uses this attribute to announce what the view represents.
-     [CHAR LIMIT=NONE] -->
-  <!-- String describing an incoming answered call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing an "unread" voicemail entry in the voicemails tab.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing a "read" voicemail entry in the voicemails tab.
-   Note: AccessibilityServices use this attribute to announce what the view represents.
-   [CHAR LIMIT=NONE] -->
-  <!-- String describing an outgoing call entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE] -->
-  <!-- TextView text item showing the secondary line number the call was received via.
-       [CHAR LIMIT=NONE]-->
-  <!-- The order of the PhoneAccount and via number that a call was received on,
-       if both are visible.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the "call" action for an entry in the call log.  The call back
-       action triggers a return call to the named user.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "video call" action for an entry in the call log.  The video call
-       action triggers a return video call to the named person/number.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "listen" action for an entry in the call log.  The listen
-       action is shown for call log entries representing a voicemail message and this button
-       triggers playing back the voicemail.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "pause voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "delete voicemail" action for an entry in the call log.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the number of new voicemails, displayed as a number badge on a tab.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Description for the "create new contact" action for an entry in the call log. This action
-       opens a screen for creating a new contact for this name or number. [CHAR LIMIT=NONE] -->
-  <!-- Description for the "add to existing contact" action for an entry in the call log. This
-       action opens a screen for adding this name or number to an existing contact.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "details" action for an entry in the call log.  The details action
-       displays the call details screen for an entry in the call log.  This shows the calls to
-       and from the specified number associated with the call log entry.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a call log entry is deleted.
-       [CHAR LIMIT=NONE] -->
-  <!-- String used as a header in the call log above calls which occurred today.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred yesterday.
-       [CHAR LIMIT=65] -->
-  <!-- String used as a header in the call log above calls which occurred two days or more ago.
-       [CHAR LIMIT=65] -->
-  <!-- String a header on the call details screen.  Appears above the list calls to or from a
-       particular number.
-       [CHAR LIMIT=65] -->
-  <!-- String describing the "speaker on" button on the playback control used to listen to a
-       voicemail message.  When speaker is on, playback of the voicemail will occur through the
-       phone speaker.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "speaker off" button on the playback control used to listen to a
-       voicemail message.  When speaker is off, playback of the voicemail will occur through the
-       phone earpiece.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play faster" button in the playback control used to listen to a
-       voicemail message.  Speeds up playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play slower" button in the playback control used to listen to a
-       voicemail message.  Slows down playback of the voicemail message.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- String describing the "play/pause" button in the playback control used to listen to a
-       voicemail message.  Starts playback or pauses ongoing playback.
-       Note: AccessibilityServices uses this attribute to announce the purpose of the button.
-       [CHAR LIMIT=NONE] -->
-  <!-- Dialer settings related strings-->
-  <!-- Title for "Display options" category, which controls how contacts are shown.
-       [CHAR LIMIT=40] -->
-  <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
-       dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
-  <!-- Title for "Accessibility" category, which controls settings such as TTY mode and hearing
-       aid compatability. [CHAR LIMIT=40] -->
-  <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable vibration when ringing the phone.
-       [CHAR LIMIT=30] -->
-  <!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
-  <!-- Label for setting to adjust the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Options displayed for the length of DTMF tone sounds. [CHAR LIMIT=40] -->
-  <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
-  <!-- Label for the call settings section [CHAR LIMIT=30] -->
-  <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
-  <!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
-  <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
-  <!-- Label for a section describing that call blocking is temporarily disabled because an
-       emergency call was made. [CHAR LIMIT=50] -->
-  <!-- Description that call blocking is temporarily disabled because the user called an
-       emergency number, and explains that call blocking will be re-enabled after a buffer
-       period has passed. [CHAR LIMIT=NONE] -->
-  <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
-       [CHAR_LIMIT=30] -->
-  <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
-       This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
-       and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
-  <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
-       [CHAR_LIMIT=20] -->
-  <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
-       list. [CHAR_LIMIT=20] -->
-  <!-- String describing the delete icon on a blocked number list item.
-      When tapped, it will show a dialog confirming the unblocking of the number.
-      [CHAR LIMIT=NONE]-->
-  <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
-  <!-- Footer message of number blocking screen with visual voicemail active.
-      [CHAR LIMIT=NONE] -->
-  <!-- Footer message of number blocking screen with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
-  <!-- Error message shown when user tries to add a number to the block list that was already
-      blocked. [CHAR LIMIT=64] -->
-  <!-- Label for the phone account settings [CHAR LIMIT=30] -->
-  <!-- Internal key for ringtone preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for vibrate when ringing preference. -->
-  <!-- Internal key for DTMF tone length preference. -->
-  <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
-  <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
-  <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
-  <!-- Label under the name of a blocked number in the call log. [CHAR LIMIT=15] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-           phone number represented by the call log entry as a Spam number.
-           [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which marks the
-       phone number represented by the call log entry as a Spam number.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the Spam numbers list.
-       [CHAR LIMIT=30] -->
-  <!-- Button text for a button displayed underneath an entry in the call log, which removes the
-       phone number represented by the call log entry from the blacklisted numbers.
-       [CHAR LIMIT=30] -->
-  <!-- Label under the name of a spam number in the call log. [CHAR LIMIT=15] -->
-  <!-- Shown as a message that notifies the user enriched calling isn't working -->
-  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
-  <!-- Button text to prompt a user to open an sms conversation [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-  <!-- If a user deletes a call that has attachments (photo, message, ect) bundled with it, they need
-        to be told that they need to go to the SMS app to delete the attachments. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/cm_strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/res/values-zu/cm_strings.xml b/java/com/android/dialer/app/res/values-zu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/app/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-as-rIN/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-as-rIN/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-ast-rES/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-ast-rES/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-br-rFR/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-br-rFR/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-csb/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-csb/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-csb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-cy/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-cy/strings.xml
index b84aef5..d53f6bd 100644
--- a/java/com/android/dialer/app/voicemail/error/res/values-cy/strings.xml
+++ b/java/com/android/dialer/app/voicemail/error/res/values-cy/strings.xml
@@ -16,28 +16,53 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string name="voicemail_error_turn_off_airplane_mode_title">Troi modd awyren i ffwrdd</string>
+  <string name="voicemail_error_activating_title">Actifadu lleisbost gweledol</string>
+  <string name="voicemail_error_activating_message">Mae\'n bosib na fyddi\'n derbyn hysbysiadau lleisbost nes bod lleisbost gweledol wedi ei actifadu\'n llawn. Galwa lleisbost i glywed unrhyw negeseuon newydd nes bod wedi ei actifadu\'n llawn.</string>
+  <string name="voicemail_error_not_activate_no_signal_title">Methu ag actifadu lleisbost gweledol</string>
+  <string name="voicemail_error_not_activate_no_signal_message">Gwiria bod gan dy ffôn gysylltiad rhwydwaith symudol a cheisio eto.</string>
+  <string name="voicemail_error_not_activate_no_signal_airplane_mode_message">Tro\'r modd awyren i ffwrdd a cheisio eto.</string>
   <string name="voicemail_error_no_signal_title">Dim cysylltiad</string>
+  <string name="voicemail_error_no_signal_message">Ni chei dy hysbysu am negeseuon lleisbost newydd. Os wyt ar gysylltiad Wi\u2011Fi, gellir gwirio dy leisbost gan gysoni nawr.</string>
+  <string name="voicemail_error_no_signal_airplane_mode_message">Ni chei dy hysbysu am negeseuon lleisbost newydd. Tro modd awyren i ffwrdd er mwyn cysoni dy leisbost.</string>
   <string name="voicemail_error_no_signal_cellular_required_message">Mae ar dy ffôn angen cysylltiad data symudol i wirio\'r lleisbost.</string>
+  <string name="voicemail_error_activation_failed_title">Methu ag actifadu lleisbost gweledol</string>
+  <string name="voicemail_error_activation_failed_message">Gellir dal galw i wirio dy leisbost.</string>
   <string name="voicemail_error_no_data_title">Methu â diweddaru lleisbost gweledol</string>
+  <string name="voicemail_error_no_data_message">Rho gynnig arall arni pan fydd gwell cysylltiad Wi\u2011Fi neu ddata symudol. Mae dal yn bosib galw i wirio lleisbost.</string>
+  <string name="voicemail_error_no_data_cellular_required_message">Rho gynnig arall arni pan fydd gwell cysylltiad Wi-Fi neu ddata symudol. Mae dal yn bosib galw i wirio lleisbost.</string>
   <string name="voicemail_error_bad_config_title">Methu â diweddaru lleisbost gweledol</string>
+  <string name="voicemail_error_bad_config_message">Gellir dal galw i wirio dy leisbost.</string>
   <string name="voicemail_error_communication_title">Methu â diweddaru lleisbost gweledol</string>
+  <string name="voicemail_error_communication_message">Gellir dal galw i wirio dy leisbost.</string>
   <string name="voicemail_error_server_connection_title">Methu â diweddaru lleisbost gweledol</string>
+  <string name="voicemail_error_server_connection_message">Gellir dal galw i wirio dy leisbost.</string>
   <string name="voicemail_error_server_title">Methu â diweddaru lleisbost gweledol</string>
+  <string name="voicemail_error_server_message">Gellir dal galw i wirio dy leisbost.</string>
+  <string name="voicemail_error_inbox_near_full_title">Mewnflwch bron yn llawn</string>
+  <string name="voicemail_error_inbox_near_full_message">Ni fyddi\'n medru derbyn lleisbost newydd os yw\'r blwch lleisbost yn llawn.</string>
   <string name="voicemail_error_inbox_full_title">Methu â derbyn negeseuon lleisbost newydd</string>
   <string name="voicemail_error_inbox_full_message">Mae dy fewnflwch yn llawn. Gellir dileu rhai negeseuon er mwyn derbyn lleisbost newydd.</string>
   <string name="voicemail_error_inbox_full_turn_archive_on_title">Troi storfa ychwanegol a chadw wrth gefn ymlaen</string>
   <string name="voicemail_error_inbox_full_turn_archive_on_message">Mae dy flwch post yn llawn. I ryddhau lle, tro storfa ychwanegol ymlaen fel y gall Google rheoli a chadw copi wrth gefn o dy negeseuon lleisbost.</string>
   <string name="voicemail_error_inbox_almost_full_turn_archive_on_title">Troi storfa ychwanegol a chadw wrth gefn ymlaen</string>
   <string name="voicemail_error_inbox_almost_full_turn_archive_on_message">Mae dy flwch post bron yn llawn. I ryddhau lle, tro storfa ychwanegol ymlaen fel y gall Google rheoli a chadw copi wrth gefn o dy negeseuon lleisbost.</string>
+  <string name="voicemail_error_pin_not_set_title">Gosoda PIN dy leisbost</string>
+  <string name="voicemail_error_pin_not_set_message">Bydd arnat angen PIN lleisbost bob tro rwyt yn galw i glywed dy leisbost.</string>
+  <string name="voicemail_error_unknown_title">Gwall anhysbys</string>
   <string name="voicemail_action_turn_off_airplane_mode">Gosodiadau Modd Awyren</string>
   <string name="voicemail_action_set_pin">Gosod PIN</string>
+  <string name="voicemail_action_retry">Ceisio Eto</string>
   <string name="voicemail_action_turn_archive_on">Troi ymlaen</string>
   <string name="voicemail_action_dimiss">Dim diolch</string>
   <string name="voicemail_action_sync">Cysoni</string>
   <string name="voicemail_action_call_voicemail">Galw lleisbost</string>
   <string name="voicemail_action_call_customer_support">Galw Gwasanaeth Cwsmeriaid</string>
+  <string name="vvm3_error_vms_dns_failure_title">Aeth Rhywbeth o\'i Le</string>
   <string name="vvm3_error_vms_dns_failure_message">Ymddiheuriadau. Cafwyd problem. Rho gynnig arall arni\'n hwyrach. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9001.</string>
+  <string name="vvm3_error_vmg_dns_failure_title">Aeth Rhywbeth o\'i Le</string>
   <string name="vvm3_error_vmg_dns_failure_message">Ymddiheuriadau. Cafwyd problem. Rho gynnig arall arni\'n hwyrach. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9002.</string>
+  <string name="vvm3_error_spg_dns_failure_title">Aeth Rhywbeth o\'i Le</string>
   <string name="vvm3_error_spg_dns_failure_message">Ymddiheuriadau. Cafwyd problem. Rho gynnig arall arni\'n hwyrach. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9003.</string>
   <string name="vvm3_error_vms_no_cellular_title">Methu â Chysylltu â dy Flwch Lleisbost</string>
   <string name="vvm3_error_vms_no_cellular_message">Ymddiheuriadau. Rydym yn cael trafferth cysylltu â dy flwch lleisbost. Os wyt ti mewn ardal gyda signal gwael, arhosa nes dy fod efo signal cryf a rhoi cynnig arall arni. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9004.</string>
@@ -53,21 +78,36 @@
   <string name="vvm3_error_status_sms_timeout_message">Ymddiheuriadau. Rydym yn cael trafferth yn sefydlu dy wasanaeth. Rho gynnig arall arni\'n hwyrach. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9009.</string>
   <string name="vvm3_error_subscriber_blocked_title">Methu â Chysylltu â dy Flwch Lleisbost</string>
   <string name="vvm3_error_subscriber_blocked_message">Ymddiheuriadau. Rydym yn cael trafferth yn cysylltu â dy flwch lleisbost ar hyn o bryd. Rho gynnig arall arni\'n hwyrach. Os yw\'r broblem yn parhau, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9090.</string>
+  <string name="vvm3_error_unknown_user_title">Gosod Lleisbost</string>
   <string name="vvm3_error_unknown_user_message">Dyw lleisbost heb ei osod ar dy gyfrif. Cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9991.</string>
+  <string name="vvm3_error_unknown_device_title">Lleisbost</string>
   <string name="vvm3_error_unknown_device_message">Nid yw\'n bosib defnyddio lleisbost gweledol ar y ddyfais hon. Cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9992.</string>
+  <string name="vvm3_error_invalid_password_title">Aeth Rhywbeth o\'i Le</string>
   <string name="vvm3_error_invalid_password_message">Cysyllta â gwasanaeth gofal cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9993.</string>
+  <string name="vvm3_error_mailbox_not_initialized_title">Lleisbost Gweledol</string>
   <string name="vvm3_error_mailbox_not_initialized_message">I gwblhau gosod lleisbost gweledol, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9994.</string>
+  <string name="vvm3_error_service_not_provisioned_title">Lleisbost Gweledol</string>
   <string name="vvm3_error_service_not_provisioned_message">I gwblhau gosod lleisbost gweledol, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9995.</string>
+  <string name="vvm3_error_service_not_activated_title">Lleisbost Gweledol</string>
   <string name="vvm3_error_service_not_activated_message">I actifadu lleisbost gweledol, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9996.</string>
   <string name="vvm3_error_user_blocked_title">Aeth rhywbeth o\'i le</string>
   <string name="vvm3_error_user_blocked_message">I gwblhau gosod lleisbost gweledol, cysyllta â gwasanaethau cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9998.</string>
+  <string name="vvm3_error_subscriber_unknown_title">Mae Lleisbost Gweledol wedi\'i Analluogi</string>
+  <string name="vvm3_error_subscriber_unknown_message">Cysyllta â gwasanaeth gofal cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> i actifadu lleisbost gweledol.</string>
   <string name="vvm3_error_imap_getquota_error_title">Aeth rhywbeth o\'i le</string>
   <string name="vvm3_error_imap_getquota_error_message">Cysyllta â gwasanaeth gofal cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9997.</string>
   <string name="vvm3_error_imap_select_error_title">Aeth rhywbeth o\'i le</string>
   <string name="vvm3_error_imap_select_error_message">Cysyllta â gwasanaeth gofal cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9998.</string>
   <string name="vvm3_error_imap_error_title">Aeth rhywbeth o\'i le</string>
   <string name="vvm3_error_imap_error_message">Cysyllta â gwasanaeth gofal cwsmeriaid ar <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> a rhoi gwybod iddynt mai\'r cod gwall yw 9999.</string>
+  <string name="verizon_terms_and_conditions_title">Telerau ac Amodau Lleisbost Gweledol</string>
   <string name="verizon_terms_and_conditions_message">%1$s\n\nRhaid derbyn telerau ac amodau Verizon Wireless cyn defnyddio lleisbost gweledol:\n\n%2$s</string>
+  <string name="dialer_terms_and_conditions_title">Troi Lleisbost Gweledol Ymlaen</string>
   <string name="dialer_terms_and_conditions_message">%s</string>
+  <string name="verizon_terms_and_conditions_decline_dialog_message">Caiff y lleisbost gweledol ei analluogi oni bai bod y telerau ac amodau yn cael eu derbyn.</string>
+  <string name="verizon_terms_and_conditions_decline_dialog_downgrade">Analluogi lleisbost gweledol</string>
+  <string name="dialer_terms_and_conditions_decline_dialog_message">Caiff trawsgrifiad lleisbost ei analluogi oni bai bod y telerau ac amodau yn cael eu derbyn.</string>
+  <string name="dialer_terms_and_conditions_decline_dialog_downgrade">Analluogi trawsgrifiad lleisbost</string>
+  <string name="verizon_terms_and_conditions_decline_set_pin_dialog_message">Bydd lleisbost ond ar gael trwy ddeialu *86. Gosoda PIN lleisbost newydd i barhau.</string>
   <string name="verizon_terms_and_conditions_decline_set_pin_dialog_set_pin">Gosod PIN</string>
 </resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-en-rPT/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-en-rPT/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-eo/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-eo/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-eo/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-es-rCO/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-es-rCO/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-es-rMX/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-es-rMX/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-fil/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-fil/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-fil/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-frp/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-frp/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-frp/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-fy-rNL/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-ga-rIE/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-gd/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-gd/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-gd/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-ku/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-ku/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-ku/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-lb/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-lb/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-lb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-oc/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-oc/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-oc/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-or-rIN/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-or-rIN/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-rm/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-rm/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-rm/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-sc-rIT/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-ug/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-ug/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-ug/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-vec/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-vec/strings.xml
deleted file mode 100644
index 20265b3..0000000
--- a/java/com/android/dialer/app/voicemail/error/res/values-vec/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/blocking/res/values-as-rIN/strings.xml b/java/com/android/dialer/blocking/res/values-as-rIN/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-ast-rES/strings.xml b/java/com/android/dialer/blocking/res/values-ast-rES/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-br-rFR/strings.xml b/java/com/android/dialer/blocking/res/values-br-rFR/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-csb/strings.xml b/java/com/android/dialer/blocking/res/values-csb/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-csb/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-cy/strings.xml b/java/com/android/dialer/blocking/res/values-cy/strings.xml
index b92fb0a..214e171 100644
--- a/java/com/android/dialer/blocking/res/values-cy/strings.xml
+++ b/java/com/android/dialer/blocking/res/values-cy/strings.xml
@@ -16,69 +16,36 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
   <string name="migrate_blocked_numbers_dialog_title">Dull rhwystro newydd a mwy syml</string>
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
   <string name="migrate_blocked_numbers_dialog_message">I dy warchod yn well, mae ar Ffôn angen newid sut mae rhwystro\'n gweithio. Bydd dy rifau sydd wedi\'u rhwystro nawr yn stopio galwadau a negeseuon testun a bydd hefyd yn bosib eu rhannu gydag apiau eraill.</string>
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
   <string name="migrate_blocked_numbers_dialog_allow_button">Caniatáu</string>
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
+  <string name="migrate_blocked_numbers_dialog_cancel_button">@android:string/cancel</string>
   <string name="block_number_confirmation_title">Rhwystro
         <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g>?</string>
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
   <string name="block_number_confirmation_message_vvm">Caiff galwadau o\'r rhif hwn eu rhwystro a bydd negeseuon llais yn cael eu dileu yn awtomatig.
     </string>
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
   <string name="block_number_confirmation_message_no_vvm">Caiff galwadau o\'r rhif hwn eu rhwystro, ond mi fydd dal yn bosib i\'r galwr adael negeseuon llais.
     </string>
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
   <string name="block_number_confirmation_message_new_filtering">        Ni fyddi bellach yn derbyn galwadau na negeseuon testun oddi wrth y rhif hwn.
     </string>
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
   <string name="block_number_ok">RHWYSTRO</string>
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
   <string name="unblock_number_confirmation_title">Dadrwystro
         <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g>?</string>
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
   <string name="unblock_number_ok">DADRWYSTRO</string>
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
   <string name="invalidNumber">Mae <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> yn annilys.</string>
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
   <string name="snackbar_number_blocked"><xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> wedi\'i rhwystro</string>
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
   <string name="snackbar_number_unblocked"><xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g> wedi\'i rhwystro</string>
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
   <string name="block_number_undo">DADWNEUD</string>
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
   <string name="send_to_voicemail_import_failed">Methwyd â mewnforio</string>
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
   <string name="call_blocking_disabled_notification_title">Mae rhwystro galwadau wedi ei analluogi am 48 awr.    </string>
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
   <string name="call_blocking_disabled_notification_text">Wedi\'i analluogi gan fod galwad brys wedi ei gwneud.    </string>
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
   <string name="block_report_number_alert_title">Rhwystro <xliff:g id="number">%1$s</xliff:g>?</string>
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
   <string name="block_report_number_alert_details">Ni fyddi\'n derbyn galwadau oddi wrth y rhif hwn eto.</string>
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
   <string name="block_number_alert_details"><xliff:g id="text">%1$s</xliff:g> Caiff y galwad hwn ei adrodd fel sbam.</string>
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
   <string name="unblock_number_alert_details">Caiff y rhif hwn ei ddadrwystro a\'i adrodd fel nad yw yn sbam. Ni chaiff galwadau eu hystyried fel sbam.</string>
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
   <string name="unblock_report_number_alert_title">Dadrwystro <xliff:g id="number">%1$s</xliff:g>?</string>
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
   <string name="report_not_spam_alert_button">Anfon Adroddiad</string>
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
   <string name="report_not_spam_alert_title">Anfon adroddiad am gamgymeriad?</string>
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
   <string name="report_not_spam_alert_details">Ni chaiff galwadau oddi wrth <xliff:g id="number">%1$s</xliff:g> cael eu hystyried fel sbam.</string>
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
   <string name="checkbox_report_as_spam_action">Adrodd yr alwad fel sbam</string>
 </resources>
diff --git a/java/com/android/dialer/blocking/res/values-en-rPT/strings.xml b/java/com/android/dialer/blocking/res/values-en-rPT/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-eo/strings.xml b/java/com/android/dialer/blocking/res/values-eo/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-eo/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-es-rCO/strings.xml b/java/com/android/dialer/blocking/res/values-es-rCO/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-es-rMX/strings.xml b/java/com/android/dialer/blocking/res/values-es-rMX/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-fil/strings.xml b/java/com/android/dialer/blocking/res/values-fil/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-fil/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-frp/strings.xml b/java/com/android/dialer/blocking/res/values-frp/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-frp/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-fy-rNL/strings.xml b/java/com/android/dialer/blocking/res/values-fy-rNL/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-ga-rIE/strings.xml b/java/com/android/dialer/blocking/res/values-ga-rIE/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-gd/strings.xml b/java/com/android/dialer/blocking/res/values-gd/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-gd/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/blocking/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-ku/strings.xml b/java/com/android/dialer/blocking/res/values-ku/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-ku/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-lb/strings.xml b/java/com/android/dialer/blocking/res/values-lb/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-lb/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-oc/strings.xml b/java/com/android/dialer/blocking/res/values-oc/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-oc/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-or-rIN/strings.xml b/java/com/android/dialer/blocking/res/values-or-rIN/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-rm/strings.xml b/java/com/android/dialer/blocking/res/values-rm/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-rm/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-sc-rIT/strings.xml b/java/com/android/dialer/blocking/res/values-sc-rIT/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-ug/strings.xml b/java/com/android/dialer/blocking/res/values-ug/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-ug/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/blocking/res/values-vec/strings.xml b/java/com/android/dialer/blocking/res/values-vec/strings.xml
deleted file mode 100644
index d031dc2..0000000
--- a/java/com/android/dialer/blocking/res/values-vec/strings.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=30]-->
-  <!-- Body text for dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Positive confirmation button for the dialog which opens when the user needs to migrate to the framework blocking implementation [CHAR LIMIT=NONE]-->
-  <!-- Do not translate -->
-  <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with visual voicemail active.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with no visual voicemail.
-       [CHAR LIMIT=NONE] -->
-  <!-- Confirmation dialog message for blocking a number with new filtering enabled.
-       [CHAR LIMIT=NONE] -->
-  <!-- Block number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
-  <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Error message shown when user tries to add invalid number to the block list.
-      [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
-  <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
-  <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
-  <!-- Title of notification telling the user that call blocking has been temporarily disabled.
-       [CHAR LIMIT=56] -->
-  <!-- Text for notification which provides the reason that call blocking has been temporarily
-       disabled. Namely, we disable call blocking after an emergency call in case of return
-       phone calls made by emergency services. [CHAR LIMIT=64] -->
-  <!-- Title of alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block/report as spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Block.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Title of alert dialog after clicking on Unblock.  [CHAR LIMIT=100] -->
-  <!-- Report not spam number alert dialog button [CHAR LIMIT=32] -->
-  <!-- Title of alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Text in alert dialog after clicking on Report as not spam.  [CHAR LIMIT=100] -->
-  <!-- Label for checkbox in the Alert dialog to allow the user to report the number as spam as well.  [CHAR LIMIT=30] -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-as-rIN/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-as-rIN/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-ast-rES/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-ast-rES/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-br-rFR/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-br-rFR/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-csb/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-csb/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-csb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-cy/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-cy/strings.xml
index 899b6f3..4759071 100644
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-cy/strings.xml
+++ b/java/com/android/dialer/callcomposer/cameraui/res/values-cy/strings.xml
@@ -16,16 +16,10 @@
  ~ limitations under the License
  -->
 <resources>
-  <!-- Content description of button to switch to full screen camera -->
   <string name="description_camera_switch_full_screen">Newid i gamera sgrin llawn</string>
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
   <string name="description_camera_switch_preview_screen">Newid i ragolwg camera</string>
-  <!-- Content description of button when after swapped to front -->
   <string name="description_camera_switch_camera_facing">Newid i\'r camera blaen</string>
-  <!-- Content description of button when after swapped to back -->
   <string name="description_camera_switch_camera_rear">Newid i\'r camera cefn</string>
-  <!-- Content description of button to take a photo -->
   <string name="description_camera_take_picture">Tynnu llun</string>
-  <!-- Content description of button to cancel a photo -->
   <string name="description_camera_cancel_photo">Ail-dynnu llun</string>
 </resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-en-rPT/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-en-rPT/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-eo/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-eo/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-eo/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-es-rCO/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-es-rCO/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-es-rMX/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-es-rMX/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-fil/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-fil/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-fil/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-frp/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-frp/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-frp/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-fy-rNL/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-ga-rIE/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-gd/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-gd/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-gd/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-ku/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-ku/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-ku/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-lb/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-lb/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-lb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-oc/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-oc/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-oc/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-or-rIN/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-or-rIN/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-rm/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-rm/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-rm/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-sc-rIT/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-ug/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-ug/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-ug/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/cameraui/res/values-vec/strings.xml b/java/com/android/dialer/callcomposer/cameraui/res/values-vec/strings.xml
deleted file mode 100644
index 54487f0..0000000
--- a/java/com/android/dialer/callcomposer/cameraui/res/values-vec/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2016 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources>
-  <!-- Content description of button to switch to full screen camera -->
-  <!-- Content description of button to resize camera from fullscreen to only a preview -->
-  <!-- Content description of button when after swapped to front -->
-  <!-- Content description of button when after swapped to back -->
-  <!-- Content description of button to take a photo -->
-  <!-- Content description of button to cancel a photo -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-as-rIN/strings.xml b/java/com/android/dialer/callcomposer/res/values-as-rIN/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-ast-rES/strings.xml b/java/com/android/dialer/callcomposer/res/values-ast-rES/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-br-rFR/strings.xml b/java/com/android/dialer/callcomposer/res/values-br-rFR/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-csb/strings.xml b/java/com/android/dialer/callcomposer/res/values-csb/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-csb/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-cy/strings.xml b/java/com/android/dialer/callcomposer/res/values-cy/strings.xml
index d2113c6..06c408f 100644
--- a/java/com/android/dialer/callcomposer/res/values-cy/strings.xml
+++ b/java/com/android/dialer/callcomposer/res/values-cy/strings.xml
@@ -16,42 +16,22 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
   <string name="urgent">Pwysig! Atebwch, plîs!</string>
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
   <string name="want_to_chat">Eisiau sgwrs?</string>
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
   <string name="quick_question">Cwestiwn cyflym…</string>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
   <string name="message_composer_custom_message_hint">Ysgrifenna neges dy hun</string>
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
   <string name="send_and_call">Anfon a galw</string>
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
   <string name="share_and_call">Rhannu a galw</string>
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
   <string name="gallery_item_description">delwedd <xliff:g id="date">%1$tB %1$te %1$tY %1$tl %1$tM %1$tp</xliff:g></string>
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
   <string name="gallery_item_description_no_date">delwedd</string>
-  <!-- Content description of button to switch camera to picture more -->
   <string name="camera_switch_to_still_mode">Tynnu llun</string>
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
   <string name="camera_media_failure">Methwyd â llwytho llun camera</string>
-  <!-- Text for a button to ask for device permissions -->
   <string name="allow">Caniatáu</string>
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
   <string name="camera_permission_text">I dynnu llun, rho fynediad i Camera</string>
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
   <string name="gallery_permission_text">I rannu llun, rho fynediad i Cyfryngau</string>
-  <!-- Content description of button to show ui for taking a photo -->
   <string name="description_call_composer_camera">Tynnu llun</string>
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
   <string name="description_call_composer_photo">Dewis llun</string>
-  <!-- Content description of button to show ui for sending a message -->
   <string name="description_call_composer_message">Anfon neges</string>
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
   <string name="image_sent_messages">Anfonwyd y neges gyda Negesu</string>
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
   <string name="message_sent_messages">Anfonwyd y neges gyda Negesu</string>
 </resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-en-rPT/strings.xml b/java/com/android/dialer/callcomposer/res/values-en-rPT/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-eo/strings.xml b/java/com/android/dialer/callcomposer/res/values-eo/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-eo/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-es-rCO/strings.xml b/java/com/android/dialer/callcomposer/res/values-es-rCO/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-es-rMX/strings.xml b/java/com/android/dialer/callcomposer/res/values-es-rMX/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-fil/strings.xml b/java/com/android/dialer/callcomposer/res/values-fil/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-fil/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-frp/strings.xml b/java/com/android/dialer/callcomposer/res/values-frp/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-frp/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-fy-rNL/strings.xml b/java/com/android/dialer/callcomposer/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-ga-rIE/strings.xml b/java/com/android/dialer/callcomposer/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-gd/strings.xml b/java/com/android/dialer/callcomposer/res/values-gd/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-gd/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/callcomposer/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-ku/strings.xml b/java/com/android/dialer/callcomposer/res/values-ku/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-ku/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-lb/strings.xml b/java/com/android/dialer/callcomposer/res/values-lb/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-lb/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-oc/strings.xml b/java/com/android/dialer/callcomposer/res/values-oc/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-oc/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-or-rIN/strings.xml b/java/com/android/dialer/callcomposer/res/values-or-rIN/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-rm/strings.xml b/java/com/android/dialer/callcomposer/res/values-rm/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-rm/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-sc-rIT/strings.xml b/java/com/android/dialer/callcomposer/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-ug/strings.xml b/java/com/android/dialer/callcomposer/res/values-ug/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-ug/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values-vec/strings.xml b/java/com/android/dialer/callcomposer/res/values-vec/strings.xml
deleted file mode 100644
index 84ee23e..0000000
--- a/java/com/android/dialer/callcomposer/res/values-vec/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- A default message to send with a phone call. [CHAR LIMIT=27] -->
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Text for a button to make a phone call combined with a text message [CHAR LIMIT=26] -->
-  <!-- Text for a button to make a phone call combined with a picture or other media [CHAR LIMIT=26] -->
-  <!-- Accessibility description for each image in the gallery. For example, "image January 17 2015 1 59 pm". -->
-  <!-- Accessibility description for each image in the gallery when no date is present. -->
-  <!-- Content description of button to switch camera to picture more -->
-  <!-- Error toast message shown when a camera image failed to attach to the message -->
-  <!-- Text for a button to ask for device permissions -->
-  <!-- Text presented to the user explaining that we need Camera permission to take photos -->
-  <!-- Text presented to the user explaining that we need device storage permission to view photos -->
-  <!-- Content description of button to show ui for taking a photo -->
-  <!-- Content description of button to show ui for selecting a photo from the user's gallery -->
-  <!-- Content description of button to show ui for sending a message -->
-  <!-- When a user makes a call with a photo attached, we send the photo through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-  <!-- When a user makes a call with text attached, we send the text through the app "Messages".
-    This string is shown in a toast for privacy reasons. -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-af/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-af/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-am/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-am/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-as-rIN/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-as-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-as-rIN/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ast-rES/strings.xml b/java/com/android/dialer/calldetails/res/values-ast-rES/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-az/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-az/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-be/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-be/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-bn/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-bn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-br-rFR/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-br-rFR/strings.xml b/java/com/android/dialer/calldetails/res/values-br-rFR/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-bs/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-bs/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-csb/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-csb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-csb/strings.xml b/java/com/android/dialer/calldetails/res/values-csb/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-csb/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-cy/strings.xml b/java/com/android/dialer/calldetails/res/values-cy/strings.xml
index 86d2ffd..7b9e591 100644
--- a/java/com/android/dialer/calldetails/res/values-cy/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-cy/strings.xml
@@ -16,28 +16,15 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
   <string name="call_details">Manylion yr alwad</string>
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
   <string name="delete">Dileu</string>
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
   <string name="call_details_copy_number">Copïo\'r rhif</string>
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
   <string name="call_details_edit_number">Golygu\'r rhif cyn galw</string>
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
   <string name="call_details_report_call_id">Rhoi gwybod am rif anghywir</string>
-  <!-- String shown when the call details show a image that was sent -->
   <string name="sent_a_photo">Anfon llun</string>
-  <!-- String shown when the call details show a image that was received -->
   <string name="received_a_photo">Wedi derbyn llun</string>
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
   <string name="message_in_quotes">\"<xliff:g id="message">%1$s</xliff:g>\"</string>
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
   <string name="report_caller_id_dialog_title">Rhoi gwybod am rif anghywir</string>
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
   <string name="report_caller_id_failed">Methwyd ag adrodd am y rhif</string>
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
   <string name="report_caller_id_toast">Wedi adrodd am y rhif</string>
 </resources>
diff --git a/java/com/android/dialer/calldetails/res/values-da/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-da/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rCA/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-en-rCA/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-en-rCA/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rGB/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-en-rGB/cm_strings.xml
index 27ad002..15284d5 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rGB/cm_strings.xml
@@ -15,4 +15,10 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <plurals name="play_recordings">
+        <item quantity="one">Play recording</item>
+        <item quantity="other">Play recordings</item>
+    </plurals>
+    <string name="call_playback_no_app_found_toast">No app could be found for playback of the selected recording.</string>
+</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rPT/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rPT/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rPT/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-eo/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-eo/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-eo/strings.xml b/java/com/android/dialer/calldetails/res/values-eo/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-eo/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rCO/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rCO/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rCO/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rMX/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rMX/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rMX/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-es/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-es/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-es/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-et/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-et/cm_strings.xml
index 27ad002..175cece 100644
--- a/java/com/android/dialer/calldetails/res/values-et/cm_strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-et/cm_strings.xml
@@ -15,4 +15,10 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <plurals name="play_recordings">
+        <item quantity="one">Esita salvestus</item>
+        <item quantity="other">Esita salvestused</item>
+    </plurals>
+    <string name="call_playback_no_app_found_toast">Valitud salvestuse taasesitamiseks ei leitud ühtegi rakendust.</string>
+</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fa/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-fa/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fil/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-fil/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fil/strings.xml b/java/com/android/dialer/calldetails/res/values-fil/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-fil/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fr-rCA/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-frp/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-frp/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-frp/strings.xml b/java/com/android/dialer/calldetails/res/values-frp/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-frp/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fy-rNL/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-fy-rNL/strings.xml b/java/com/android/dialer/calldetails/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ga-rIE/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ga-rIE/strings.xml b/java/com/android/dialer/calldetails/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-gd/strings.xml b/java/com/android/dialer/calldetails/res/values-gd/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-gd/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-gu/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-gu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-hi/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-hi/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-hr/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-hr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-hr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-hu/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-hu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-hy/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-hy/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-is/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-is/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ka/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ka/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-kab-rDZ/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/calldetails/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-kk/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-kk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-km/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-km/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-kn/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-kn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-kn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ku/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ku/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ku/strings.xml b/java/com/android/dialer/calldetails/res/values-ku/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-ku/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ky/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ky/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-lb/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-lb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-lb/strings.xml b/java/com/android/dialer/calldetails/res/values-lb/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-lb/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-lo/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-lo/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-lt/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-lt/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-lv/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-lv/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-mk/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-mk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ml/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ml/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-mn/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-mn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-mr/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-mr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ms/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ms/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-my/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-my/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-nb/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-nb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-nb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ne/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ne/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-nl/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-nl/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-nl/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-oc/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-oc/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-oc/strings.xml b/java/com/android/dialer/calldetails/res/values-oc/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-oc/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-or-rIN/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-or-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-or-rIN/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-pa/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-pa/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-rm/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-rm/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-rm/strings.xml b/java/com/android/dialer/calldetails/res/values-rm/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-rm/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sc-rIT/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-sc-rIT/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-sc-rIT/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sc-rIT/strings.xml b/java/com/android/dialer/calldetails/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-si/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-si/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sq/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-sq/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-sq/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sr/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-sr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-sr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sv/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-sv/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-sv/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-sw/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-sw/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ta/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ta/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-te/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-te/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-th/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-th/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-tl/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-tl/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ug/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ug/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ug/strings.xml b/java/com/android/dialer/calldetails/res/values-ug/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-ug/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-uk/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-uk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-uk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-ur/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-ur/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-uz/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-uz/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-vec/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-vec/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-vec/strings.xml b/java/com/android/dialer/calldetails/res/values-vec/strings.xml
deleted file mode 100644
index 0633490..0000000
--- a/java/com/android/dialer/calldetails/res/values-vec/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title bar for call detail screen -->
-  <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
-  <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
-  <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
-  <!-- Label for action to report a number with inaccurate caller id information. [CHAR LIMIT=48] -->
-  <!-- String shown when the call details show a image that was sent -->
-  <!-- String shown when the call details show a image that was received -->
-  <!-- Messages shown to the user are wrapped in quotes, e.g. the user would see "Some text" -->
-  <!-- Title of dialog that confirms whether a user wants to report an incorrect number.
-       [CHAR LIMIT=NONE] -->
-  <!-- Toast that appears when a caller id report fails to send. Could be due to network error or
-       authentication error. [CHAR LIMIT=NONE] -->
-  <!-- Toast message which appears when a contact's caller id is reported as incorrect. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rHK/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calldetails/res/values-zu/cm_strings.xml b/java/com/android/dialer/calldetails/res/values-zu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/dialer/calldetails/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-af/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-af/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-am/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-am/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-as-rIN/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-as-rIN/strings.xml b/java/com/android/dialer/calllogutils/res/values-as-rIN/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ast-rES/strings.xml b/java/com/android/dialer/calllogutils/res/values-ast-rES/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-az/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-az/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-be/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-be/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-bn/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-bn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-br-rFR/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-br-rFR/strings.xml b/java/com/android/dialer/calllogutils/res/values-br-rFR/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-bs/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-bs/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-csb/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-csb/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-csb/strings.xml b/java/com/android/dialer/calllogutils/res/values-csb/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-csb/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-cy/strings.xml b/java/com/android/dialer/calllogutils/res/values-cy/strings.xml
index badb320..7de9a17 100644
--- a/java/com/android/dialer/calllogutils/res/values-cy/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-cy/strings.xml
@@ -16,59 +16,29 @@
  ~ limitations under the License
  -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
   <string name="type_incoming">Galwad i mewn</string>
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
   <string name="type_incoming_pulled">Trosglwyddwyd galwad i mewn at ddyfais arall</string>
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
   <string name="type_outgoing">Galwad allan</string>
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
   <string name="type_outgoing_pulled">Trosglwyddwyd galwad allan at ddyfais arall</string>
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
   <string name="type_missed">Galwad wedi\'i methu</string>
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
   <string name="type_incoming_video">Galwad fideo i mewn</string>
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
   <string name="type_incoming_video_pulled">Trosglwyddwyd galwad fideo i mewn at ddyfais arall</string>
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
   <string name="type_outgoing_video">Galwad fideo allan</string>
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
   <string name="type_outgoing_video_pulled">Trosglwyddwyd galwad fideo allan at ddyfais arall</string>
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
   <string name="type_missed_video">Galwad fideo wedi\'i methu</string>
-  <!-- Title for voicemail details screen -->
   <string name="type_voicemail">Lleisbost</string>
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
   <string name="type_rejected">Galwad wedi\'i gwrthod</string>
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
   <string name="type_blocked">Galwad wedi\'i rhwystro</string>
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
   <string name="call_details_minutes_abbreviation">m</string>
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
   <string name="call_details_seconds_abbreviation">e</string>
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
   <string name="a11y_call_duration_format">    <xliff:g id="minutes">%d</xliff:g> <xliff:g id="minutes_translation">%s</xliff:g> <xliff:g id="seconds">%d</xliff:g> <xliff:g id="seconds_translation">%s</xliff:g>
   </string>
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
   <string name="a11y_call_duration_short_format">    <xliff:g id="seconds">%d</xliff:g> <xliff:g id="seconds_translation">%s</xliff:g>
   </string>
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
   <string name="call_duration_format_pattern">    <xliff:g id="minutes_special_character">%s</xliff:g>\'<xliff:g id="minutes_translation">%s</xliff:g>\' <xliff:g id="seconds_special_character">%s</xliff:g>\'<xliff:g id="seconds_translation">%s</xliff:g>\'
   </string>
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
   <string name="call_duration_short_format_pattern">    <xliff:g id="seconds_special_character">%s</xliff:g>\'<xliff:g id="seconds_translation">%s</xliff:g>\'
   </string>
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
   <plurals name="a11y_seconds">
     <item quantity="zero">eiliadau</item>
     <item quantity="one">eiliad</item>
@@ -77,7 +47,6 @@
     <item quantity="many">eiliad</item>
     <item quantity="other">eiliad</item>
   </plurals>
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
   <plurals name="a11y_minutes">
     <item quantity="zero">munudau</item>
     <item quantity="one">munud</item>
@@ -86,25 +55,9 @@
     <item quantity="many">munud</item>
     <item quantity="other">munud</item>
   </plurals>
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
   <string name="type_answered_elsewhere">Atebwyd yr alwad ar ddyfais arall</string>
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
   <string name="description_phone_account">ar <xliff:g example="SIM 1" id="phoneAccount">^1</xliff:g></string>
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
   <string name="description_via_number">trwy <xliff:g example="(555) 555-5555" id="number">%1$s</xliff:g></string>
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
   <string name="description_via_number_phone_account">ar <xliff:g example="SIM 1" id="phoneAccount">%1$s</xliff:g>, trwy <xliff:g example="(555) 555-5555" id="number">%2$s</xliff:g></string>
-  <!-- String used for displaying calls to the voicemail number in the call log -->
   <string name="voicemail_string">Lleisbost</string>
 </resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-da/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-da/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rCA/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rCA/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-en-rCA/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rGB/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rGB/cm_strings.xml
index beba990..1214e42 100644
--- a/java/com/android/dialer/calllogutils/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-en-rGB/cm_strings.xml
@@ -16,4 +16,8 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="call_log_show_all_accounts">All accounts</string>
+    <string name="call_log_all_calls_header">All calls</string>
+    <string name="call_log_blacklist_header">Blocked calls only</string>
+</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rPT/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rPT/strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rPT/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-eo/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-eo/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-eo/strings.xml b/java/com/android/dialer/calllogutils/res/values-eo/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-eo/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es-rCO/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es-rCO/strings.xml b/java/com/android/dialer/calllogutils/res/values-es-rCO/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es-rMX/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es-rMX/strings.xml b/java/com/android/dialer/calllogutils/res/values-es-rMX/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-es/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-es/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-et/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-et/cm_strings.xml
index beba990..cdbd627 100644
--- a/java/com/android/dialer/calllogutils/res/values-et/cm_strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-et/cm_strings.xml
@@ -16,4 +16,8 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="call_log_show_all_accounts">Kõik kontod</string>
+    <string name="call_log_all_calls_header">Kõik kõned</string>
+    <string name="call_log_blacklist_header">Ainult blokeeritud kõned</string>
+</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fa/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-fa/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fil/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-fil/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fil/strings.xml b/java/com/android/dialer/calllogutils/res/values-fil/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fil/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fr-rCA/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-frp/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-frp/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-frp/strings.xml b/java/com/android/dialer/calllogutils/res/values-frp/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-frp/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fy-rNL/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fy-rNL/strings.xml b/java/com/android/dialer/calllogutils/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ga-rIE/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ga-rIE/strings.xml b/java/com/android/dialer/calllogutils/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-gd/strings.xml b/java/com/android/dialer/calllogutils/res/values-gd/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-gd/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-gu/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-gu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hi/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-hi/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hr/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-hr/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-hr/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hu/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-hu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hy/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-hy/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-is/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-is/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ka/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ka/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kab-rDZ/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/calllogutils/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kk/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-kk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-km/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-km/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kn/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-kn/cm_strings.xml
index beba990..9a4fc55 100644
--- a/java/com/android/dialer/calllogutils/res/values-kn/cm_strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-kn/cm_strings.xml
@@ -16,4 +16,6 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="call_log_all_calls_header">ಎಲ್ಲಾ ಕರೆಗಳು</string>
+</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ku/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ku/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ku/strings.xml b/java/com/android/dialer/calllogutils/res/values-ku/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ku/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ky/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ky/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lb/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-lb/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lb/strings.xml b/java/com/android/dialer/calllogutils/res/values-lb/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-lb/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lo/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-lo/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lt/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-lt/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lv/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-lv/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mk/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-mk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ml/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ml/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mn/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-mn/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mr/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-mr/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ms/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ms/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-my/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-my/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-nb/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-nb/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-nb/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ne/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ne/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-nl/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-nl/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-nl/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-oc/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-oc/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-oc/strings.xml b/java/com/android/dialer/calllogutils/res/values-oc/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-oc/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-or-rIN/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-or-rIN/strings.xml b/java/com/android/dialer/calllogutils/res/values-or-rIN/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pa/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-pa/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-rm/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-rm/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-rm/strings.xml b/java/com/android/dialer/calllogutils/res/values-rm/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-rm/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sc-rIT/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-sc-rIT/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sc-rIT/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sc-rIT/strings.xml b/java/com/android/dialer/calllogutils/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-si/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-si/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sq/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-sq/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sq/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sr/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-sr/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sr/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sv/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-sv/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sv/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sw/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-sw/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ta/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ta/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-te/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-te/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-th/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-th/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-tl/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-tl/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-tr/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-tr/cm_strings.xml
index f26e0e5..81f2424 100644
--- a/java/com/android/dialer/calllogutils/res/values-tr/cm_strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-tr/cm_strings.xml
@@ -19,5 +19,5 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_log_show_all_accounts">Tüm hesaplar</string>
     <string name="call_log_all_calls_header">Tüm aramalar</string>
-    <string name="call_log_blacklist_header">Yalnızca engellenen aramalar</string>
+    <string name="call_log_blacklist_header">Sadece engellenen aramalar</string>
 </resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ug/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ug/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ug/strings.xml b/java/com/android/dialer/calllogutils/res/values-ug/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ug/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-uk/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-uk/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-uk/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ur/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-ur/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-uz/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-uz/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-vec/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-vec/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-vec/strings.xml b/java/com/android/dialer/calllogutils/res/values-vec/strings.xml
deleted file mode 100644
index 5a50685..0000000
--- a/java/com/android/dialer/calllogutils/res/values-vec/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title for incoming call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
-  <!-- Title for outgoing call which was transferred to another device. [CHAR LIMIT=60] -->
-  <!-- Title for missed call type. [CHAR LIMIT=40] -->
-  <!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for incoming video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for outgoing video call in call details screen which was transferred to another device.
-       [CHAR LIMIT=60] -->
-  <!-- Title for missed video call in call details screen [CHAR LIMIT=60] -->
-  <!-- Title for voicemail details screen -->
-  <!-- Title for rejected call type. [CHAR LIMIT=40] -->
-  <!-- Title for blocked call type. [CHAR LIMIT=40] -->
-  <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
-  <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A string to announce a call duration. For example, in english might say 15 seconds.
-       This translation may require the variables to be rearranged for grammars different than
-       english. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
-        seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A pattern to define the layout of a call duration string. for example, in english might
-        say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
-        remain in \'quotes\'. [CHAR LIMIT=NONE] -->
-  <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
-  <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
-  <!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
-       simultaneously on multiple devices, and the user answered it on a device other than the
-       current device. [CHAR LIMIT=60] -->
-  <!-- String describing the phone account the call was made on or to. This string will be used
-         in description_incoming_missed_call, description_incoming_answered_call, and
-         description_outgoing_call.
-         Note: AccessibilityServices uses this attribute to announce what the view represents.
-         [CHAR LIMIT=NONE] -->
-  <!-- String describing the secondary line number the call was received via.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String describing the PhoneAccount and via number that a call was received on, if both are
-       visible.
-       Note: AccessibilityServices use this attribute to announce what the view represents.
-       [CHAR LIMIT=NONE]-->
-  <!-- String used for displaying calls to the voicemail number in the call log -->
-</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zh-rHK/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zu/cm_strings.xml b/java/com/android/dialer/calllogutils/res/values-zu/cm_strings.xml
deleted file mode 100644
index beba990..0000000
--- a/java/com/android/dialer/calllogutils/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-af/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-af/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-af/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-af/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-af/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-af/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-af/cm_strings.xml b/java/com/android/dialer/callstats/res/values-af/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-am/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-am/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-am/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-am/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-am/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-am/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-am/cm_strings.xml b/java/com/android/dialer/callstats/res/values-am/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ar/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ar/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ar/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ar/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ar/cm_strings.xml
index afcac33..32c8b93 100644
--- a/java/com/android/dialer/callstats/res/values-ar/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ar/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">مدد المكالمات</string>
     <string name="call_stats_title_count">عدد المكالمات</string>
     <string name="call_stats_title_average_duration">متوسط مدة المكالمة</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">سجل مكالماتك لا يحتوي على أي مكالمات في نطاق الوقت المحدد.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-as-rIN/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-as-rIN/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-as-rIN/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-as-rIN/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-as-rIN/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-as-rIN/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-as-rIN/cm_strings.xml b/java/com/android/dialer/callstats/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ast-rES/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ast-rES/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ast-rES/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ast-rES/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ast-rES/cm_strings.xml
index 197cb24..b1f4816 100644
--- a/java/com/android/dialer/callstats/res/values-ast-rES/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ast-rES/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Duraciones de llamaes</string>
     <string name="call_stats_title_count">Númberu de llamaes</string>
     <string name="call_stats_title_average_duration">Duración media de llamaes</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">El rexistru de llamaes nun contién denguna llamada nel rangu esbilláu de tiempu.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-az/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-az/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-az/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-az/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-az/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-az/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-az/cm_strings.xml b/java/com/android/dialer/callstats/res/values-az/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-be/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-be/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-be/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-be/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-be/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-be/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-be/cm_strings.xml b/java/com/android/dialer/callstats/res/values-be/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-bg/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-bg/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-bg/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-bg/cm_strings.xml b/java/com/android/dialer/callstats/res/values-bg/cm_strings.xml
index f9456d9..e9aa2b2 100644
--- a/java/com/android/dialer/callstats/res/values-bg/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-bg/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Продължителност на разговора</string>
     <string name="call_stats_title_count">Брой обаждания</string>
     <string name="call_stats_title_average_duration">Средна продължителност на повикванията</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Няма регистрирани повиквания през зададения период.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-bn/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-bn/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-bn/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-bn/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-bn/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-bn/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-bn/cm_strings.xml b/java/com/android/dialer/callstats/res/values-bn/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-br-rFR/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-br-rFR/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-br-rFR/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-br-rFR/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-br-rFR/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-br-rFR/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-br-rFR/cm_strings.xml b/java/com/android/dialer/callstats/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-bs/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-bs/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-bs/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-bs/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-bs/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-bs/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-bs/cm_strings.xml b/java/com/android/dialer/callstats/res/values-bs/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ca/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ca/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ca/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ca/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ca/cm_strings.xml
index ae5491b..c818304 100644
--- a/java/com/android/dialer/callstats/res/values-ca/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ca/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Durada de les trucades</string>
     <string name="call_stats_title_count">Comptador de trucades</string>
     <string name="call_stats_title_average_duration">Durada mitjana de les trucades</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">El registre de trucades no conté cap trucada en el període seleccionat.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-cs/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-cs/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-cs/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-cs/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-cs/cm_strings.xml b/java/com/android/dialer/callstats/res/values-cs/cm_strings.xml
index 7b86d9a..11e6ac2 100644
--- a/java/com/android/dialer/callstats/res/values-cs/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-cs/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Délky hovorů</string>
     <string name="call_stats_title_count">Počet hovorů</string>
     <string name="call_stats_title_average_duration">Průměrná délka hovoru</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Seznam hovorů neobsahuje v daném časovém úseku žádná data.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-csb/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-csb/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-csb/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-csb/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-csb/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-csb/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-csb/cm_strings.xml b/java/com/android/dialer/callstats/res/values-csb/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-cy/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-cy/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-cy/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-cy/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-cy/cm_strings.xml b/java/com/android/dialer/callstats/res/values-cy/cm_strings.xml
index 902044b..f7dc71c 100644
--- a/java/com/android/dialer/callstats/res/values-cy/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-cy/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Hyd alwadau</string>
     <string name="call_stats_title_count">Nifer galwadau</string>
     <string name="call_stats_title_average_duration">Hyd galwadau ar gyfartaledd</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Nid yw dy log galwadau yn cynnwys unrhyw alwadau yn y cyfnod dan sylw.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-da/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-da/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-da/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-da/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-da/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-da/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-da/cm_strings.xml b/java/com/android/dialer/callstats/res/values-da/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-de/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-de/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-de/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-de/cm_strings.xml b/java/com/android/dialer/callstats/res/values-de/cm_strings.xml
index e8bdf6c..ada40b2 100644
--- a/java/com/android/dialer/callstats/res/values-de/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-de/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Gesprächsdauer</string>
     <string name="call_stats_title_count">Gesprächsanzahl</string>
     <string name="call_stats_title_average_duration">Durchschnittliche Gesprächsdauer</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Das Anrufprotokoll enthält keine Anrufe im ausgewählten Zeitraum.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-el/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-el/cm_arrays.xml
index 4b975bb..8dd3fa2 100644
--- a/java/com/android/dialer/callstats/res/values-el/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-el/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 δ">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 λ">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-el/cm_strings.xml b/java/com/android/dialer/callstats/res/values-el/cm_strings.xml
index d83ef66..e5b92b1 100644
--- a/java/com/android/dialer/callstats/res/values-el/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-el/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Διάρκεια κλήσεων</string>
     <string name="call_stats_title_count">Αριθμός κλήσεων</string>
     <string name="call_stats_title_average_duration">Μέση διάρκεια κλήσεων</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Το αρχείο καταγραφής κλήσεων δεν περιέχει καμία κλήση στο επιλεγμένο χρονικό εύρος.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rAU/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-en-rAU/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-en-rAU/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rAU/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-en-rAU/cm_strings.xml b/java/com/android/dialer/callstats/res/values-en-rAU/cm_strings.xml
index 23832e7..db92086 100644
--- a/java/com/android/dialer/callstats/res/values-en-rAU/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rAU/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Call durations</string>
     <string name="call_stats_title_count">Call count</string>
     <string name="call_stats_title_average_duration">Average call duration</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Your call log does not contain any calls in the selected time range.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rCA/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-en-rCA/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rCA/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rCA/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-en-rCA/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rCA/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rCA/cm_strings.xml b/java/com/android/dialer/callstats/res/values-en-rCA/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rCA/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rGB/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-en-rGB/cm_arrays.xml
index 05251d5..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-en-rGB/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rGB/cm_arrays.xml
@@ -17,11 +17,13 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
+    <string-array name="call_stats_duration">
+        <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+        <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+    </string-array>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rGB/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-en-rGB/cm_plurals.xml
index 9bae86b..8450e60 100644
--- a/java/com/android/dialer/callstats/res/values-en-rGB/cm_plurals.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rGB/cm_plurals.xml
@@ -15,4 +15,21 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <plurals name="hour">
+        <item quantity="one">1 hr</item>
+        <item quantity="other">%d hrs</item>
+    </plurals>
+    <plurals name="minute">
+        <item quantity="one">1 min</item>
+        <item quantity="other">%d mins</item>
+    </plurals>
+    <plurals name="second">
+        <item quantity="one">1 sec</item>
+        <item quantity="other">%d secs</item>
+    </plurals>
+    <plurals name="call">
+        <item quantity="one">1 call</item>
+        <item quantity="other">%d calls</item>
+    </plurals>
+</resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rGB/cm_strings.xml b/java/com/android/dialer/callstats/res/values-en-rGB/cm_strings.xml
index ac76b68..db92086 100644
--- a/java/com/android/dialer/callstats/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rGB/cm_strings.xml
@@ -17,5 +17,33 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
+    <string name="call_stats_detail_title">Contact statistics details</string>
+    <string name="call_stats_incoming">Incoming: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_outgoing">Outgoing: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_missed">Missed: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_blocked">Blocked: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_percent"><xliff:g id="percent">%d</xliff:g>%%</string>
+    <string name="call_stats_header_total">Total: <xliff:g id="call_count">%s</xliff:g>, <xliff:g id="duration">%s</xliff:g></string>
+    <string name="call_stats_header_total_callsonly">Total: <xliff:g id="call_count">%s</xliff:g></string>
+    <string name="call_stats_filter_from">Start date</string>
+    <string name="call_stats_filter_to">End date</string>
+    <string name="call_stats_filter_picker_title">Filter range</string>
+    <string name="date_quick_selection">Quick selection</string>
+    <string name="date_qs_currentmonth">Current month</string>
+    <string name="date_qs_currentquarter">Current quarter</string>
+    <string name="date_qs_currentyear">Current year</string>
+    <string name="date_qs_lastweek">Last week</string>
+    <string name="date_qs_lastmonth">Last month</string>
+    <string name="date_qs_lastquarter">Last quarter</string>
+    <string name="date_qs_lastyear">Last year</string>
+    <string name="call_stats_date_filter">Adjust time range</string>
+    <string name="call_stats_reset_filter">Reset time range</string>
+    <string name="call_stats_sort_by_duration">Sort by call duration</string>
+    <string name="call_stats_sort_by_count">Sort by call count</string>
+    <string name="call_stats_title_for_number">This number</string>
+    <string name="call_stats_title_of_total">Of total</string>
+    <string name="call_stats_title_durations">Call durations</string>
+    <string name="call_stats_title_count">Call count</string>
+    <string name="call_stats_title_average_duration">Average call duration</string>
+    <string name="recent_calls_no_items_in_range">Your call log does not contain any calls in the selected time range.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rIN/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-en-rIN/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-en-rIN/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rIN/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-en-rIN/cm_strings.xml b/java/com/android/dialer/callstats/res/values-en-rIN/cm_strings.xml
index 23832e7..db92086 100644
--- a/java/com/android/dialer/callstats/res/values-en-rIN/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-en-rIN/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Call durations</string>
     <string name="call_stats_title_count">Call count</string>
     <string name="call_stats_title_average_duration">Average call duration</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Your call log does not contain any calls in the selected time range.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rPT/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-en-rPT/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rPT/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rPT/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-en-rPT/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rPT/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-en-rPT/cm_strings.xml b/java/com/android/dialer/callstats/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-eo/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-eo/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-eo/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-eo/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-eo/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-eo/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-eo/cm_strings.xml b/java/com/android/dialer/callstats/res/values-eo/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rCO/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-es-rCO/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rCO/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rCO/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-es-rCO/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rCO/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rCO/cm_strings.xml b/java/com/android/dialer/callstats/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rMX/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-es-rMX/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rMX/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rMX/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-es-rMX/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rMX/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rMX/cm_strings.xml b/java/com/android/dialer/callstats/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es-rUS/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-es-rUS/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-es-rUS/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-es-rUS/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-es-rUS/cm_strings.xml b/java/com/android/dialer/callstats/res/values-es-rUS/cm_strings.xml
index 25cc020..9bb93b5 100644
--- a/java/com/android/dialer/callstats/res/values-es-rUS/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-es-rUS/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Duración de llamada</string>
     <string name="call_stats_title_count">Contador de llamada</string>
     <string name="call_stats_title_average_duration">Duración promedio</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Sin registro de llamadas en el rango de tiempo seleccionado.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-es/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-es/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-es/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-es/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-es/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-es/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-es/cm_strings.xml b/java/com/android/dialer/callstats/res/values-es/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-es/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-et/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-et/cm_arrays.xml
index 05251d5..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-et/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-et/cm_arrays.xml
@@ -17,11 +17,13 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
+    <string-array name="call_stats_duration">
+        <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+        <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+        <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+    </string-array>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-et/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-et/cm_plurals.xml
index 9bae86b..02d0652 100644
--- a/java/com/android/dialer/callstats/res/values-et/cm_plurals.xml
+++ b/java/com/android/dialer/callstats/res/values-et/cm_plurals.xml
@@ -15,4 +15,21 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <plurals name="hour">
+        <item quantity="one">1 tund</item>
+        <item quantity="other">%d tundi</item>
+    </plurals>
+    <plurals name="minute">
+        <item quantity="one">1 min</item>
+        <item quantity="other">%d min</item>
+    </plurals>
+    <plurals name="second">
+        <item quantity="one">1 s</item>
+        <item quantity="other">%d s</item>
+    </plurals>
+    <plurals name="call">
+        <item quantity="one">1 kõne</item>
+        <item quantity="other">%d kõnet</item>
+    </plurals>
+</resources>
diff --git a/java/com/android/dialer/callstats/res/values-et/cm_strings.xml b/java/com/android/dialer/callstats/res/values-et/cm_strings.xml
index ac76b68..2df75c5 100644
--- a/java/com/android/dialer/callstats/res/values-et/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-et/cm_strings.xml
@@ -17,5 +17,33 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
+    <string name="call_stats_detail_title">Kontaktide statistika andmed</string>
+    <string name="call_stats_incoming">Sissetulev: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_outgoing">Väljuv: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_missed">Vastamata: <xliff:g id="value">%s</xliff:g></string>
+    <string name="call_stats_blocked">Blokeeritud: <xliff:g id="value">%s </xliff:g></string>
+    <string name="call_stats_percent"><xliff:g id="percent">%d</xliff:g>%%</string>
+    <string name="call_stats_header_total">Kokku: <xliff:g id="call_count">%s</xliff:g>, <xliff:g id="duration">%s</xliff:g></string>
+    <string name="call_stats_header_total_callsonly">Kokku: <xliff:g id="call_count">%s</xliff:g></string>
+    <string name="call_stats_filter_from">Alguskuupäev</string>
+    <string name="call_stats_filter_to">Lõppkuupäev</string>
+    <string name="call_stats_filter_picker_title">Filtri vahemik</string>
+    <string name="date_quick_selection">Kiirvalik</string>
+    <string name="date_qs_currentmonth">Käesolev kuu</string>
+    <string name="date_qs_currentquarter">Käesolev kvartal</string>
+    <string name="date_qs_currentyear">Käesolev aasta</string>
+    <string name="date_qs_lastweek">Eelmine nädal</string>
+    <string name="date_qs_lastmonth">Eelmine kuu</string>
+    <string name="date_qs_lastquarter">Eelmine kvartal</string>
+    <string name="date_qs_lastyear">Eelmine aasta</string>
+    <string name="call_stats_date_filter">Muuda ajavahemikku</string>
+    <string name="call_stats_reset_filter">Lähtesta ajavahemik</string>
+    <string name="call_stats_sort_by_duration">Sorteeri kõne kestvuse järgi</string>
+    <string name="call_stats_sort_by_count">Sorteeri kõnede arvu järgi</string>
+    <string name="call_stats_title_for_number">See number</string>
+    <string name="call_stats_title_of_total">Koguarvust</string>
+    <string name="call_stats_title_durations">Kõnede kestus</string>
+    <string name="call_stats_title_count">Kõnede arv</string>
+    <string name="call_stats_title_average_duration">Keskmine kõne kestus</string>
+    <string name="recent_calls_no_items_in_range">Sinu kõnelogi ei sisalda valitud ajavahemikus ühtegi kõnet.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-eu/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-eu/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-eu/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-eu/cm_strings.xml b/java/com/android/dialer/callstats/res/values-eu/cm_strings.xml
index 5835927..836a4bb 100644
--- a/java/com/android/dialer/callstats/res/values-eu/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-eu/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Deien iraupenak</string>
     <string name="call_stats_title_count">Dei kopurua</string>
     <string name="call_stats_title_average_duration">Batezbesteko dei iraupena</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Zure deien egunkariak ez du deirik aukeratutako denbora tartean.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-fa/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fa/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-fa/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fa/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-fa/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-fa/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-fa/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fa/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fi/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fi/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-fi/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-fi/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-fi/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fi/cm_strings.xml
index 8a065b0..aae3392 100644
--- a/java/com/android/dialer/callstats/res/values-fi/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-fi/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Puheluiden kestot</string>
     <string name="call_stats_title_count">Puheluiden määrä</string>
     <string name="call_stats_title_average_duration">Puhelun keskimääräinen kesto</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Puhelulokissasi ei ole puheluita valitulta ajanjaksolta.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-fil/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fil/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-fil/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fil/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-fil/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-fil/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-fil/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fil/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fr-rCA/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-fr-rCA/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fr/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fr/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-fr/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-fr/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-fr/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fr/cm_strings.xml
index 20574df..6b1e92d 100644
--- a/java/com/android/dialer/callstats/res/values-fr/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-fr/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Durées d’appel</string>
     <string name="call_stats_title_count">Nombre d\'appels</string>
     <string name="call_stats_title_average_duration">Durée moyenne des appels</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Votre journal ne contient aucun appel sur la période sélectionnée.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-frp/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-frp/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-frp/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-frp/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-frp/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-frp/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-frp/cm_strings.xml b/java/com/android/dialer/callstats/res/values-frp/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-fy-rNL/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-fy-rNL/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_strings.xml b/java/com/android/dialer/callstats/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ga-rIE/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ga-rIE/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-gd/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-gd/cm_arrays.xml
index 046f0ff..0f1a1c6 100644
--- a/java/com/android/dialer/callstats/res/values-gd/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-gd/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 dhiog">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mhion">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-gd/cm_strings.xml b/java/com/android/dialer/callstats/res/values-gd/cm_strings.xml
index 8e3ba10..be92e50 100644
--- a/java/com/android/dialer/callstats/res/values-gd/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-gd/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Faidean nan gairmean</string>
     <string name="call_stats_title_count">Cunntas nan gairmean</string>
     <string name="call_stats_title_average_duration">Faide cuibheasach nan gairmean</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Chan eil gairm sam bith ann an loga nan gairmean agad am broinn rainse na h-ama a thagh thu.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-gl/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-gl/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-gl/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-gl/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-gl/cm_strings.xml b/java/com/android/dialer/callstats/res/values-gl/cm_strings.xml
index 25cab92..7208226 100644
--- a/java/com/android/dialer/callstats/res/values-gl/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-gl/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Duración das chamadas</string>
     <string name="call_stats_title_count">Contador de chamadas</string>
     <string name="call_stats_title_average_duration">Duración media das chamadas</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">O rexistro de chamadas non contén ningunha chamada no período seleccionado.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-gu/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-gu/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-gu/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-gu/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-gu/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-gu/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-gu/cm_strings.xml b/java/com/android/dialer/callstats/res/values-gu/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hi/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-hi/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-hi/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hi/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-hi/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-hi/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-hi/cm_strings.xml b/java/com/android/dialer/callstats/res/values-hi/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hr/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-hr/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-hr/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hr/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-hr/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-hr/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-hr/cm_strings.xml b/java/com/android/dialer/callstats/res/values-hr/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-hr/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hu/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-hu/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-hu/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hu/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-hu/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-hu/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-hu/cm_strings.xml b/java/com/android/dialer/callstats/res/values-hu/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hy/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-hy/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-hy/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-hy/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-hy/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-hy/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-hy/cm_strings.xml b/java/com/android/dialer/callstats/res/values-hy/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-in/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-in/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-in/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-in/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-in/cm_strings.xml b/java/com/android/dialer/callstats/res/values-in/cm_strings.xml
index 22918fa..f545f0d 100644
--- a/java/com/android/dialer/callstats/res/values-in/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-in/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Durasi panggilan</string>
     <string name="call_stats_title_count">Jumlah panggilan</string>
     <string name="call_stats_title_average_duration">Rata-rata durasi panggilan</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Log panggilan Anda tidak terdapat penggilan dalam rentang waktu yang dipilih.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-is/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-is/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-is/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-is/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-is/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-is/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-is/cm_strings.xml b/java/com/android/dialer/callstats/res/values-is/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-it/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-it/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-it/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-it/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-it/cm_strings.xml b/java/com/android/dialer/callstats/res/values-it/cm_strings.xml
index bb3056a..b5bb356 100644
--- a/java/com/android/dialer/callstats/res/values-it/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-it/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Durata chiamate</string>
     <string name="call_stats_title_count">Conteggio chiamate</string>
     <string name="call_stats_title_average_duration">Durata media chiamata</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Il registro chiamate non contiene nessuna chiamata nel periodo di tempo selezionato.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-iw/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-iw/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-iw/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-iw/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-iw/cm_strings.xml b/java/com/android/dialer/callstats/res/values-iw/cm_strings.xml
index e129665..eb457ef 100644
--- a/java/com/android/dialer/callstats/res/values-iw/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-iw/cm_strings.xml
@@ -25,5 +25,4 @@
     <string name="call_stats_percent"><xliff:g id="percent">%d</xliff:g>%%</string>
     <string name="call_stats_header_total">סך הכול: <xliff:g id="call_count">%s</xliff:g>, <xliff:g id="duration">%s</xliff:g></string>
     <string name="call_stats_header_total_callsonly">סך הכול: <xliff:g id="call_count">%s</xliff:g></string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-ja/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ja/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-ja/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-ja/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-ja/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ja/cm_strings.xml
index 2e3ad8f..6394640 100644
--- a/java/com/android/dialer/callstats/res/values-ja/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ja/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">通話時間</string>
     <string name="call_stats_title_count">通話回数</string>
     <string name="call_stats_title_average_duration">平均通話時間</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">指定した期間には通話履歴がありません。</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-ka/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ka/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ka/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ka/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ka/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ka/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ka/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ka/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_strings.xml b/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kk/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-kk/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-kk/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kk/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-kk/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-kk/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-kk/cm_strings.xml b/java/com/android/dialer/callstats/res/values-kk/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-km/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-km/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-km/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-km/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-km/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-km/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-km/cm_strings.xml b/java/com/android/dialer/callstats/res/values-km/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kn/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-kn/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-kn/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-kn/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-kn/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-kn/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-kn/cm_strings.xml b/java/com/android/dialer/callstats/res/values-kn/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-kn/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ko/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ko/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-ko/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-ko/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-ko/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ko/cm_strings.xml
index bd65916..4f29786 100644
--- a/java/com/android/dialer/callstats/res/values-ko/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ko/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">통화 시간</string>
     <string name="call_stats_title_count">통화 횟수</string>
     <string name="call_stats_title_average_duration">평균 통화 시간</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">선택된 시간 범위에 존재하는 통화 내역이 없습니다.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-ku/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ku/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ku/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ku/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ku/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ku/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ku/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ku/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ky/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ky/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ky/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ky/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ky/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ky/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ky/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ky/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lb/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-lb/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-lb/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lb/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-lb/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-lb/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-lb/cm_strings.xml b/java/com/android/dialer/callstats/res/values-lb/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lo/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-lo/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-lo/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lo/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-lo/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-lo/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-lo/cm_strings.xml b/java/com/android/dialer/callstats/res/values-lo/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lt/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-lt/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-lt/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lt/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-lt/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-lt/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-lt/cm_strings.xml b/java/com/android/dialer/callstats/res/values-lt/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lv/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-lv/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-lv/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-lv/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-lv/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-lv/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-lv/cm_strings.xml b/java/com/android/dialer/callstats/res/values-lv/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mk/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-mk/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-mk/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mk/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-mk/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-mk/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-mk/cm_strings.xml b/java/com/android/dialer/callstats/res/values-mk/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ml/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ml/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ml/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ml/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ml/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ml/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ml/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ml/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mn/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-mn/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-mn/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mn/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-mn/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-mn/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-mn/cm_strings.xml b/java/com/android/dialer/callstats/res/values-mn/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mr/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-mr/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-mr/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-mr/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-mr/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-mr/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-mr/cm_strings.xml b/java/com/android/dialer/callstats/res/values-mr/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ms/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ms/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ms/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ms/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ms/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ms/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ms/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ms/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-my/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-my/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-my/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-my/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-my/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-my/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-my/cm_strings.xml b/java/com/android/dialer/callstats/res/values-my/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-nb/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-nb/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-nb/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-nb/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-nb/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-nb/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-nb/cm_strings.xml b/java/com/android/dialer/callstats/res/values-nb/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-nb/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ne/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ne/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ne/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ne/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ne/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ne/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ne/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ne/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-nl/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-nl/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-nl/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-nl/cm_strings.xml b/java/com/android/dialer/callstats/res/values-nl/cm_strings.xml
index 5993d43..aa6f5ca 100644
--- a/java/com/android/dialer/callstats/res/values-nl/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-nl/cm_strings.xml
@@ -43,5 +43,4 @@
     <string name="call_stats_title_of_total">Van in totaal</string>
     <string name="call_stats_title_durations">Gespreksduur</string>
     <string name="call_stats_title_count">Aantal gesprekken</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-oc/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-oc/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-oc/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-oc/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-oc/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-oc/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-oc/cm_strings.xml b/java/com/android/dialer/callstats/res/values-oc/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-or-rIN/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-or-rIN/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-or-rIN/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-or-rIN/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-or-rIN/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-or-rIN/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-or-rIN/cm_strings.xml b/java/com/android/dialer/callstats/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-pa/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-pa/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-pa/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-pa/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-pa/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-pa/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-pa/cm_strings.xml b/java/com/android/dialer/callstats/res/values-pa/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-pl/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-pl/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-pl/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-pl/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-pl/cm_strings.xml b/java/com/android/dialer/callstats/res/values-pl/cm_strings.xml
index 6dab1ea..944c2bd 100644
--- a/java/com/android/dialer/callstats/res/values-pl/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-pl/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Czasy połączeń</string>
     <string name="call_stats_title_count">Liczba połączeń</string>
     <string name="call_stats_title_average_duration">Średni czas połączenia</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Twój dziennik połączeń nie zawiera żadnego połączenia w wybranym przedziale czasu.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-pt-rBR/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-pt-rBR/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-pt-rBR/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-pt-rBR/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-pt-rBR/cm_strings.xml b/java/com/android/dialer/callstats/res/values-pt-rBR/cm_strings.xml
index 0f6d999..b5cc809 100644
--- a/java/com/android/dialer/callstats/res/values-pt-rBR/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-pt-rBR/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Duração das chamadas</string>
     <string name="call_stats_title_count">Quantidade de chamadas</string>
     <string name="call_stats_title_average_duration">Duração média de chamada</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Não há registro de chamadas no intervalo de tempo selecionado.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-pt-rPT/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-pt-rPT/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-pt-rPT/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-pt-rPT/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-pt-rPT/cm_strings.xml b/java/com/android/dialer/callstats/res/values-pt-rPT/cm_strings.xml
index 5f42436..a1ad3b8 100644
--- a/java/com/android/dialer/callstats/res/values-pt-rPT/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-pt-rPT/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Duração das chamadas</string>
     <string name="call_stats_title_count">Contagem de chamadas</string>
     <string name="call_stats_title_average_duration">Duração média das chamadas</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">O seu registo de chamadas não contém qualquer chamada no período selecionado.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-rm/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-rm/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-rm/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-rm/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-rm/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-rm/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-rm/cm_strings.xml b/java/com/android/dialer/callstats/res/values-rm/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ro/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ro/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-ro/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-ro/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-ro/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ro/cm_strings.xml
index f66e868..b645870 100644
--- a/java/com/android/dialer/callstats/res/values-ro/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ro/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Durate apeluri</string>
     <string name="call_stats_title_count">Număr apeluri</string>
     <string name="call_stats_title_average_duration">Durata medie a apelului</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Istoricul apelurilor nu conține apeluri în intervalul de timp selectat.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-ru/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ru/cm_arrays.xml
index 5d17968..46c05a2 100644
--- a/java/com/android/dialer/callstats/res/values-ru/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-ru/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 сек.">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 мин.">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-ru/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ru/cm_strings.xml
index a9e40c1..aaf4b8e 100644
--- a/java/com/android/dialer/callstats/res/values-ru/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-ru/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Длительность вызовов</string>
     <string name="call_stats_title_count">Количество вызовов</string>
     <string name="call_stats_title_average_duration">Средняя продолж. разговора</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">В журнале вызовов нет записей за указанный период времени.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sc-rIT/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-sc-rIT/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sc-rIT/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-sc-rIT/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-si/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-si/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-si/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-si/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-si/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-si/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-si/cm_strings.xml b/java/com/android/dialer/callstats/res/values-si/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sk/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sk/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-sk/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-sk/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-sk/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sk/cm_strings.xml
index 666b42b..c37627a 100644
--- a/java/com/android/dialer/callstats/res/values-sk/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-sk/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Dĺžka hovorov</string>
     <string name="call_stats_title_count">Počet hovorov</string>
     <string name="call_stats_title_average_duration">Priemerné trvanie hovoru</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Váš denník hovorov neobsahuje žiadne hovory vo vybranom časovom rozsahu.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-sl/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sl/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-sl/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-sl/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-sl/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sl/cm_strings.xml
index 9e67641..2c2e200 100644
--- a/java/com/android/dialer/callstats/res/values-sl/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-sl/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Trajanje klicev</string>
     <string name="call_stats_title_count">Število klicev</string>
     <string name="call_stats_title_average_duration">Povprečna dolžina klica</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Vaš dnevnik klicev ne vsebuje nobenih klicev v izbranem časovnem obsegu.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-sq/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sq/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-sq/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sq/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-sq/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-sq/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-sq/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sq/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-sq/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sr/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sr/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-sr/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sr/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-sr/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-sr/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-sr/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sr/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-sr/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sv/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sv/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-sv/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sv/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sv/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-sv/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sw/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-sw/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-sw/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-sw/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-sw/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-sw/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-sw/cm_strings.xml b/java/com/android/dialer/callstats/res/values-sw/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ta/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ta/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ta/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ta/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ta/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ta/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ta/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ta/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-te/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-te/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-te/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-te/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-te/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-te/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-te/cm_strings.xml b/java/com/android/dialer/callstats/res/values-te/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-th/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-th/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-th/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-th/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-th/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-th/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-th/cm_strings.xml b/java/com/android/dialer/callstats/res/values-th/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-tl/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-tl/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-tl/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-tl/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-tl/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-tl/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-tl/cm_strings.xml b/java/com/android/dialer/callstats/res/values-tl/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-tr/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-tr/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-tr/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-tr/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-tr/cm_strings.xml b/java/com/android/dialer/callstats/res/values-tr/cm_strings.xml
index 4fcf10c..f3bea53 100644
--- a/java/com/android/dialer/callstats/res/values-tr/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-tr/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Arama süreleri</string>
     <string name="call_stats_title_count">Arama sayısı</string>
     <string name="call_stats_title_average_duration">Ortalama arama süresi</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Arama kaydı seçilen zaman aralığında herhangi bir arama içermiyor.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-ug/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ug/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ug/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ug/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ug/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ug/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ug/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ug/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-uk/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-uk/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-uk/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-uk/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-uk/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-uk/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-uk/cm_strings.xml b/java/com/android/dialer/callstats/res/values-uk/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-uk/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ur/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-ur/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-ur/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-ur/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-ur/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-ur/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-ur/cm_strings.xml b/java/com/android/dialer/callstats/res/values-ur/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-uz/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-uz/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-uz/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-uz/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-uz/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-uz/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-uz/cm_strings.xml b/java/com/android/dialer/callstats/res/values-uz/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-vec/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-vec/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-vec/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-vec/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-vec/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-vec/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-vec/cm_strings.xml b/java/com/android/dialer/callstats/res/values-vec/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-vi/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-vi/cm_arrays.xml
index ab018d3..c75c1ad 100644
--- a/java/com/android/dialer/callstats/res/values-vi/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-vi/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
         <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
diff --git a/java/com/android/dialer/callstats/res/values-vi/cm_strings.xml b/java/com/android/dialer/callstats/res/values-vi/cm_strings.xml
index c6d1806..d8dd450 100644
--- a/java/com/android/dialer/callstats/res/values-vi/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-vi/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">Thời gian gọi</string>
     <string name="call_stats_title_count">Số cuộc gọi</string>
     <string name="call_stats_title_average_duration">Thời gian gọi trung bình</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">Nhật ký cuộc gọi của bạn không chứa bất kỳ cuộc gọi nào trong khoảng thời gian đã chọn.</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rCN/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-zh-rCN/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-zh-rCN/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rCN/cm_strings.xml b/java/com/android/dialer/callstats/res/values-zh-rCN/cm_strings.xml
index 429f433..0b42ce3 100644
--- a/java/com/android/dialer/callstats/res/values-zh-rCN/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-zh-rCN/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">通话时长</string>
     <string name="call_stats_title_count">通话次数</string>
     <string name="call_stats_title_average_duration">平均通话时长</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">您所选择的时间范围内不包含任何通话记录。</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-zh-rHK/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-zh-rHK/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_strings.xml b/java/com/android/dialer/callstats/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rTW/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-zh-rTW/cm_arrays.xml
index 3a3ee14..19389f2 100644
--- a/java/com/android/dialer/callstats/res/values-zh-rTW/cm_arrays.xml
+++ b/java/com/android/dialer/callstats/res/values-zh-rTW/cm_arrays.xml
@@ -17,13 +17,6 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
     <string-array name="call_stats_duration">
         <item>
             <xliff:g id="seconds" example="2 secs">%3$s</xliff:g>
diff --git a/java/com/android/dialer/callstats/res/values-zh-rTW/cm_strings.xml b/java/com/android/dialer/callstats/res/values-zh-rTW/cm_strings.xml
index 429a659..b57dea1 100644
--- a/java/com/android/dialer/callstats/res/values-zh-rTW/cm_strings.xml
+++ b/java/com/android/dialer/callstats/res/values-zh-rTW/cm_strings.xml
@@ -45,6 +45,5 @@
     <string name="call_stats_title_durations">通話時間</string>
     <string name="call_stats_title_count">通話總數</string>
     <string name="call_stats_title_average_duration">平均通話時間</string>
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
     <string name="recent_calls_no_items_in_range">在所選擇的時間範圍內沒有任何通話記錄。</string>
 </resources>
diff --git a/java/com/android/dialer/callstats/res/values-zu/cm_arrays.xml b/java/com/android/dialer/callstats/res/values-zu/cm_arrays.xml
deleted file mode 100644
index 05251d5..0000000
--- a/java/com/android/dialer/callstats/res/values-zu/cm_arrays.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- 0:           sec
-         1:      min
-         2:      min  sec
-         3: hour
-         4: hour      sec
-         5: hour min
-         6: hour min  sec -->
-</resources>
diff --git a/java/com/android/dialer/callstats/res/values-zu/cm_plurals.xml b/java/com/android/dialer/callstats/res/values-zu/cm_plurals.xml
deleted file mode 100644
index 9bae86b..0000000
--- a/java/com/android/dialer/callstats/res/values-zu/cm_plurals.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/dialer/callstats/res/values-zu/cm_strings.xml b/java/com/android/dialer/callstats/res/values-zu/cm_strings.xml
deleted file mode 100644
index ac76b68..0000000
--- a/java/com/android/dialer/callstats/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-     Copyright (C) 2018 The LineageOS Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Text displayed when there are no call log entries in the selected time range. -->
-</resources>
diff --git a/java/com/android/dialer/common/res/values-as-rIN/strings.xml b/java/com/android/dialer/common/res/values-as-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-ast-rES/strings.xml b/java/com/android/dialer/common/res/values-ast-rES/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-br-rFR/strings.xml b/java/com/android/dialer/common/res/values-br-rFR/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-csb/strings.xml b/java/com/android/dialer/common/res/values-csb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-csb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-en-rPT/strings.xml b/java/com/android/dialer/common/res/values-en-rPT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-eo/strings.xml b/java/com/android/dialer/common/res/values-eo/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-eo/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-es-rCO/strings.xml b/java/com/android/dialer/common/res/values-es-rCO/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-es-rMX/strings.xml b/java/com/android/dialer/common/res/values-es-rMX/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-fil/strings.xml b/java/com/android/dialer/common/res/values-fil/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-fil/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-frp/strings.xml b/java/com/android/dialer/common/res/values-frp/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-frp/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-fy-rNL/strings.xml b/java/com/android/dialer/common/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-ga-rIE/strings.xml b/java/com/android/dialer/common/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-gd/strings.xml b/java/com/android/dialer/common/res/values-gd/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-gd/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/common/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-ku/strings.xml b/java/com/android/dialer/common/res/values-ku/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-ku/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-lb/strings.xml b/java/com/android/dialer/common/res/values-lb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-lb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-oc/strings.xml b/java/com/android/dialer/common/res/values-oc/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-oc/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-or-rIN/strings.xml b/java/com/android/dialer/common/res/values-or-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-rm/strings.xml b/java/com/android/dialer/common/res/values-rm/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-rm/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-sc-rIT/strings.xml b/java/com/android/dialer/common/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-ug/strings.xml b/java/com/android/dialer/common/res/values-ug/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-ug/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/common/res/values-vec/strings.xml b/java/com/android/dialer/common/res/values-vec/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/dialer/common/res/values-vec/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-as-rIN/strings.xml b/java/com/android/dialer/dialpadview/res/values-as-rIN/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ast-rES/strings.xml b/java/com/android/dialer/dialpadview/res/values-ast-rES/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-br-rFR/strings.xml b/java/com/android/dialer/dialpadview/res/values-br-rFR/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-csb/strings.xml b/java/com/android/dialer/dialpadview/res/values-csb/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-csb/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-cy/strings.xml b/java/com/android/dialer/dialpadview/res/values-cy/strings.xml
index 786f7fb..e10bd4c 100644
--- a/java/com/android/dialer/dialpadview/res/values-cy/strings.xml
+++ b/java/com/android/dialer/dialpadview/res/values-cy/strings.xml
@@ -16,18 +16,9 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- String describing the back button in the dialpad. -->
   <string name="description_dialpad_back">Mynd nôl</string>
-  <!-- String describing the overflow menu button in the dialpad. -->
   <string name="description_dialpad_overflow">Rhagor o ddewisiadau</string>
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
   <string name="description_delete_button">bysell backspace</string>
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
   <string name="description_image_button_plus">plws</string>
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
   <string name="description_voicemail_button">lleisbost</string>
 </resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-en-rPT/strings.xml b/java/com/android/dialer/dialpadview/res/values-en-rPT/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-eo/strings.xml b/java/com/android/dialer/dialpadview/res/values-eo/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-eo/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-es-rCO/strings.xml b/java/com/android/dialer/dialpadview/res/values-es-rCO/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-es-rMX/strings.xml b/java/com/android/dialer/dialpadview/res/values-es-rMX/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fil/strings.xml b/java/com/android/dialer/dialpadview/res/values-fil/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-fil/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-frp/strings.xml b/java/com/android/dialer/dialpadview/res/values-frp/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-frp/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-fy-rNL/strings.xml b/java/com/android/dialer/dialpadview/res/values-fy-rNL/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ga-rIE/strings.xml b/java/com/android/dialer/dialpadview/res/values-ga-rIE/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-gd/strings.xml b/java/com/android/dialer/dialpadview/res/values-gd/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-gd/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/dialpadview/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ku/strings.xml b/java/com/android/dialer/dialpadview/res/values-ku/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-ku/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-lb/strings.xml b/java/com/android/dialer/dialpadview/res/values-lb/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-lb/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-oc/strings.xml b/java/com/android/dialer/dialpadview/res/values-oc/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-oc/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-or-rIN/strings.xml b/java/com/android/dialer/dialpadview/res/values-or-rIN/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-rm/strings.xml b/java/com/android/dialer/dialpadview/res/values-rm/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-rm/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-sc-rIT/strings.xml b/java/com/android/dialer/dialpadview/res/values-sc-rIT/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-ug/strings.xml b/java/com/android/dialer/dialpadview/res/values-ug/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-ug/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values-vec/strings.xml b/java/com/android/dialer/dialpadview/res/values-vec/strings.xml
deleted file mode 100644
index b62db09..0000000
--- a/java/com/android/dialer/dialpadview/res/values-vec/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String describing the back button in the dialpad. -->
-  <!-- String describing the overflow menu button in the dialpad. -->
-  <!-- String describing the Delete/Backspace ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-  <!--  String describing the button used to add a plus (+) symbol to the dialpad -->
-  <!-- String describing the Voicemail ImageButton.
-       Used by AccessibilityService to announce the purpose of the button.
-  -->
-</resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-as-rIN/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-as-rIN/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-ast-rES/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-ast-rES/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-br-rFR/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-br-rFR/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-csb/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-csb/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-csb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-cy/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-cy/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-cy/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-en-rPT/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-en-rPT/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-eo/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-eo/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-eo/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-es-rCO/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-es-rCO/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-es-rMX/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-es-rMX/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-fil/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-fil/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-fil/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-frp/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-frp/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-frp/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-fy-rNL/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-ga-rIE/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-gd/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-gd/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-gd/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-ku/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-ku/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-ku/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-lb/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-lb/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-lb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-oc/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-oc/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-oc/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-or-rIN/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-or-rIN/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-rm/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-rm/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-rm/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-sc-rIT/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-ug/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-ug/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-ug/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/enrichedcall/simulator/res/values-vec/strings.xml b/java/com/android/dialer/enrichedcall/simulator/res/values-vec/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/dialer/enrichedcall/simulator/res/values-vec/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/dialer/interactions/res/values-as-rIN/strings.xml b/java/com/android/dialer/interactions/res/values-as-rIN/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-ast-rES/strings.xml b/java/com/android/dialer/interactions/res/values-ast-rES/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-br-rFR/strings.xml b/java/com/android/dialer/interactions/res/values-br-rFR/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-csb/strings.xml b/java/com/android/dialer/interactions/res/values-csb/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-csb/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-cy/strings.xml b/java/com/android/dialer/interactions/res/values-cy/strings.xml
index cfab228..943f953 100644
--- a/java/com/android/dialer/interactions/res/values-cy/strings.xml
+++ b/java/com/android/dialer/interactions/res/values-cy/strings.xml
@@ -16,10 +16,7 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Title for the sms disambiguation dialog -->
   <string name="sms_disambig_title">Dewis rhif</string>
-  <!-- Title for the call disambiguation dialog -->
   <string name="call_disambig_title">Dewis rhif</string>
-  <!-- Message next to disambiguation dialog check box -->
   <string name="make_primary">Cofio\'r dewis hwn</string>
 </resources>
diff --git a/java/com/android/dialer/interactions/res/values-en-rPT/strings.xml b/java/com/android/dialer/interactions/res/values-en-rPT/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-eo/strings.xml b/java/com/android/dialer/interactions/res/values-eo/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-eo/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-es-rCO/strings.xml b/java/com/android/dialer/interactions/res/values-es-rCO/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-es-rMX/strings.xml b/java/com/android/dialer/interactions/res/values-es-rMX/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-fil/strings.xml b/java/com/android/dialer/interactions/res/values-fil/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-fil/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-frp/strings.xml b/java/com/android/dialer/interactions/res/values-frp/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-frp/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-fy-rNL/strings.xml b/java/com/android/dialer/interactions/res/values-fy-rNL/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-ga-rIE/strings.xml b/java/com/android/dialer/interactions/res/values-ga-rIE/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-gd/strings.xml b/java/com/android/dialer/interactions/res/values-gd/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-gd/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/interactions/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-ku/strings.xml b/java/com/android/dialer/interactions/res/values-ku/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-ku/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-lb/strings.xml b/java/com/android/dialer/interactions/res/values-lb/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-lb/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-oc/strings.xml b/java/com/android/dialer/interactions/res/values-oc/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-oc/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-or-rIN/strings.xml b/java/com/android/dialer/interactions/res/values-or-rIN/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-rm/strings.xml b/java/com/android/dialer/interactions/res/values-rm/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-rm/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-sc-rIT/strings.xml b/java/com/android/dialer/interactions/res/values-sc-rIT/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-ug/strings.xml b/java/com/android/dialer/interactions/res/values-ug/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-ug/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/interactions/res/values-vec/strings.xml b/java/com/android/dialer/interactions/res/values-vec/strings.xml
deleted file mode 100644
index aaaa019..0000000
--- a/java/com/android/dialer/interactions/res/values-vec/strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Title for the sms disambiguation dialog -->
-  <!-- Title for the call disambiguation dialog -->
-  <!-- Message next to disambiguation dialog check box -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-af/cm_strings.xml b/java/com/android/dialer/lookup/res/values-af/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-am/cm_strings.xml b/java/com/android/dialer/lookup/res/values-am/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ar/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ar/cm_strings.xml
index fcf73e3..a8ddab8 100644
--- a/java/com/android/dialer/lookup/res/values-ar/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ar/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">الأماكن القريبة</string>
     <string name="people">الناس</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">البحث عن رقم الهاتف</string>
     <string name="enable_forward_lookup_title">البحث الأمامي</string>
     <string name="enable_forward_lookup_summary">إظهر الأماكن القريبة عند البحث في الهاتف</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">موفر البحث الأمامي</string>
     <string name="people_lookup_provider_title">موفر البحث عن الأشخاص</string>
     <string name="reverse_lookup_provider_title">موفر البحث العكسي</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">قد ترسل عمليات البحث استعلامات عبر بروتوكول آمن (https) إلى مواقع ويب بعيدة لجمع المعلومات. قد يتضمن الاستعلام رقم هاتف الطرف الآخر أو استعلام البحث</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-as-rIN/cm_strings.xml b/java/com/android/dialer/lookup/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ast-rES/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ast-rES/cm_strings.xml
index b35a0f1..9ef005a 100644
--- a/java/com/android/dialer/lookup/res/values-ast-rES/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ast-rES/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Llugares averaos</string>
     <string name="people">Persones</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Gueta de númberos telefónicos</string>
     <string name="enable_forward_lookup_title">Gueta direuta</string>
     <string name="enable_forward_lookup_summary">Amuesa llugares averaos cuando guetes nel marcador</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Fornidor de gueta direuta</string>
     <string name="people_lookup_provider_title">Fornidor de gueta de persones</string>
     <string name="reverse_lookup_provider_title">Fornidor de gueta inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Les guetes podríen unviase per un protocolu seguru (https) a sitios web remotos pa recoyer información. La consulta podría incluyir el númberu telefónicu de la otra parte o la consulta de la gueta</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-az/cm_strings.xml b/java/com/android/dialer/lookup/res/values-az/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/dialer/lookup/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-be/cm_strings.xml b/java/com/android/dialer/lookup/res/values-be/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-bg/cm_strings.xml b/java/com/android/dialer/lookup/res/values-bg/cm_strings.xml
index 8b9def9..3128239 100644
--- a/java/com/android/dialer/lookup/res/values-bg/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-bg/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Места наблизо</string>
     <string name="people">Хора</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Търсене на телефонен номер</string>
     <string name="enable_forward_lookup_title">Търсене напред</string>
     <string name="enable_forward_lookup_summary">Покажи местата в близост, при търсене в указателя</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Доставчик на информация</string>
     <string name="people_lookup_provider_title">Доставчик на информация за хора</string>
     <string name="reverse_lookup_provider_title">Доставчик на информация при обратно търсене</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Търсенето може да изпраща заявки през защитен протокол (https) до отдалечени уеб сайтове, за да събира информация. Искането на другата страна може да включва телефонен номер или заявка за търсене</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-bn/cm_strings.xml b/java/com/android/dialer/lookup/res/values-bn/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-br-rFR/cm_strings.xml b/java/com/android/dialer/lookup/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-bs/cm_strings.xml b/java/com/android/dialer/lookup/res/values-bs/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ca/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ca/cm_strings.xml
index c0ee93e..ee22434 100644
--- a/java/com/android/dialer/lookup/res/values-ca/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ca/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Llocs propers</string>
     <string name="people">Persones</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Cerca de número de telèfon</string>
     <string name="enable_forward_lookup_title">Cerca directa</string>
     <string name="enable_forward_lookup_summary">Mostra resultats de llocs propers quan es busqui al marcador</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Proveïdor de cerca directa</string>
     <string name="people_lookup_provider_title">Proveïdor de cerca de persones</string>
     <string name="reverse_lookup_provider_title">Proveïdor de cerca inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Les cerques poden enviar consultes a través d\'un protocol segur (https) a llocs web remots per recopilar informació. La consulta pot incloure el número de telèfon de l\'altra part o la consulta de cerca</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-cs/cm_strings.xml b/java/com/android/dialer/lookup/res/values-cs/cm_strings.xml
index 113eaa4..33553b8 100644
--- a/java/com/android/dialer/lookup/res/values-cs/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-cs/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Blízká místa</string>
     <string name="people">Lidé</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Vyhledávání telefonního čísla</string>
     <string name="enable_forward_lookup_title">Předběžné vyhledávání</string>
     <string name="enable_forward_lookup_summary">Zobrazit blízká místa při vyhledávání v číselníku</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Poskytovatel předběžného vyhledávání</string>
     <string name="people_lookup_provider_title">Poskytovatel vyhledávání osob</string>
     <string name="reverse_lookup_provider_title">Poskytovatel zpětného vyhledávání</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Vyhledávání může odesílat dotazy přes zabezpečený protokol (https) na vzdálené webové stránky pro získání informací. Dotaz může obsahovat telefonní číslo druhé strany nebo vyhledávací dotaz</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-csb/cm_strings.xml b/java/com/android/dialer/lookup/res/values-csb/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-cy/cm_strings.xml b/java/com/android/dialer/lookup/res/values-cy/cm_strings.xml
index 7b5ceb2..ee2bdf8 100644
--- a/java/com/android/dialer/lookup/res/values-cy/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-cy/cm_strings.xml
@@ -16,9 +16,7 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lleoedd cyfagos</string>
     <string name="people">Pobol</string>
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
+    <string name="enable_forward_lookup_summary">Dangos llefydd gerllaw wrth chwilio yn y deialydd</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-da/cm_strings.xml b/java/com/android/dialer/lookup/res/values-da/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-de/cm_strings.xml b/java/com/android/dialer/lookup/res/values-de/cm_strings.xml
index de94f80..ed2dba9 100644
--- a/java/com/android/dialer/lookup/res/values-de/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-de/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Orte in der Nähe</string>
     <string name="people">Personen</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Telefonnummernsuche</string>
     <string name="enable_forward_lookup_title">Vorwärtssuche</string>
     <string name="enable_forward_lookup_summary">Bei der Telefonnummernsuche Orte in der Nähe einschließen</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Dienst für Vorwärtssuche</string>
     <string name="people_lookup_provider_title">Dienst für Personensuche</string>
     <string name="reverse_lookup_provider_title">Dienst für Rückwärtssuche</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Suchen können Abfragen an Remote-Websites über ein sicheres Protokoll (https) senden, um Informationen zu sammeln. Die Abfrage kann die Telefonnummer des anderen Teilnehmers oder die Suchanfrage enthalten</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-el/cm_strings.xml b/java/com/android/dialer/lookup/res/values-el/cm_strings.xml
index 9799275..9971cf7 100644
--- a/java/com/android/dialer/lookup/res/values-el/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-el/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Κοντινές τοποθεσίες</string>
     <string name="people">Άτομα</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Αναζήτηση τηλεφωνικού αριθμού</string>
     <string name="enable_forward_lookup_title">Κανονική αναζήτηση</string>
     <string name="enable_forward_lookup_summary">Εμφάνιση κοντινών τοποθεσιών κατά την αναζήτηση στην εφαρμογή τηλεφώνου</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Πάροχος κανονικής αναζήτησης</string>
     <string name="people_lookup_provider_title">Πάροχος αναζήτησης ατόμων</string>
     <string name="reverse_lookup_provider_title">Πάροχος αντίστροφης αναζήτησης</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Οι αναζητήσεις ενδέχεται να στέλνουν ερωτήματα μέσω ενός ασφαλούς πρωτοκόλλου (https) σε απομακρυσμένους ιστότοπους για τη συλλογή πληροφοριών. Το ερώτημα ενδέχεται να περιλαμβάνει τον αριθμό τηλεφώνου του άλλου μέρους ή το ερώτημα αναζήτησης</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-en-rAU/cm_strings.xml b/java/com/android/dialer/lookup/res/values-en-rAU/cm_strings.xml
index 8ca545f..cf62d63 100644
--- a/java/com/android/dialer/lookup/res/values-en-rAU/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-en-rAU/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Nearby places</string>
     <string name="people">People</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Phone number lookup</string>
     <string name="enable_forward_lookup_title">Forward lookup</string>
     <string name="enable_forward_lookup_summary">Show nearby places when searching in the dialler</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Forward lookup provider</string>
     <string name="people_lookup_provider_title">People lookup provider</string>
     <string name="reverse_lookup_provider_title">Reverse lookup provider</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Lookups may send queries over a secure protocol (https) to remote websites to gather information. The query may include the other party\'s phone number or the search query</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-en-rCA/cm_strings.xml b/java/com/android/dialer/lookup/res/values-en-rCA/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-en-rCA/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-en-rGB/cm_strings.xml b/java/com/android/dialer/lookup/res/values-en-rGB/cm_strings.xml
index 8ca545f..cf62d63 100644
--- a/java/com/android/dialer/lookup/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-en-rGB/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Nearby places</string>
     <string name="people">People</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Phone number lookup</string>
     <string name="enable_forward_lookup_title">Forward lookup</string>
     <string name="enable_forward_lookup_summary">Show nearby places when searching in the dialler</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Forward lookup provider</string>
     <string name="people_lookup_provider_title">People lookup provider</string>
     <string name="reverse_lookup_provider_title">Reverse lookup provider</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Lookups may send queries over a secure protocol (https) to remote websites to gather information. The query may include the other party\'s phone number or the search query</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-en-rIN/cm_strings.xml b/java/com/android/dialer/lookup/res/values-en-rIN/cm_strings.xml
index 8ca545f..cf62d63 100644
--- a/java/com/android/dialer/lookup/res/values-en-rIN/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-en-rIN/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Nearby places</string>
     <string name="people">People</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Phone number lookup</string>
     <string name="enable_forward_lookup_title">Forward lookup</string>
     <string name="enable_forward_lookup_summary">Show nearby places when searching in the dialler</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Forward lookup provider</string>
     <string name="people_lookup_provider_title">People lookup provider</string>
     <string name="reverse_lookup_provider_title">Reverse lookup provider</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Lookups may send queries over a secure protocol (https) to remote websites to gather information. The query may include the other party\'s phone number or the search query</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-en-rPT/cm_strings.xml b/java/com/android/dialer/lookup/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-eo/cm_strings.xml b/java/com/android/dialer/lookup/res/values-eo/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-es-rCO/cm_strings.xml b/java/com/android/dialer/lookup/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-es-rMX/cm_strings.xml b/java/com/android/dialer/lookup/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-es-rUS/cm_strings.xml b/java/com/android/dialer/lookup/res/values-es-rUS/cm_strings.xml
index 9e33e7a..9bce126 100644
--- a/java/com/android/dialer/lookup/res/values-es-rUS/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-es-rUS/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lugares cercanos</string>
     <string name="people">Personas</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Búsqueda de números telefónicos</string>
     <string name="enable_forward_lookup_title">Búsqueda directa</string>
     <string name="enable_forward_lookup_summary">Mostrar lugares cercanos al buscar en el marcador</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Proveedor de búsqueda directa</string>
     <string name="people_lookup_provider_title">Proveedor de búsqueda de personas</string>
     <string name="reverse_lookup_provider_title">Proveedor de búsqueda inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Las búsquedas pueden enviar consultas sobre un protocolo seguro (https) a sitios web remotos para recopilar información. La consulta puede incluir el número de teléfono de la contraparte o la consulta de búsqueda</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-es/cm_strings.xml b/java/com/android/dialer/lookup/res/values-es/cm_strings.xml
index 98b9045..be80fc6 100644
--- a/java/com/android/dialer/lookup/res/values-es/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-es/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lugares cercanos</string>
     <string name="people">Personas</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Búsqueda de número telefónico</string>
     <string name="enable_forward_lookup_title">Búsqueda directa</string>
     <string name="enable_forward_lookup_summary">Mostrar lugares cercanos al buscar en el marcador</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Proveedor de búsqueda directa</string>
     <string name="people_lookup_provider_title">Proveedor de búsqueda de personas</string>
     <string name="reverse_lookup_provider_title">Proveedor de búsqueda inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Las búsquedas pueden enviar consultas a través de un protocolo seguro (https) a sitios web remotos para recopilar información. La consulta puede incluir el número de teléfono de la otra parte o la consulta de búsqueda</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-et/cm_strings.xml b/java/com/android/dialer/lookup/res/values-et/cm_strings.xml
index 68c6a11..f5b08af 100644
--- a/java/com/android/dialer/lookup/res/values-et/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-et/cm_strings.xml
@@ -16,7 +16,17 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
+    <string name="nearby_places">Lähedal asuvad kohad</string>
+    <string name="people">Inimesed</string>
+    <string name="lookup_settings_label">Numbriotsing</string>
+    <string name="enable_forward_lookup_title">Edasine otsing</string>
+    <string name="enable_forward_lookup_summary">Näita helistajast otsides lähedal asuvaid kohti</string>
+    <string name="enable_people_lookup_title">Inimeste otsing</string>
+    <string name="enable_people_lookup_summary">Näita helistajast inimesi otsides võrgutulemusi</string>
+    <string name="enable_reverse_lookup_title">Pöördotsing</string>
+    <string name="enable_reverse_lookup_summary">Otsi teavet isiku või koha kohta, kui kõne tuleb tundmatult numbrilt</string>
+    <string name="forward_lookup_provider_title">Otsingupakkuja</string>
+    <string name="people_lookup_provider_title">Inimeste otsingupakkuja</string>
+    <string name="reverse_lookup_provider_title">Pöördotsingu pakkuja</string>
+    <string name="lookup_disclaimer">Otsingud võivad info hankimiseks saata välistele saitidele päringuid üle turvalise protokolli (HTTPS). Päring võib sisaldada teise osapoole telefoninumbrit või otsingusõna</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-eu/cm_strings.xml b/java/com/android/dialer/lookup/res/values-eu/cm_strings.xml
index 2adeab5..cbea0f0 100644
--- a/java/com/android/dialer/lookup/res/values-eu/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-eu/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Inguruko tokiak</string>
     <string name="people">Jendea</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Telefono zenbakien bilaketa</string>
     <string name="enable_forward_lookup_title">Tokien bilaketa</string>
     <string name="enable_forward_lookup_summary">Erakutsi inguruko tokiak markatzailean bilatzean</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Tokien bilaketarako hornitzailea</string>
     <string name="people_lookup_provider_title">Pertsonen bilaketarako hornitzailea</string>
     <string name="reverse_lookup_provider_title">Bilaketa alderantzikatuaren hornitzailea</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Bilaketek protokolo seguru baten bidez (https) galderak bidali ditzakete urruneko webguneetara informazio bila. Galderek beste partearen telefono zenbakia eraman dezakete</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-fa/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fa/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-fi/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fi/cm_strings.xml
index 322bd9e..cc32357 100644
--- a/java/com/android/dialer/lookup/res/values-fi/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-fi/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lähellä olevat sijainnit</string>
     <string name="people">Ihmiset</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Puhelinnumeron haku</string>
     <string name="enable_forward_lookup_title">Paikkahaku</string>
     <string name="enable_forward_lookup_summary">Näytä lähistöllä olevat paikat, kun etsitään numeronvalitsimella</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Paikkahauntarjoaja</string>
     <string name="people_lookup_provider_title">Henkilön haun tarjoaja</string>
     <string name="reverse_lookup_provider_title">Käänteisen haun tarjoaja</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Haku voi lähettää kyselyjä suojatun protokollan (https) kautta etäsivustoille tietojen keräämiseksi. Kysely voi sisältää toisen osapuolen puhelinnumeron tai hakukyselyn</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-fil/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fil/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-fr-rCA/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-fr/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fr/cm_strings.xml
index ce5d021..104063b 100644
--- a/java/com/android/dialer/lookup/res/values-fr/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-fr/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lieux à proximité</string>
     <string name="people">Personnes</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Recherche de numéro de téléphone</string>
     <string name="enable_forward_lookup_title">Recherche directe</string>
     <string name="enable_forward_lookup_summary">Afficher les lieux à proximité lors d\'une recherche à l\'aide du clavier</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Moteur de recherche directe</string>
     <string name="people_lookup_provider_title">Moteur de recherche sur les appelants</string>
     <string name="reverse_lookup_provider_title">Moteur de recherche inversée</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Lorsque vous effectuez des recherches, des requêtes sont susceptibles d\'être envoyées à des sites distants via un protocole sécurisé (https) pour recueillir des informations. Elles peuvent inclure le numéro de téléphone d\'un tiers ou la requête de recherche.</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-frp/cm_strings.xml b/java/com/android/dialer/lookup/res/values-frp/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-fy-rNL/cm_strings.xml b/java/com/android/dialer/lookup/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ga-rIE/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-gd/cm_strings.xml b/java/com/android/dialer/lookup/res/values-gd/cm_strings.xml
index fe7c5fa..6c8633a 100644
--- a/java/com/android/dialer/lookup/res/values-gd/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-gd/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Ionadan am fagas</string>
     <string name="people">Daoine</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Rannsachadh àireamhan fòn</string>
     <string name="enable_forward_lookup_title">Rannsachadh air adhart</string>
     <string name="enable_forward_lookup_summary">Seall ionadan am fagas nuair a bhios mi a’ lorg rud san daithealair</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Solaraiche an rannsachaidh air adhart</string>
     <string name="people_lookup_provider_title">Solaraiche an rannsachaidh dhaoine</string>
     <string name="reverse_lookup_provider_title">Solaraiche an rannsachaidh chontrarra</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Faodaidh an rannsachadh ceistean a chur a-null gu làraichean-lìn cèine slighe pròtacail thèarainte (https) airson fiosrachadh a chruinneachadh. Faodaidh a’ cheist gabhail a-steach àireamh fòn an neach eile no a’ cheist rannsachaidh</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-gl/cm_strings.xml b/java/com/android/dialer/lookup/res/values-gl/cm_strings.xml
index 0412b57..dbb55ad 100644
--- a/java/com/android/dialer/lookup/res/values-gl/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-gl/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Lugares próximos</string>
     <string name="people">Xente</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Busca de número de teléfono</string>
     <string name="enable_forward_lookup_title">Busca directa</string>
     <string name="enable_forward_lookup_summary">Amosar lugares próximos ao buscar no dial</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Fornecedor de busca avanzada</string>
     <string name="people_lookup_provider_title">Fornecedor de busca de persoas</string>
     <string name="reverse_lookup_provider_title">Fornecedor de busca inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">As buscas poden enviar consultas a través dun protocolo seguro (https) a sitios web remotos para recompilar información. A consulta pode incluír o número de teléfono da outra parte ou a consulta de busca</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-gu/cm_strings.xml b/java/com/android/dialer/lookup/res/values-gu/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-hi/cm_strings.xml b/java/com/android/dialer/lookup/res/values-hi/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-hr/cm_strings.xml b/java/com/android/dialer/lookup/res/values-hr/cm_strings.xml
index a2a67df..a88980e 100644
--- a/java/com/android/dialer/lookup/res/values-hr/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-hr/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Mjesta u blizini</string>
     <string name="people">Osobe</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Pretraživanje telefonskih brojeva</string>
     <string name="enable_forward_lookup_title">Pretraživanje unaprijed</string>
     <string name="enable_forward_lookup_summary">Prikaz obližnjih mjesta prilikom pretraživanja u biraču brojeva</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Pružatelj pretraživanja unaprijed</string>
     <string name="people_lookup_provider_title">Pružatelj pretraživanja ljudi</string>
     <string name="reverse_lookup_provider_title">Pružatelj obrnutog pretraživanja</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Pretraživanja mogu slati upite putem sigurnog protokola (https) udaljenim web-stranicama da bi prikupila informacije. Upit može uključivati telefonski broj drugog korisnika ili upit za pretraživanje</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-hu/cm_strings.xml b/java/com/android/dialer/lookup/res/values-hu/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-hy/cm_strings.xml b/java/com/android/dialer/lookup/res/values-hy/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-in/cm_strings.xml b/java/com/android/dialer/lookup/res/values-in/cm_strings.xml
index 25dfbf9..b1678a3 100644
--- a/java/com/android/dialer/lookup/res/values-in/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-in/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Tempat terdekat</string>
     <string name="people">Orang</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Penelusuran nomor telepon</string>
     <string name="enable_forward_lookup_title">Penelusuran kedepan</string>
     <string name="enable_forward_lookup_summary">Tampilkan tempat terdekat ketika mencari di dialer</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Penyedia penelusuran kedepan</string>
     <string name="people_lookup_provider_title">Penyedia penelusuran orang</string>
     <string name="reverse_lookup_provider_title">Penyedia penelusuran terbalik</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Pencarian dapat mengirimkan pertanyaan melalui protokol aman (https) ke remote website untuk mengumpulkan informasi. Kueri mungkin termasuk nomor telepon pihak lain atau kueri penelusuran</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-is/cm_strings.xml b/java/com/android/dialer/lookup/res/values-is/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-it/cm_strings.xml b/java/com/android/dialer/lookup/res/values-it/cm_strings.xml
index 70d7ea8..be99054 100644
--- a/java/com/android/dialer/lookup/res/values-it/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-it/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Posti nelle vicinanze</string>
     <string name="people">Persone</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Ricerca numeri telefonici</string>
     <string name="enable_forward_lookup_title">Ricerca diretta</string>
     <string name="enable_forward_lookup_summary">Mostra luoghi nelle vicinanze durante la ricerca nel tastierino</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Provider di ricerca diretta</string>
     <string name="people_lookup_provider_title">Provider di ricerca persone</string>
     <string name="reverse_lookup_provider_title">Provider di ricerca inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Le ricerche potrebbero inviare query tramite un protocollo sicuro (https) a siti web in remoto per raccogliere le informazioni necessarie. La query può includere il numero di telefono del corrispondente o il testo della ricerca</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-iw/cm_strings.xml b/java/com/android/dialer/lookup/res/values-iw/cm_strings.xml
index 768229b..9b5251f 100644
--- a/java/com/android/dialer/lookup/res/values-iw/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-iw/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">מקומות סמוכים</string>
     <string name="people">אנשים</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">חיפוש מספר טלפון</string>
     <string name="enable_forward_lookup_title">חיפוש מקדים</string>
     <string name="enable_forward_lookup_summary">הצג מקומות סמוכים בעת חיפוש בחייגן</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">ספק חיפוש מקדים</string>
     <string name="people_lookup_provider_title">ספק חיפוש אנשים</string>
     <string name="reverse_lookup_provider_title">ספק חיפוש הפוך</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">החיפוש ישלח מידע בפרוטוקול מוצפן (https) לשרת מרוחק לקבלת מידע. השאילתות יכילו את מספר הפלאפון ו\או שאילתות החיפוש</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ja/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ja/cm_strings.xml
index aef1965..8a252b2 100644
--- a/java/com/android/dialer/lookup/res/values-ja/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ja/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">近くの場所</string>
     <string name="people">人物</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">電話番号検索</string>
     <string name="enable_forward_lookup_title">正引き検索</string>
     <string name="enable_forward_lookup_summary">ダイヤル画面で検索しているときに近くの場所を表示します</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">正引き検索のプロバイダー</string>
     <string name="people_lookup_provider_title">人物検索のプロバイダー</string>
     <string name="reverse_lookup_provider_title">逆引き検索のプロバイダー</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Lookups は情報を収集するために、セキュアなプロトコル (https) 上で外部のウェブサイトにクエリを送信する可能性があります。クエリは相手の電話番号や検索クエリを含むことがあります。</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ka/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ka/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-kab-rDZ/cm_strings.xml b/java/com/android/dialer/lookup/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-kk/cm_strings.xml b/java/com/android/dialer/lookup/res/values-kk/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-km/cm_strings.xml b/java/com/android/dialer/lookup/res/values-km/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-kn/cm_strings.xml b/java/com/android/dialer/lookup/res/values-kn/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-kn/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ko/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ko/cm_strings.xml
index a0f3cc8..07168fa 100644
--- a/java/com/android/dialer/lookup/res/values-ko/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ko/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">주변 장소</string>
     <string name="people">사람들</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">전화번호 검색</string>
     <string name="enable_forward_lookup_title">순서대로 검색</string>
     <string name="enable_forward_lookup_summary">다이얼러에서 검색 시 근처 장소 표시</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">정방향 검색 제공자</string>
     <string name="people_lookup_provider_title">사람 검색 제공자</string>
     <string name="reverse_lookup_provider_title">역방향 검색 제공자</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">검색 기능은 정보 수집을 목적으로 https 보안 프로토콜을 사용하여 원격 웹 사이트에 쿼리를 보낼 수 있습니다. 이 쿼리에는 검색어 또는 상대방의 전화번호가 포함될 수 있습니다.</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ku/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ku/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ky/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ky/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-lb/cm_strings.xml b/java/com/android/dialer/lookup/res/values-lb/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-lo/cm_strings.xml b/java/com/android/dialer/lookup/res/values-lo/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-lt/cm_strings.xml b/java/com/android/dialer/lookup/res/values-lt/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-lv/cm_strings.xml b/java/com/android/dialer/lookup/res/values-lv/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-mk/cm_strings.xml b/java/com/android/dialer/lookup/res/values-mk/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ml/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ml/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-mn/cm_strings.xml b/java/com/android/dialer/lookup/res/values-mn/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-mr/cm_strings.xml b/java/com/android/dialer/lookup/res/values-mr/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ms/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ms/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-my/cm_strings.xml b/java/com/android/dialer/lookup/res/values-my/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-nb/cm_strings.xml b/java/com/android/dialer/lookup/res/values-nb/cm_strings.xml
index 89d6d2a..c2c53c6 100644
--- a/java/com/android/dialer/lookup/res/values-nb/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-nb/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Nærliggende steder</string>
     <string name="people">Folk</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Telefonnummeroppleting</string>
     <string name="enable_forward_lookup_title">Videresendingsoppleting</string>
     <string name="enable_forward_lookup_summary">Vis nærliggende steder når du søker i telefonappen</string>
@@ -30,5 +28,4 @@
     <string name="forward_lookup_provider_title">Tjeneste for oppleting av videresending</string>
     <string name="people_lookup_provider_title">Tjeneste for oppleting av folk</string>
     <string name="reverse_lookup_provider_title">Tjeneste for omvendt oppleting</string>
-    <!-- Disclaimer -->
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ne/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ne/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-nl/cm_strings.xml b/java/com/android/dialer/lookup/res/values-nl/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-nl/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-oc/cm_strings.xml b/java/com/android/dialer/lookup/res/values-oc/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-or-rIN/cm_strings.xml b/java/com/android/dialer/lookup/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-pa/cm_strings.xml b/java/com/android/dialer/lookup/res/values-pa/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-pl/cm_strings.xml b/java/com/android/dialer/lookup/res/values-pl/cm_strings.xml
index e28ad0b..f9a93d0 100644
--- a/java/com/android/dialer/lookup/res/values-pl/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-pl/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Miejsca w pobliżu</string>
     <string name="people">Ludzie</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Wyszukiwanie numeru telefonu</string>
     <string name="enable_forward_lookup_title">Wyszukiwanie do przodu</string>
     <string name="enable_forward_lookup_summary">Pokaż miejsca w pobliżu podczas wyszukiwania w dialerze</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Dostawca wyszukiwania w przód</string>
     <string name="people_lookup_provider_title">Dostawca wyszukiwania osób</string>
     <string name="reverse_lookup_provider_title">Dostawca wyszukiwania wstecz</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Wyszukiwania mogą wysyłać zapytania za pomocą protokołu bezpiecznego (https) do zdalnych stron internetowych w celu zbierania informacji. Zapytanie może zawierać numer telefonu lub zapytania wyszukiwania rozmówcy</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-pt-rBR/cm_strings.xml b/java/com/android/dialer/lookup/res/values-pt-rBR/cm_strings.xml
index 0463b72..9ce3331 100644
--- a/java/com/android/dialer/lookup/res/values-pt-rBR/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-pt-rBR/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Locais próximos</string>
     <string name="people">Pessoas</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Pesquisar números de telefone</string>
     <string name="enable_forward_lookup_title">Pesquisa de encaminhamento</string>
     <string name="enable_forward_lookup_summary">Mostrar lugares próximos ao pesquisar no discador</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Provedor de pesquisa de encaminhamento</string>
     <string name="people_lookup_provider_title">Provedor de pesquisa de pessoas</string>
     <string name="reverse_lookup_provider_title">Provedor de pesquisa inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">As pesquisas podem enviar consultas usando um protocolo seguro (HTTPS) para obterem informações em sites remotos. A consulta pode incluir o número de telefone da outra pessoa ou o conteúdo da pesquisa</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-pt-rPT/cm_strings.xml b/java/com/android/dialer/lookup/res/values-pt-rPT/cm_strings.xml
index a0e29db..3f21a73 100644
--- a/java/com/android/dialer/lookup/res/values-pt-rPT/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-pt-rPT/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Locais próximos</string>
     <string name="people">Pessoas</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Pesquisa de números de telefone</string>
     <string name="enable_forward_lookup_title">Pesquisa direta</string>
     <string name="enable_forward_lookup_summary">Mostrar locais próximos ao pesquisar no teclado</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Fornecedor de pesquisa direta</string>
     <string name="people_lookup_provider_title">Fornecedor de pesquisa de pessoas</string>
     <string name="reverse_lookup_provider_title">Fornecedor de pesquisa inversa</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">As pesquisas podem enviar consultas através de um protocolo seguro (https) para sites remotos de forma a conseguirem informações. A consulta pode incluir o número de telefone da outra pessoa ou o conteúdo da pesquisa</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-rm/cm_strings.xml b/java/com/android/dialer/lookup/res/values-rm/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ro/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ro/cm_strings.xml
index f1da946..eaf6e36 100644
--- a/java/com/android/dialer/lookup/res/values-ro/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ro/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Locații în apropiere</string>
     <string name="people">Persoane</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Căutare număr de telefon</string>
     <string name="enable_forward_lookup_title">Căutare redirecționată</string>
     <string name="enable_forward_lookup_summary">Arată locațiile din apropiere când se caută în telefon</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Furnizor de căutare redirecționată</string>
     <string name="people_lookup_provider_title">Furnizor de căutare a persoanelor</string>
     <string name="reverse_lookup_provider_title">Furnizor de căutare inversă</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Căutările pot trimite interogări peste un protocol securizat (https) la site-uri web de la distanță pentru a colecta informaţii. Interogarea poate include numărul de telefon al celeilalte părţi sau interogarea căutării</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ru/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ru/cm_strings.xml
index ef8c7a9..0fb222f 100644
--- a/java/com/android/dialer/lookup/res/values-ru/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-ru/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Места рядом</string>
     <string name="people">Люди</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Поиск номеров телефона</string>
     <string name="enable_forward_lookup_title">Прямой поиск</string>
     <string name="enable_forward_lookup_summary">Показывать ближайшие организации при поиске в номеронабирателе</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Провайдер прямого поиска</string>
     <string name="people_lookup_provider_title">Провайдер поиска данных о людях</string>
     <string name="reverse_lookup_provider_title">Провайдер обратного поиска</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Для сбора информации поисковые запросы могут передаваться на удаленные веб-сайты по защищенному протоколу (https). Запрос может включать телефонный номер другой стороны или поисковый запрос</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-sc-rIT/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sc-rIT/cm_strings.xml
index 2c00752..9d10aac 100644
--- a/java/com/android/dialer/lookup/res/values-sc-rIT/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-sc-rIT/cm_strings.xml
@@ -16,8 +16,5 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Sas chircas diant pòdere imbiare sos datos de chirca pro mèdiu de unu protocollu seguru (https) a sitos remotos pro otènnere sas informatziones. Sos datos diant pòdere incluire su nùmeru de telèfonu de s\'àtera persone o sos tèrmines de chirca</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-si/cm_strings.xml b/java/com/android/dialer/lookup/res/values-si/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-sk/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sk/cm_strings.xml
index 6752341..786502b 100644
--- a/java/com/android/dialer/lookup/res/values-sk/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-sk/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Miesta v blízkosti</string>
     <string name="people">Ľudia</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Vyhľadávanie telefónneho čísla</string>
     <string name="enable_forward_lookup_title">Vyhľadávanie vpred</string>
     <string name="enable_forward_lookup_summary">Zobraziť miesta v blízkosti pri vyhľadávaní v číselníku</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Poskytovateľ vyhľadávania vpred</string>
     <string name="people_lookup_provider_title">Poskytovateľ pre vyhľadávanie ľudí</string>
     <string name="reverse_lookup_provider_title">Poskytovateľ pre spätné vyhľadávanie</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Vyhľadávanie môže posielať informácie prostredníctvom zabezpečeného protokolu (https) na vzdialené webové stránky. Dopyt môže obsahovať telefónne číslo druhej strany alebo vyhľadávací dopyt</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-sl/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sl/cm_strings.xml
index f1f0db0..1b41a1a 100644
--- a/java/com/android/dialer/lookup/res/values-sl/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-sl/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Bližnja mesta</string>
     <string name="people">Osebe</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Iskanje za telefonsko številko</string>
     <string name="enable_forward_lookup_title">Posredujoče iskanje</string>
     <string name="enable_forward_lookup_summary">Prikaži bližnja mesta med iskanjem v klicalniku</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Ponudnik posredujočega iskanja</string>
     <string name="people_lookup_provider_title">Ponudnik iskanja za osebami</string>
     <string name="reverse_lookup_provider_title">Ponudnik obratnega iskanja</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Iskanja lahko pošiljajo poizvedbe prek varnega protokola (https) oddaljenim spletnim stranem za zbiranje podatkov. Poizvedba lahko vključuje telefonsko številko druge osebe ali poizvedbo iskanja</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-sq/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sq/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-sq/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-sr/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sr/cm_strings.xml
index b148864..9b22b8f 100644
--- a/java/com/android/dialer/lookup/res/values-sr/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-sr/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Места у околини</string>
     <string name="people">Особе</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Претрага бројева телефона</string>
     <string name="enable_forward_lookup_title">Напредни преглед</string>
     <string name="enable_forward_lookup_summary">Прикажи околна места приликом претраге у бројчанику</string>
@@ -30,5 +28,4 @@
     <string name="forward_lookup_provider_title">Добављач напредне претраге</string>
     <string name="people_lookup_provider_title">Добављач проналажења људи</string>
     <string name="reverse_lookup_provider_title">Провајдер обрнутог проналажења</string>
-    <!-- Disclaimer -->
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-sv/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sv/cm_strings.xml
index 5d580e2..74c3632 100644
--- a/java/com/android/dialer/lookup/res/values-sv/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-sv/cm_strings.xml
@@ -16,14 +16,11 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Platser i närheten</string>
     <string name="people">Personer</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Telefonnummersökning</string>
     <string name="enable_forward_lookup_title">Platssökning</string>
     <string name="enable_people_lookup_title">Personsökning</string>
     <string name="forward_lookup_provider_title">Platssökningstjänst</string>
     <string name="people_lookup_provider_title">Personsökningstjänst</string>
-    <!-- Disclaimer -->
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-sw/cm_strings.xml b/java/com/android/dialer/lookup/res/values-sw/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-ta/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ta/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-te/cm_strings.xml b/java/com/android/dialer/lookup/res/values-te/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-th/cm_strings.xml b/java/com/android/dialer/lookup/res/values-th/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-tl/cm_strings.xml b/java/com/android/dialer/lookup/res/values-tl/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-tr/cm_strings.xml b/java/com/android/dialer/lookup/res/values-tr/cm_strings.xml
index e853333..0a58bea 100644
--- a/java/com/android/dialer/lookup/res/values-tr/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-tr/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Yakın yerler</string>
     <string name="people">Kişiler</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Telefon numarası arama</string>
     <string name="enable_forward_lookup_title">Yönlendirme araması</string>
     <string name="enable_forward_lookup_summary">Çevirici içinde arama yaparken yakınlardaki yerleri göster</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Arama yönlendirme sağlayıcısı</string>
     <string name="people_lookup_provider_title">Kişi arama sağlayıcısı</string>
     <string name="reverse_lookup_provider_title">Ters arama sağlayıcısı</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Aramalar, bilgi toplamak için uzak web sitelerine güvenli bir protokol (https) üzerinden sorgu gönderebilir. Sorgu, diğer tarafın telefon numarasını veya arama sorgusunu içerebilir</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ug/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ug/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-uk/cm_strings.xml b/java/com/android/dialer/lookup/res/values-uk/cm_strings.xml
index 1449e2f..57731a3 100644
--- a/java/com/android/dialer/lookup/res/values-uk/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-uk/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Місця поблизу</string>
     <string name="people">Люди</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Пошук номеру телефона</string>
     <string name="enable_forward_lookup_title">Прямий пошук</string>
     <string name="enable_forward_lookup_summary">Показувати найближчі місця при пошуку в номеронабирачі</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Постачальник прямого пошуку</string>
     <string name="people_lookup_provider_title">Постачальник пошуку даних про людей</string>
     <string name="reverse_lookup_provider_title">Постачальник зворотнього пошуку</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Пошукові запити можуть відправляти запити за захищеним протоколом (https) на віддалені веб-сайти для збору інформації. Запит може включати телефонний номер іншої сторони або пошуковий запит</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-ur/cm_strings.xml b/java/com/android/dialer/lookup/res/values-ur/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-uz/cm_strings.xml b/java/com/android/dialer/lookup/res/values-uz/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-vec/cm_strings.xml b/java/com/android/dialer/lookup/res/values-vec/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-vi/cm_strings.xml b/java/com/android/dialer/lookup/res/values-vi/cm_strings.xml
index 31eea32..9d37bf5 100644
--- a/java/com/android/dialer/lookup/res/values-vi/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-vi/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">Địa điểm gần kề</string>
     <string name="people">Mọi người</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">Tra cứu số điện thoại</string>
     <string name="enable_forward_lookup_title">Tra cứu xuôi</string>
     <string name="enable_forward_lookup_summary">Hiển thị các địa điểm gần kề khi tìm kiếm trong trình quay số</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">Nhà cung cấp tra cứu xuôi</string>
     <string name="people_lookup_provider_title">Nhà cung cấp tra cứu người</string>
     <string name="reverse_lookup_provider_title">Nhà cung cấp tra cứu ngược</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">Tra cứu có thể gửi truy vấn qua giao thức an toàn (https) tới các trang web từ xa để thu thập thông tin. Truy vấn có thể bao gồm số điện thoại của bên kia hoặc truy vấn tìm kiếm</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-zh-rCN/cm_strings.xml b/java/com/android/dialer/lookup/res/values-zh-rCN/cm_strings.xml
index 45ef958..9d2469c 100644
--- a/java/com/android/dialer/lookup/res/values-zh-rCN/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-zh-rCN/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">附近地点</string>
     <string name="people">人</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">电话号码查询</string>
     <string name="enable_forward_lookup_title">正向查询</string>
     <string name="enable_forward_lookup_summary">在拨号器搜索时显示附近地点</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">正向查询提供商</string>
     <string name="people_lookup_provider_title">人名查询提供商</string>
     <string name="reverse_lookup_provider_title">反向查询提供商</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">查询将会发送基于安全协议（https）的请求到远程网站以获取信息。此查询可能会包含第三方的电话号码或搜索查询。</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-zh-rHK/cm_strings.xml b/java/com/android/dialer/lookup/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/lookup/res/values-zh-rTW/cm_strings.xml b/java/com/android/dialer/lookup/res/values-zh-rTW/cm_strings.xml
index 3cd0fb4..4efb0f1 100644
--- a/java/com/android/dialer/lookup/res/values-zh-rTW/cm_strings.xml
+++ b/java/com/android/dialer/lookup/res/values-zh-rTW/cm_strings.xml
@@ -16,10 +16,8 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
     <string name="nearby_places">附近的地點</string>
     <string name="people">聯絡人</string>
-    <!-- Number lookup -->
     <string name="lookup_settings_label">搜尋電話號碼</string>
     <string name="enable_forward_lookup_title">正向搜尋</string>
     <string name="enable_forward_lookup_summary">在撥號程式搜尋時顯示附近的地點</string>
@@ -30,6 +28,5 @@
     <string name="forward_lookup_provider_title">正向搜尋供應商</string>
     <string name="people_lookup_provider_title">聯絡人搜尋供應商</string>
     <string name="reverse_lookup_provider_title">反向搜尋供應商</string>
-    <!-- Disclaimer -->
     <string name="lookup_disclaimer">查找可以透過安全協定 (https) 向遠端網站傳送查詢以收集資訊。查詢可能包括對方的電話號碼或搜尋查詢</string>
 </resources>
diff --git a/java/com/android/dialer/lookup/res/values-zu/cm_strings.xml b/java/com/android/dialer/lookup/res/values-zu/cm_strings.xml
deleted file mode 100644
index 68c6a11..0000000
--- a/java/com/android/dialer/lookup/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Forward lookup -->
-    <!-- Number lookup -->
-    <!-- Disclaimer -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-as-rIN/strings.xml b/java/com/android/dialer/main/impl/res/values-as-rIN/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-ast-rES/strings.xml b/java/com/android/dialer/main/impl/res/values-ast-rES/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-br-rFR/strings.xml b/java/com/android/dialer/main/impl/res/values-br-rFR/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-csb/strings.xml b/java/com/android/dialer/main/impl/res/values-csb/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-csb/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-cy/strings.xml b/java/com/android/dialer/main/impl/res/values-cy/strings.xml
index 52c5790..96e7bb0 100644
--- a/java/com/android/dialer/main/impl/res/values-cy/strings.xml
+++ b/java/com/android/dialer/main/impl/res/values-cy/strings.xml
@@ -16,28 +16,16 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Name of the main activity. -->
   <string name="main_activity_label">Ffonio</string>
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
   <string name="nui_shortcut_name">Rhyngwyneb Ffôn Newydd</string>
-  <!-- The description text for the call log tab. -->
   <string name="main_call_history_tab_description">Hanes galwadau</string>
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
+  <string name="search">@android:string/search_go</string>
   <string name="description_search">Chwilio cysylltiadau a lleoedd</string>
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
   <string name="contacts">Cysylltiadau</string>
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
   <string name="description_contacts">Gweld Cysylltiadau</string>
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
   <string name="tab_title_call_history">Hanes Galwadau</string>
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
   <string name="tab_title_speed_dial">Deialu cyflym</string>
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
   <string name="tab_title_voicemail">Lleisbost</string>
-  <!-- Show users their settings [CHAR LIMIT=20] -->
   <string name="settings">Gosodiadau</string>
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
   <string name="main_send_feedback">Anfon adborth</string>
 </resources>
diff --git a/java/com/android/dialer/main/impl/res/values-en-rPT/strings.xml b/java/com/android/dialer/main/impl/res/values-en-rPT/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-eo/strings.xml b/java/com/android/dialer/main/impl/res/values-eo/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-eo/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-es-rCO/strings.xml b/java/com/android/dialer/main/impl/res/values-es-rCO/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-es-rMX/strings.xml b/java/com/android/dialer/main/impl/res/values-es-rMX/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-fil/strings.xml b/java/com/android/dialer/main/impl/res/values-fil/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-fil/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-frp/strings.xml b/java/com/android/dialer/main/impl/res/values-frp/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-frp/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-fy-rNL/strings.xml b/java/com/android/dialer/main/impl/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-ga-rIE/strings.xml b/java/com/android/dialer/main/impl/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-gd/strings.xml b/java/com/android/dialer/main/impl/res/values-gd/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-gd/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/main/impl/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-ku/strings.xml b/java/com/android/dialer/main/impl/res/values-ku/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-ku/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-lb/strings.xml b/java/com/android/dialer/main/impl/res/values-lb/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-lb/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-oc/strings.xml b/java/com/android/dialer/main/impl/res/values-oc/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-oc/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-or-rIN/strings.xml b/java/com/android/dialer/main/impl/res/values-or-rIN/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-rm/strings.xml b/java/com/android/dialer/main/impl/res/values-rm/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-rm/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-sc-rIT/strings.xml b/java/com/android/dialer/main/impl/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-ug/strings.xml b/java/com/android/dialer/main/impl/res/values-ug/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-ug/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/main/impl/res/values-vec/strings.xml b/java/com/android/dialer/main/impl/res/values-vec/strings.xml
deleted file mode 100644
index 5ed6cdd..0000000
--- a/java/com/android/dialer/main/impl/res/values-vec/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Name of the main activity. -->
-  <!-- Name of launcher shortcut for the new UI main activity.
-       TODO(38502365): Remove this once we're ready to launch the new UI. -->
-  <!-- The description text for the call log tab. -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them search for contacts and places [CHAR LIMIT=NONE] -->
-  <!-- Text for a toolbar button that shows the user their contacts [CHAR LIMIT=NONE] -->
-  <!-- A11y announcement to let users know a button will let them view their contacts [CHAR LIMIT=NONE] -->
-  <!-- Tab text to show users their call log/call history [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their favorite contacts that they can call in 1 click [CHAR LIMIT=10] -->
-  <!-- Tab text to show users their voicemails  [CHAR LIMIT=10] -->
-  <!-- Show users their settings [CHAR LIMIT=20] -->
-  <!-- Send feedback about the app [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-as-rIN/strings.xml b/java/com/android/dialer/notification/res/values-as-rIN/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-ast-rES/strings.xml b/java/com/android/dialer/notification/res/values-ast-rES/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-br-rFR/strings.xml b/java/com/android/dialer/notification/res/values-br-rFR/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-csb/strings.xml b/java/com/android/dialer/notification/res/values-csb/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-csb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-cy/strings.xml b/java/com/android/dialer/notification/res/values-cy/strings.xml
index 6ee695f..e946233 100644
--- a/java/com/android/dialer/notification/res/values-cy/strings.xml
+++ b/java/com/android/dialer/notification/res/values-cy/strings.xml
@@ -20,6 +20,5 @@
   <string name="notification_channel_ongoing_call">Galwadau ar y gweill</string>
   <string name="notification_channel_missed_call">Galwadau wedi\'u methu</string>
   <string name="notification_channel_voicemail">Negeseuon lleisbost</string>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
   <string name="notification_channel_misc">Rhagosodiad</string>
 </resources>
diff --git a/java/com/android/dialer/notification/res/values-en-rPT/strings.xml b/java/com/android/dialer/notification/res/values-en-rPT/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-eo/strings.xml b/java/com/android/dialer/notification/res/values-eo/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-eo/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-es-rCO/strings.xml b/java/com/android/dialer/notification/res/values-es-rCO/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-es-rMX/strings.xml b/java/com/android/dialer/notification/res/values-es-rMX/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-fil/strings.xml b/java/com/android/dialer/notification/res/values-fil/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-fil/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-frp/strings.xml b/java/com/android/dialer/notification/res/values-frp/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-frp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-fy-rNL/strings.xml b/java/com/android/dialer/notification/res/values-fy-rNL/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-ga-rIE/strings.xml b/java/com/android/dialer/notification/res/values-ga-rIE/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-gd/strings.xml b/java/com/android/dialer/notification/res/values-gd/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-gd/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/notification/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-ku/strings.xml b/java/com/android/dialer/notification/res/values-ku/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-ku/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-lb/strings.xml b/java/com/android/dialer/notification/res/values-lb/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-lb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-oc/strings.xml b/java/com/android/dialer/notification/res/values-oc/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-oc/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-or-rIN/strings.xml b/java/com/android/dialer/notification/res/values-or-rIN/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-rm/strings.xml b/java/com/android/dialer/notification/res/values-rm/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-rm/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-sc-rIT/strings.xml b/java/com/android/dialer/notification/res/values-sc-rIT/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-ug/strings.xml b/java/com/android/dialer/notification/res/values-ug/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-ug/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/notification/res/values-vec/strings.xml b/java/com/android/dialer/notification/res/values-vec/strings.xml
deleted file mode 100644
index f47dfaf..0000000
--- a/java/com/android/dialer/notification/res/values-vec/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-as-rIN/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-as-rIN/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-ast-rES/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-ast-rES/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-br-rFR/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-br-rFR/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-csb/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-csb/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-csb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-cy/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-cy/strings.xml
index ff5fefe..747261a 100644
--- a/java/com/android/dialer/phonenumberutil/res/values-cy/strings.xml
+++ b/java/com/android/dialer/phonenumberutil/res/values-cy/strings.xml
@@ -16,12 +16,6 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
   <string name="private_num_verizon">Wedi\'i rhwystro</string>
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
   <string name="private_num_non_verizon">Rhif preifat</string>
 </resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-en-rPT/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-en-rPT/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-eo/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-eo/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-eo/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-es-rCO/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-es-rCO/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-es-rMX/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-es-rMX/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-fil/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-fil/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-fil/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-frp/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-frp/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-frp/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-fy-rNL/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-ga-rIE/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-gd/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-gd/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-gd/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-ku/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-ku/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-ku/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-lb/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-lb/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-lb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-oc/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-oc/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-oc/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-or-rIN/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-or-rIN/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-rm/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-rm/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-rm/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-sc-rIT/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-ug/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-ug/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-ug/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/phonenumberutil/res/values-vec/strings.xml b/java/com/android/dialer/phonenumberutil/res/values-vec/strings.xml
deleted file mode 100644
index 1a5ede5..0000000
--- a/java/com/android/dialer/phonenumberutil/res/values-vec/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- String used to display calls from private numbers in the call log and in call UI. For
-    example, if the user gets an incoming phone call from an unknown number, the caller ID will
-    read "Restricted". We only show this string if the user is on the Verizon network. -->
-  <!-- String used to display calls from private numbers in the call log. For example, if the user
-    gets an incoming phone call from an unknown number, the caller ID will read "Private number".
-    We only show this string if the user is not on the Verizon network. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-as-rIN/strings.xml b/java/com/android/dialer/postcall/res/values-as-rIN/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ast-rES/strings.xml b/java/com/android/dialer/postcall/res/values-ast-rES/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-br-rFR/strings.xml b/java/com/android/dialer/postcall/res/values-br-rFR/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-csb/strings.xml b/java/com/android/dialer/postcall/res/values-csb/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-csb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-cy/strings.xml b/java/com/android/dialer/postcall/res/values-cy/strings.xml
index f15b957..273bfc8 100644
--- a/java/com/android/dialer/postcall/res/values-cy/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-cy/strings.xml
@@ -16,19 +16,12 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
   <string name="post_call_message">Dywedwch pam eich bod wedi galw</string>
-  <!-- Premade message to be sent as a text/RCS message -->
   <string name="post_call_message_1">Mae\'n fater brys. Galwch fi nôl.</string>
-  <!-- Premade message to be sent as a text/RCS message -->
   <string name="post_call_message_2">Ffoniwch fi nôl pan gewch chi gyfle.</string>
-  <!-- Premade message to be sent as a text/RCS message -->
   <string name="post_call_message_3">Dim brys. Gallwn sgwrsio\'n hwyrach.</string>
-  <!-- Asks the user if they want to send a post call message -->
   <string name="post_call_add_message">Ychwanegu neges</string>
-  <!-- Asks the user if they want to send a post call message -->
   <string name="post_call_send_message">Anfon neges</string>
-  <!-- Shown to let the user know that their message was sent. -->
   <string name="post_call_message_sent">Anfonwyd y neges</string>
   <string name="view">Gweld</string>
 </resources>
diff --git a/java/com/android/dialer/postcall/res/values-en-rPT/strings.xml b/java/com/android/dialer/postcall/res/values-en-rPT/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-eo/strings.xml b/java/com/android/dialer/postcall/res/values-eo/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-eo/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-es-rCO/strings.xml b/java/com/android/dialer/postcall/res/values-es-rCO/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-es-rMX/strings.xml b/java/com/android/dialer/postcall/res/values-es-rMX/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fil/strings.xml b/java/com/android/dialer/postcall/res/values-fil/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-fil/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-frp/strings.xml b/java/com/android/dialer/postcall/res/values-frp/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-frp/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fy-rNL/strings.xml b/java/com/android/dialer/postcall/res/values-fy-rNL/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ga-rIE/strings.xml b/java/com/android/dialer/postcall/res/values-ga-rIE/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-gd/strings.xml b/java/com/android/dialer/postcall/res/values-gd/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-gd/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/postcall/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ku/strings.xml b/java/com/android/dialer/postcall/res/values-ku/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-ku/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-lb/strings.xml b/java/com/android/dialer/postcall/res/values-lb/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-lb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-oc/strings.xml b/java/com/android/dialer/postcall/res/values-oc/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-oc/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-or-rIN/strings.xml b/java/com/android/dialer/postcall/res/values-or-rIN/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-rm/strings.xml b/java/com/android/dialer/postcall/res/values-rm/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-rm/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sc-rIT/strings.xml b/java/com/android/dialer/postcall/res/values-sc-rIT/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ug/strings.xml b/java/com/android/dialer/postcall/res/values-ug/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-ug/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/postcall/res/values-vec/strings.xml b/java/com/android/dialer/postcall/res/values-vec/strings.xml
deleted file mode 100644
index db11be8..0000000
--- a/java/com/android/dialer/postcall/res/values-vec/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Shown as a message that notifies asks the user if they want to send a post call message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Premade message to be sent as a text/RCS message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Asks the user if they want to send a post call message -->
-  <!-- Shown to let the user know that their message was sent. -->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-as-rIN/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-as-rIN/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ast-rES/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ast-rES/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-br-rFR/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-br-rFR/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-csb/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-csb/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-csb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cy/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cy/strings.xml
index b985a6e..e72bf93 100644
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cy/strings.xml
+++ b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-cy/strings.xml
@@ -16,6 +16,5 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
   <string name="nearby_places">Lleoedd cyfagos</string>
 </resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rPT/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rPT/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eo/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eo/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-eo/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rCO/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rCO/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rMX/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rMX/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fil/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fil/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fil/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-frp/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-frp/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-frp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fy-rNL/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ga-rIE/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gd/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gd/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-gd/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ku/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ku/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ku/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lb/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lb/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-lb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-oc/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-oc/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-oc/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-or-rIN/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-or-rIN/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-rm/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-rm/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-rm/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sc-rIT/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ug/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ug/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-ug/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vec/strings.xml b/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vec/strings.xml
deleted file mode 100644
index 0eaa33a..0000000
--- a/java/com/android/dialer/searchfragment/nearbyplaces/res/values-vec/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Label for a list of local search results [CHAR LIMIT=30]-->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-as-rIN/strings.xml b/java/com/android/dialer/shortcuts/res/values-as-rIN/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-ast-rES/strings.xml b/java/com/android/dialer/shortcuts/res/values-ast-rES/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-br-rFR/strings.xml b/java/com/android/dialer/shortcuts/res/values-br-rFR/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-csb/strings.xml b/java/com/android/dialer/shortcuts/res/values-csb/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-csb/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-cy/strings.xml b/java/com/android/dialer/shortcuts/res/values-cy/strings.xml
index 15a6f0e..a89e9fd 100644
--- a/java/com/android/dialer/shortcuts/res/values-cy/strings.xml
+++ b/java/com/android/dialer/shortcuts/res/values-cy/strings.xml
@@ -16,18 +16,9 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
   <string name="dialer_shortcut_add_contact_short">Cyswllt newydd</string>
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
   <string name="dialer_shortcut_add_contact_long">Cyswllt newydd</string>
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
   <string name="dialer_shortcut_disabled_message">Llwybr byr ddim yn gweithio. Llusga i\'w ddileu.</string>
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
   <string name="dialer_shortcut_contact_not_found_or_has_no_number">Dyw\'r cyswllt ddim ar gael bellach.</string>
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
   <string name="dialer_shortcut_no_permissions">Methu â galw heb ganiatâd.</string>
 </resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-en-rPT/strings.xml b/java/com/android/dialer/shortcuts/res/values-en-rPT/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-eo/strings.xml b/java/com/android/dialer/shortcuts/res/values-eo/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-eo/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-es-rCO/strings.xml b/java/com/android/dialer/shortcuts/res/values-es-rCO/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-es-rMX/strings.xml b/java/com/android/dialer/shortcuts/res/values-es-rMX/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-fil/strings.xml b/java/com/android/dialer/shortcuts/res/values-fil/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-fil/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-frp/strings.xml b/java/com/android/dialer/shortcuts/res/values-frp/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-frp/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-fy-rNL/strings.xml b/java/com/android/dialer/shortcuts/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-ga-rIE/strings.xml b/java/com/android/dialer/shortcuts/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-gd/strings.xml b/java/com/android/dialer/shortcuts/res/values-gd/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-gd/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/shortcuts/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-ku/strings.xml b/java/com/android/dialer/shortcuts/res/values-ku/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-ku/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-lb/strings.xml b/java/com/android/dialer/shortcuts/res/values-lb/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-lb/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-oc/strings.xml b/java/com/android/dialer/shortcuts/res/values-oc/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-oc/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-or-rIN/strings.xml b/java/com/android/dialer/shortcuts/res/values-or-rIN/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-rm/strings.xml b/java/com/android/dialer/shortcuts/res/values-rm/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-rm/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-sc-rIT/strings.xml b/java/com/android/dialer/shortcuts/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-ug/strings.xml b/java/com/android/dialer/shortcuts/res/values-ug/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-ug/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/shortcuts/res/values-vec/strings.xml b/java/com/android/dialer/shortcuts/res/values-vec/strings.xml
deleted file mode 100644
index 1a6ab3d..0000000
--- a/java/com/android/dialer/shortcuts/res/values-vec/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text to display in launcher shortcut for adding a new contact. Short version. [CHAR LIMIT=10] -->
-  <!-- Text to display in launcher shortcut for adding a new contact. Long version. [CHAR LIMIT=25] -->
-  <!-- Message to display when the user taps a pinned launcher shortcut (on a
-       homescreen) which has been disabled. A shortcut may be disabled if the
-       contact has been deleted or if it is invalid for some other reason. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because the specified contact can't
-       be found or doesn't have any phone numbers. [CHAR LIMIT=70] -->
-  <!-- Error message to display when a tapping a shortcut fails because permissions are missing.
-       [CHAR LIMIT=70] -->
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-as-rIN/strings.xml b/java/com/android/dialer/speeddial/res/values-as-rIN/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-ast-rES/strings.xml b/java/com/android/dialer/speeddial/res/values-ast-rES/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-br-rFR/strings.xml b/java/com/android/dialer/speeddial/res/values-br-rFR/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-csb/strings.xml b/java/com/android/dialer/speeddial/res/values-csb/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-csb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-cy/strings.xml b/java/com/android/dialer/speeddial/res/values-cy/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-cy/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-en-rPT/strings.xml b/java/com/android/dialer/speeddial/res/values-en-rPT/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-eo/strings.xml b/java/com/android/dialer/speeddial/res/values-eo/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-eo/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-es-rCO/strings.xml b/java/com/android/dialer/speeddial/res/values-es-rCO/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-es-rMX/strings.xml b/java/com/android/dialer/speeddial/res/values-es-rMX/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-fil/strings.xml b/java/com/android/dialer/speeddial/res/values-fil/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-fil/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-frp/strings.xml b/java/com/android/dialer/speeddial/res/values-frp/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-frp/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-fy-rNL/strings.xml b/java/com/android/dialer/speeddial/res/values-fy-rNL/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-ga-rIE/strings.xml b/java/com/android/dialer/speeddial/res/values-ga-rIE/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-gd/strings.xml b/java/com/android/dialer/speeddial/res/values-gd/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-gd/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/speeddial/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-ku/strings.xml b/java/com/android/dialer/speeddial/res/values-ku/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-ku/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-lb/strings.xml b/java/com/android/dialer/speeddial/res/values-lb/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-lb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-oc/strings.xml b/java/com/android/dialer/speeddial/res/values-oc/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-oc/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-or-rIN/strings.xml b/java/com/android/dialer/speeddial/res/values-or-rIN/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-rm/strings.xml b/java/com/android/dialer/speeddial/res/values-rm/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-rm/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-sc-rIT/strings.xml b/java/com/android/dialer/speeddial/res/values-sc-rIT/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-ug/strings.xml b/java/com/android/dialer/speeddial/res/values-ug/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-ug/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/speeddial/res/values-vec/strings.xml b/java/com/android/dialer/speeddial/res/values-vec/strings.xml
deleted file mode 100644
index dab453b..0000000
--- a/java/com/android/dialer/speeddial/res/values-vec/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-as-rIN/strings.xml b/java/com/android/dialer/theme/res/values-as-rIN/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-ast-rES/strings.xml b/java/com/android/dialer/theme/res/values-ast-rES/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-br-rFR/strings.xml b/java/com/android/dialer/theme/res/values-br-rFR/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-csb/strings.xml b/java/com/android/dialer/theme/res/values-csb/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-csb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-cy/strings.xml b/java/com/android/dialer/theme/res/values-cy/strings.xml
index edb6f26..84f8798 100644
--- a/java/com/android/dialer/theme/res/values-cy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cy/strings.xml
@@ -16,18 +16,11 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
   <string name="unknown">Anhysybys</string>
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
   <string name="unknown_counter">    <xliff:g id="unknown">%s</xliff:g> <xliff:g id="id">%d</xliff:g>
   </string>
-  <!-- String used to display calls from pay phone in the call log -->
   <string name="payphone">Ffôn cyhoeddus</string>
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
   <string name="launcherActivityLabel">Ffonio</string>
-  <!-- text on a button, Video call, as in to place a video call. -->
   <string name="video_call">Galwad fideo</string>
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
   <string name="call">Galw</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rPT/strings.xml b/java/com/android/dialer/theme/res/values-en-rPT/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-eo/strings.xml b/java/com/android/dialer/theme/res/values-eo/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-eo/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rCO/strings.xml b/java/com/android/dialer/theme/res/values-es-rCO/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rMX/strings.xml b/java/com/android/dialer/theme/res/values-es-rMX/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-fil/strings.xml b/java/com/android/dialer/theme/res/values-fil/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-fil/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-frp/strings.xml b/java/com/android/dialer/theme/res/values-frp/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-frp/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-fy-rNL/strings.xml b/java/com/android/dialer/theme/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-ga-rIE/strings.xml b/java/com/android/dialer/theme/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-gd/strings.xml b/java/com/android/dialer/theme/res/values-gd/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-gd/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/theme/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-ku/strings.xml b/java/com/android/dialer/theme/res/values-ku/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-ku/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-lb/strings.xml b/java/com/android/dialer/theme/res/values-lb/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-lb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-oc/strings.xml b/java/com/android/dialer/theme/res/values-oc/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-oc/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-or-rIN/strings.xml b/java/com/android/dialer/theme/res/values-or-rIN/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-rm/strings.xml b/java/com/android/dialer/theme/res/values-rm/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-rm/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-sc-rIT/strings.xml b/java/com/android/dialer/theme/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-ug/strings.xml b/java/com/android/dialer/theme/res/values-ug/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-ug/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/theme/res/values-vec/strings.xml b/java/com/android/dialer/theme/res/values-vec/strings.xml
deleted file mode 100644
index 8170dba..0000000
--- a/java/com/android/dialer/theme/res/values-vec/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- String used to display calls from unknown numbers in the call log -->
-  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
-  <!-- String used to display calls from pay phone in the call log -->
-  <!-- Title for the activity that dials the phone.  This is the name
-       used in the Launcher icon. -->
-  <!-- text on a button, Video call, as in to place a video call. -->
-  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-as-rIN/strings.xml b/java/com/android/dialer/util/res/values-as-rIN/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-ast-rES/strings.xml b/java/com/android/dialer/util/res/values-ast-rES/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-br-rFR/strings.xml b/java/com/android/dialer/util/res/values-br-rFR/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-csb/strings.xml b/java/com/android/dialer/util/res/values-csb/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-csb/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-cy/strings.xml b/java/com/android/dialer/util/res/values-cy/strings.xml
index 93a10b3..e4bb748 100644
--- a/java/com/android/dialer/util/res/values-cy/strings.xml
+++ b/java/com/android/dialer/util/res/values-cy/strings.xml
@@ -16,23 +16,11 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
   <string name="default_notification_description">Sain rhagosodedig (<xliff:g id="default_sound_title">%1$s</xliff:g>)</string>
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
   <string name="ringtone_silent">Dim</string>
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
   <string name="ringtone_unknown">Tôn caniad anhysbys</string>
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
   <string name="activity_not_available">Dim ap ar gyfer hynny ar y ddyfais hon</string>
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
   <string name="outgoing_wps_warning">Bydd gwneud galwad WPS yn datgysylltu dy alwad presennol.</string>
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
   <string name="dialog_continue">Parhau</string>
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
   <string name="camera_privacy_text">Galluogwyd caniatâd camera</string>
 </resources>
diff --git a/java/com/android/dialer/util/res/values-en-rPT/strings.xml b/java/com/android/dialer/util/res/values-en-rPT/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-eo/strings.xml b/java/com/android/dialer/util/res/values-eo/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-eo/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-es-rCO/strings.xml b/java/com/android/dialer/util/res/values-es-rCO/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-es-rMX/strings.xml b/java/com/android/dialer/util/res/values-es-rMX/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-fil/strings.xml b/java/com/android/dialer/util/res/values-fil/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-fil/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-frp/strings.xml b/java/com/android/dialer/util/res/values-frp/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-frp/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-fy-rNL/strings.xml b/java/com/android/dialer/util/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-ga-rIE/strings.xml b/java/com/android/dialer/util/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-gd/strings.xml b/java/com/android/dialer/util/res/values-gd/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-gd/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/util/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-ku/strings.xml b/java/com/android/dialer/util/res/values-ku/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-ku/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-lb/strings.xml b/java/com/android/dialer/util/res/values-lb/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-lb/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-oc/strings.xml b/java/com/android/dialer/util/res/values-oc/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-oc/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-or-rIN/strings.xml b/java/com/android/dialer/util/res/values-or-rIN/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-rm/strings.xml b/java/com/android/dialer/util/res/values-rm/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-rm/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-sc-rIT/strings.xml b/java/com/android/dialer/util/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-ug/strings.xml b/java/com/android/dialer/util/res/values-ug/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-ug/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/util/res/values-vec/strings.xml b/java/com/android/dialer/util/res/values-vec/strings.xml
deleted file mode 100644
index 6f76bdb..0000000
--- a/java/com/android/dialer/util/res/values-vec/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!--  The string used to describe a notification if it is the default one in the system. For
-        example, if the user selects the default notification, it will appear as something like
-        Default sound(Capella) in the notification summary.
-        [CHAR LIMIT=40] -->
-  <!-- Choice in the ringtone picker.  If chosen, there will be silence instead of a ringtone played. -->
-  <!-- If there is ever a ringtone set for some setting, but that ringtone can no longer be resolved, this is shown instead.  For example, if the ringtone was on a SD card and it had been removed, this would be shown for ringtones on that SD card. -->
-  <!-- Message displayed when there is no application available to handle a particular action.
-       [CHAR LIMIT=NONE] -->
-  <!-- Text of warning to be shown when the user attempts to make an outgoing Wireless
-       Preferred Service call when there is an VoLTE call in progress -->
-  <!-- Text for button which indicates that the user wants to proceed with an action. -->
-  <!-- Text presented to the user explaining that we have enabled the camera permission automatically [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-as-rIN/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-as-rIN/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-ast-rES/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-ast-rES/strings.xml
index fbc360f..019c2be 100644
--- a/java/com/android/dialer/voicemailstatus/res/values-ast-rES/strings.xml
+++ b/java/com/android/dialer/voicemailstatus/res/values-ast-rES/strings.xml
@@ -16,18 +16,10 @@
   ~ limitations under the License
   -->
 <resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
+  <string name="voicemail_status_voicemail_not_available">Anovamientos de corréu de voz non disponible</string>
+  <string name="voicemail_status_messages_waiting">Nuevu corréu de voz n\'espera. Nun se puede cargar agora.</string>
+  <string name="voicemail_status_configure_voicemail">Configurar el to corréu de voz</string>
+  <string name="voicemail_status_audio_not_available">Audiu non disponible</string>
+  <string name="voicemail_status_action_configure">Configurar</string>
+  <string name="voicemail_status_action_call_server">Llamar a buzón de voz</string>
 </resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-br-rFR/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-br-rFR/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-csb/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-csb/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-csb/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-cy/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-cy/strings.xml
index 28fdff4..f1bb16b 100644
--- a/java/com/android/dialer/voicemailstatus/res/values-cy/strings.xml
+++ b/java/com/android/dialer/voicemailstatus/res/values-cy/strings.xml
@@ -16,24 +16,10 @@
   ~ limitations under the License
   -->
 <resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
   <string name="voicemail_status_voicemail_not_available">Diweddariadau lleisbost ddim ar gael</string>
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
   <string name="voicemail_status_messages_waiting">Neges lleisbost newydd yn aros. Methu â\'i llwytho ar hyn o bryd.</string>
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
   <string name="voicemail_status_configure_voicemail">Gosod dy leisbost</string>
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
   <string name="voicemail_status_audio_not_available">Sain ddim ar gael</string>
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
   <string name="voicemail_status_action_configure">Gosod</string>
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
   <string name="voicemail_status_action_call_server">Galw lleisbost</string>
 </resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-en-rPT/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-en-rPT/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-eo/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-eo/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-eo/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-es-rCO/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-es-rCO/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-es-rMX/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-es-rMX/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-fil/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-fil/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-fil/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-frp/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-frp/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-frp/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-fy-rNL/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-fy-rNL/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-ga-rIE/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-ga-rIE/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-gd/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-gd/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-gd/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-ku/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-ku/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-ku/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-lb/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-lb/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-lb/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-oc/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-oc/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-oc/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-or-rIN/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-or-rIN/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-rm/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-rm/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-rm/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-sc-rIT/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-sc-rIT/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-ug/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-ug/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-ug/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/voicemailstatus/res/values-vec/strings.xml b/java/com/android/dialer/voicemailstatus/res/values-vec/strings.xml
deleted file mode 100644
index fbc360f..0000000
--- a/java/com/android/dialer/voicemailstatus/res/values-vec/strings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2012 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!--  Voicemail status message shown at the top of call log to notify the user that no new
-  voicemails are currently available. This can happen when both notification as well as data
-  connection to the voicemail server is lost. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to notify the user that there is no
-    data connection to the voicemail server, but there are new voicemails waiting on the server.
-    [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call log to invite the user to configure
-  visual voicemail. [CHAR LIMIT=64] -->
-  <!--  Voicemail status message shown at the top of call details screen to notify the user that
-  the audio of this voicemail is not available. [CHAR LIMIT=64] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user configure
-  visual voicemail. [CHAR LIMIT=20] -->
-  <!--  User action prompt shown next to a voicemail status message to let the user call voicemail
-  server directly to listen to the voicemails. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-as-rIN/strings.xml b/java/com/android/dialer/widget/res/values-as-rIN/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-ast-rES/strings.xml b/java/com/android/dialer/widget/res/values-ast-rES/strings.xml
index 6da854d..1b16824 100644
--- a/java/com/android/dialer/widget/res/values-ast-rES/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ast-rES/strings.xml
@@ -16,11 +16,5 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
+  <string name="custom_message_hint">Escribi un mensax personalizáu</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-br-rFR/strings.xml b/java/com/android/dialer/widget/res/values-br-rFR/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-csb/strings.xml b/java/com/android/dialer/widget/res/values-csb/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-csb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-cy/strings.xml b/java/com/android/dialer/widget/res/values-cy/strings.xml
index b10cd48..7e5b225 100644
--- a/java/com/android/dialer/widget/res/values-cy/strings.xml
+++ b/java/com/android/dialer/widget/res/values-cy/strings.xml
@@ -16,18 +16,11 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
   <string name="custom_message_hint">Ysgrifenna neges dy hun</string>
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
   <string name="toolbar_close">Cau</string>
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
   <string name="all_contacts_empty">Nid oes gennyt unrhyw gysylltiadau eto</string>
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
   <string name="all_contacts_empty_add_contact_action">Creu cyswllt newydd</string>
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
   <string name="permission_single_turn_on">Troi ymlaen</string>
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
   <string name="permission_no_contacts">I weld dy gysylltiadau, rho ganiatâd yn yr ap Cysylltiadau.</string>
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
   <string name="add_contact_not_available">Dim ap cysylltiadau ar gael</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rPT/strings.xml b/java/com/android/dialer/widget/res/values-en-rPT/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-eo/strings.xml b/java/com/android/dialer/widget/res/values-eo/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-eo/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-es-rCO/strings.xml b/java/com/android/dialer/widget/res/values-es-rCO/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-es-rMX/strings.xml b/java/com/android/dialer/widget/res/values-es-rMX/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-fil/strings.xml b/java/com/android/dialer/widget/res/values-fil/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-fil/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-frp/strings.xml b/java/com/android/dialer/widget/res/values-frp/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-frp/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-fy-rNL/strings.xml b/java/com/android/dialer/widget/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-ga-rIE/strings.xml b/java/com/android/dialer/widget/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-gd/strings.xml b/java/com/android/dialer/widget/res/values-gd/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-gd/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-kab-rDZ/strings.xml b/java/com/android/dialer/widget/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-ku/strings.xml b/java/com/android/dialer/widget/res/values-ku/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-ku/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-lb/strings.xml b/java/com/android/dialer/widget/res/values-lb/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-lb/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-oc/strings.xml b/java/com/android/dialer/widget/res/values-oc/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-oc/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-or-rIN/strings.xml b/java/com/android/dialer/widget/res/values-or-rIN/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-rm/strings.xml b/java/com/android/dialer/widget/res/values-rm/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-rm/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-sc-rIT/strings.xml b/java/com/android/dialer/widget/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-ug/strings.xml b/java/com/android/dialer/widget/res/values-ug/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-ug/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/dialer/widget/res/values-vec/strings.xml b/java/com/android/dialer/widget/res/values-vec/strings.xml
deleted file mode 100644
index 6da854d..0000000
--- a/java/com/android/dialer/widget/res/values-vec/strings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Hint in a text field to compose a custom message to send with a phone call [CHAR LIMIT=27] -->
-  <!-- Accessibility string for close/navigation icon in DialerToolbar -->
-  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
-  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-as-rIN/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-as-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-ast-rES/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-ast-rES/strings.xml
index 70489fb..0cb5e7c 100644
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-ast-rES/strings.xml
+++ b/java/com/android/incallui/answer/impl/answermethod/res/values-ast-rES/strings.xml
@@ -1,3 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
-<resources></resources>
+<resources>
+  <string name="call_incoming_swipe_to_answer">Esliza p\'arriba pa retrucar</string>
+  <string name="call_incoming_swipe_to_reject">Eslizar hacia abaxo pa refugar</string>
+  <string name="a11y_incoming_call_swipe_to_answer">Esliza p\'arriba con dos deos pa retrucar o p\'abaxo pa refugar la llamada</string>
+  <string name="call_incoming_will_disconnect">Si retruques a esta llamada finará la to videu llamada</string>
+</resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-br-rFR/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-br-rFR/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-csb/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-csb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-csb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-en-rPT/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-en-rPT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-eo/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-eo/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-eo/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-es-rCO/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-es-rCO/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-es-rMX/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-es-rMX/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-fil/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-fil/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-fil/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-frp/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-frp/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-frp/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-fy-rNL/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-ga-rIE/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-gd/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-gd/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-gd/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-ku/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-ku/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-ku/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-lb/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-lb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-lb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-oc/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-oc/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-oc/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-or-rIN/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-or-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-rm/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-rm/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-rm/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-sc-rIT/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-ug/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-ug/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-ug/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/values-vec/strings.xml b/java/com/android/incallui/answer/impl/answermethod/res/values-vec/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/answer/impl/answermethod/res/values-vec/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-as-rIN/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-as-rIN/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ast-rES/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ast-rES/strings.xml
index 75a2fbd..11e7037 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ast-rES/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ast-rES/strings.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
 <resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
+  <string name="event_deactivated">Mou mascota apagáu</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-br-rFR/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-br-rFR/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-csb/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-csb/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-csb/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-cy/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-cy/strings.xml
index 5f2e709..5eae129 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-cy/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-cy/strings.xml
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
 <resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
   <string name="event_deactivated">Modd anifeiliaid anwes i ffwrdd</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-en-rPT/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-en-rPT/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-eo/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-eo/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-eo/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-es-rCO/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-es-rCO/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-es-rMX/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-es-rMX/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fil/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fil/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-fil/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-frp/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-frp/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-frp/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fy-rNL/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ga-rIE/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-gd/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-gd/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-gd/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ku/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ku/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-ku/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-lb/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-lb/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-lb/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-oc/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-oc/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-oc/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-or-rIN/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-or-rIN/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-rm/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-rm/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-rm/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sc-rIT/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ug/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ug/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-ug/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-vec/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-vec/strings.xml
deleted file mode 100644
index 75a2fbd..0000000
--- a/java/com/android/incallui/answer/impl/hint/res/values-vec/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
-   dog paw animation swiping on the screen-->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-as-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-as-rIN/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ast-rES/strings.xml b/java/com/android/incallui/answer/impl/res/values-ast-rES/strings.xml
index dbb36ea..83b2aee 100644
--- a/java/com/android/incallui/answer/impl/res/values-ast-rES/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ast-rES/strings.xml
@@ -16,9 +16,18 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
+  <string name="call_incoming_message_custom">Escribi la to propia…</string>
+  <string name="call_incoming_audio_handset">Auricular</string>
+  <string name="call_incoming_audio_speakerphone">Altavoz</string>
+  <string name="call_incoming_respond_via_sms_custom_message">Escribi la to propia…</string>
+  <string name="call_incoming_custom_message_cancel">Encaboxar</string>
+  <string name="call_incoming_custom_message_send">Unviar</string>
+  <string name="a11y_incoming_call_reject_with_sms">Refugar esta llamada con un mensaxe</string>
+  <string name="a11y_incoming_call_answer_video_as_audio">Contestar como llamada d\'audiu</string>
+  <string name="a11y_incoming_call_answer_and_release">Retrucar y acabar la llamada en cursu</string>
+  <string name="a11y_description_incoming_call_reject_with_sms">Refugar con mensaxe</string>
+  <string name="a11y_description_incoming_call_answer_video_as_audio">Contestar como llamada d\'audiu</string>
+  <string name="a11y_description_incoming_call_answer_and_release">Retrucar y acabar la llamada en cursu</string>
+  <string name="call_incoming_video_is_off">El videu ta apagáu</string>
+  <string name="call_incoming_important">Importante</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-br-rFR/strings.xml b/java/com/android/incallui/answer/impl/res/values-br-rFR/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-csb/strings.xml b/java/com/android/incallui/answer/impl/res/values-csb/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-csb/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-cy/strings.xml b/java/com/android/incallui/answer/impl/res/values-cy/strings.xml
index 964736b..2887d6e 100644
--- a/java/com/android/incallui/answer/impl/res/values-cy/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-cy/strings.xml
@@ -24,11 +24,8 @@
   <string name="call_incoming_message_custom">Ysgrifenna neges dy hun…</string>
   <string name="call_incoming_audio_handset">Set llaw</string>
   <string name="call_incoming_audio_speakerphone">Seinydd uchel</string>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
   <string name="call_incoming_respond_via_sms_custom_message">Ysgrifenna neges dy hun…</string>
-  <!-- "Custom Message" Cancel alert dialog button -->
   <string name="call_incoming_custom_message_cancel">Diddymu</string>
-  <!-- "Custom Message" Send alert dialog button -->
   <string name="call_incoming_custom_message_send">Anfon</string>
   <string name="a11y_incoming_call_reject_with_sms">Gwrthod yr alwad hon gyda neges</string>
   <string name="a11y_incoming_call_answer_video_as_audio">Ateb fel galwad llais</string>
@@ -36,9 +33,7 @@
   <string name="a11y_description_incoming_call_reject_with_sms">Gwrthod gyda neges</string>
   <string name="a11y_description_incoming_call_answer_video_as_audio">Ateb fel galwad llais</string>
   <string name="a11y_description_incoming_call_answer_and_release">Ateb a gorffen yr alwad sydd eisoes ar y gweill</string>
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
   <string name="call_incoming_video_is_off">Mae fideo i ffwrdd</string>
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
   <string description="The message announced to accessibility assistance on incoming call." name="a11y_incoming_call_swipe_gesture_prompt">Llusgo i fyny â dau fys i ateb. Llusgo i lawr a dau fys i wrthod.</string>
   <string name="call_incoming_important">Pwysig</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rPT/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-eo/strings.xml b/java/com/android/incallui/answer/impl/res/values-eo/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-eo/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rCO/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rCO/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rMX/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rMX/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fil/strings.xml b/java/com/android/incallui/answer/impl/res/values-fil/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-fil/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-frp/strings.xml b/java/com/android/incallui/answer/impl/res/values-frp/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-frp/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fy-rNL/strings.xml b/java/com/android/incallui/answer/impl/res/values-fy-rNL/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ga-rIE/strings.xml b/java/com/android/incallui/answer/impl/res/values-ga-rIE/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gd/strings.xml b/java/com/android/incallui/answer/impl/res/values-gd/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-gd/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/answer/impl/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ku/strings.xml b/java/com/android/incallui/answer/impl/res/values-ku/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-ku/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lb/strings.xml b/java/com/android/incallui/answer/impl/res/values-lb/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-lb/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-oc/strings.xml b/java/com/android/incallui/answer/impl/res/values-oc/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-oc/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-or-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-or-rIN/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-rm/strings.xml b/java/com/android/incallui/answer/impl/res/values-rm/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-rm/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sc-rIT/strings.xml b/java/com/android/incallui/answer/impl/res/values-sc-rIT/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ug/strings.xml b/java/com/android/incallui/answer/impl/res/values-ug/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-ug/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-vec/strings.xml b/java/com/android/incallui/answer/impl/res/values-vec/strings.xml
deleted file mode 100644
index dbb36ea..0000000
--- a/java/com/android/incallui/answer/impl/res/values-vec/strings.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- "Respond via SMS" option that lets you compose a custom response. [CHAR LIMIT=30] -->
-  <!-- "Custom Message" Cancel alert dialog button -->
-  <!-- "Custom Message" Send alert dialog button -->
-  <!-- Text indicates the video local camera is off. [CHAR LIMIT=40] -->
-  <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
-</resources>
diff --git a/java/com/android/incallui/audioroute/res/values-as-rIN/strings.xml b/java/com/android/incallui/audioroute/res/values-as-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-ast-rES/strings.xml b/java/com/android/incallui/audioroute/res/values-ast-rES/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-br-rFR/strings.xml b/java/com/android/incallui/audioroute/res/values-br-rFR/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-csb/strings.xml b/java/com/android/incallui/audioroute/res/values-csb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-csb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-en-rPT/strings.xml b/java/com/android/incallui/audioroute/res/values-en-rPT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-eo/strings.xml b/java/com/android/incallui/audioroute/res/values-eo/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-eo/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-es-rCO/strings.xml b/java/com/android/incallui/audioroute/res/values-es-rCO/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-es-rMX/strings.xml b/java/com/android/incallui/audioroute/res/values-es-rMX/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-fil/strings.xml b/java/com/android/incallui/audioroute/res/values-fil/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-fil/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-frp/strings.xml b/java/com/android/incallui/audioroute/res/values-frp/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-frp/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-fy-rNL/strings.xml b/java/com/android/incallui/audioroute/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-ga-rIE/strings.xml b/java/com/android/incallui/audioroute/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-gd/strings.xml b/java/com/android/incallui/audioroute/res/values-gd/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-gd/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/audioroute/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-ku/strings.xml b/java/com/android/incallui/audioroute/res/values-ku/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-ku/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-lb/strings.xml b/java/com/android/incallui/audioroute/res/values-lb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-lb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-oc/strings.xml b/java/com/android/incallui/audioroute/res/values-oc/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-oc/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-or-rIN/strings.xml b/java/com/android/incallui/audioroute/res/values-or-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-rm/strings.xml b/java/com/android/incallui/audioroute/res/values-rm/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-rm/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-sc-rIT/strings.xml b/java/com/android/incallui/audioroute/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-ug/strings.xml b/java/com/android/incallui/audioroute/res/values-ug/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-ug/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/audioroute/res/values-vec/strings.xml b/java/com/android/incallui/audioroute/res/values-vec/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/audioroute/res/values-vec/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/commontheme/res/values-as-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-as-rIN/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ast-rES/strings.xml b/java/com/android/incallui/commontheme/res/values-ast-rES/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-br-rFR/strings.xml b/java/com/android/incallui/commontheme/res/values-br-rFR/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-csb/strings.xml b/java/com/android/incallui/commontheme/res/values-csb/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-csb/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-cy/strings.xml b/java/com/android/incallui/commontheme/res/values-cy/strings.xml
index 3d9c6ee..70136b5 100644
--- a/java/com/android/incallui/commontheme/res/values-cy/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-cy/strings.xml
@@ -25,19 +25,11 @@
   <string name="incall_content_description_speaker">Seinydd</string>
   <string name="incall_content_description_bluetooth">Bluetooth</string>
   <string name="incall_content_description_headset">Clustffonau gwifr</string>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
   <string name="incall_content_description_hold">Rhoi\'r galwr i ddisgwyl</string>
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
   <string name="incall_content_description_unhold">Parhau â\'r alwad</string>
   <string name="incall_content_description_video_on">Fideo ymlaen</string>
   <string name="incall_content_description_video_off">Fideo i ffwrdd</string>
   <string name="incall_content_description_swap_video">Cyfnewid fideos</string>
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_speaker">Seinydd</string>
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_audio">Sain</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rPT/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-eo/strings.xml b/java/com/android/incallui/commontheme/res/values-eo/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-eo/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es-rCO/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rCO/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es-rMX/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rMX/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fil/strings.xml b/java/com/android/incallui/commontheme/res/values-fil/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-fil/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-frp/strings.xml b/java/com/android/incallui/commontheme/res/values-frp/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-frp/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fy-rNL/strings.xml b/java/com/android/incallui/commontheme/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ga-rIE/strings.xml b/java/com/android/incallui/commontheme/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gd/strings.xml b/java/com/android/incallui/commontheme/res/values-gd/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-gd/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/commontheme/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ku/strings.xml b/java/com/android/incallui/commontheme/res/values-ku/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-ku/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lb/strings.xml b/java/com/android/incallui/commontheme/res/values-lb/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-lb/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-oc/strings.xml b/java/com/android/incallui/commontheme/res/values-oc/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-oc/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-or-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-or-rIN/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-rm/strings.xml b/java/com/android/incallui/commontheme/res/values-rm/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-rm/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sc-rIT/strings.xml b/java/com/android/incallui/commontheme/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ug/strings.xml b/java/com/android/incallui/commontheme/res/values-ug/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-ug/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-vec/strings.xml b/java/com/android/incallui/commontheme/res/values-vec/strings.xml
deleted file mode 100644
index 78a6754..0000000
--- a/java/com/android/incallui/commontheme/res/values-vec/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Text for the onscreen "Hold" button when it is not selected. Pressing it will put
-     the call on hold. -->
-  <!-- Text for the onscreen "Hold" button when it is selected. Pressing it will resume
-       the call from a previously held state. -->
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ar/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/cm_strings.xml
new file mode 100644
index 0000000..8428699
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-ar/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">حظر الطرف الآخر كافة المكالمات الواردة.</string>
+    <string name="callUnanswered_forwarded">تم تحويل المكالمة وعدم الرد عليها</string>
+    <string name="incall_connecting_waiting">جاري الطلب (إنتظار)</string>
+    <string name="incall_calling_via_waiting_template">الاتصال عبر <xliff:g id="provider_name">%s</xliff:g> (انتظار\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-as-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-as-rIN/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ast-rES/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-ast-rES/cm_strings.xml
new file mode 100644
index 0000000..be8513b
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-ast-rES/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">La conferencia tien prohibíes les llamaes entrantes.</string>
+    <string name="callUnanswered_forwarded">Llamada non respondida y esviada</string>
+    <string name="incall_connecting_waiting">Llamando (esperando\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Llamada al traviés de <xliff:g id="Provider_NAME">%s</xliff:g> (esperando\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ast-rES/strings.xml b/java/com/android/incallui/contactgrid/res/values-ast-rES/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-bg/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/cm_strings.xml
new file mode 100644
index 0000000..0c7ffe1
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-bg/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Участник забрани всички входящи повиквания.</string>
+    <string name="callUnanswered_forwarded">Повикване без отговор и пренасочено</string>
+    <string name="incall_connecting_waiting">Набиране (изчакайте\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Повикване чрез <xliff:g id="provider_name">%s </xliff:g> (Waiting\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-br-rFR/strings.xml b/java/com/android/incallui/contactgrid/res/values-br-rFR/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-cs/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/cm_strings.xml
new file mode 100644
index 0000000..65cd1d4
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-cs/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Volaná skupina zablokovala všechny příchozí hovory.</string>
+    <string name="callUnanswered_forwarded">Hovor nepřijat a přesměrován</string>
+    <string name="incall_connecting_waiting">Vytáčení (vyčkávání\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Volání přes <xliff:g id="provider_name">%s</xliff:g> (vyčkávání\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-csb/strings.xml b/java/com/android/incallui/contactgrid/res/values-csb/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-csb/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-cy/strings.xml b/java/com/android/incallui/contactgrid/res/values-cy/strings.xml
index d3b8a7a..b8da431 100644
--- a/java/com/android/incallui/contactgrid/res/values-cy/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-cy/strings.xml
@@ -16,56 +16,24 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
   <string name="incall_calling_via_template">Yn galw gyda <xliff:g id="provider_name">%s</xliff:g></string>
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
   <string name="incall_connecting">Yn galw…</string>
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
   <string name="incall_transferring">Yn trosglwyddo…</string>
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
   <string name="incall_video_call_requesting">Yn galw fideo…</string>
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
   <string name="incall_wifi_video_call_requesting">Yn galw fideo Wi-Fi…</string>
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
   <string name="incall_video_call_request_failed">Methu â chysylltu</string>
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
   <string name="incall_video_call_request_rejected">Gwrthodwyd yr alwad</string>
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
   <string name="incall_video_call_request_timed_out">Doedd dim ateb</string>
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
   <string name="incall_hanging_up">Yn dod a\'r alwad i ben</string>
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
   <string name="incall_call_ended">Galwad wedi dod i ben</string>
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
   <string name="incall_remotely_held">Yn aros</string>
-  <!-- Displayed in the answer call screen for incoming video calls. -->
   <string name="contact_grid_incoming_video_call">Galwad fideo oddi wrth</string>
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
   <string name="contact_grid_incoming_wifi_video_call">Galwad fideo Wi-Fi oddi wrth</string>
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
   <string name="contact_grid_incoming_video_request">Cais i uwchraddio i alwad fideo gan</string>
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
   <string name="contact_grid_incoming_wifi_video_request">Cais i uwchraddio i alwad fideo Wi-Fi gan</string>
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
   <string name="contact_grid_incoming_voice_call">Galwad oddi wrth</string>
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
   <string name="contact_grid_incoming_work_call">Galwad gwaith oddi wrth</string>
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
   <string name="contact_grid_incoming_via_template">Galwad i mewn trwy <xliff:g id="provider_name">%s</xliff:g></string>
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
   <string name="contact_grid_incoming_suspected_spam">Galwg sbam posib</string>
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
   <string name="contact_grid_callback_number">Rhif galw nôl: <xliff:g id="dark_number">%1$s</xliff:g></string>
 </resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-de/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-de/cm_strings.xml
new file mode 100644
index 0000000..d2e896d
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-de/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Die Gegenseite blockiert alle eingehenden Anrufe.</string>
+    <string name="callUnanswered_forwarded">Anruf unbeantwortet und weitergeleitet</string>
+    <string name="incall_connecting_waiting">Rufaufbau (klopft an\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Anruf über <xliff:g id="provider_name">%s</xliff:g> (klopft an\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-el/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-el/cm_strings.xml
new file mode 100644
index 0000000..05ca581
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-el/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Ο συνομιλητής έχει μπλοκάρει όλες τις εισερχόμενες κλήσεις.</string>
+    <string name="callUnanswered_forwarded">Η κλήση δεν απαντήθηκε και προωθήθηκε</string>
+    <string name="incall_connecting_waiting">Κλήση (αναμονή\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Κλήση μέσω <xliff:g id="provider_name">%s</xliff:g> (αναμονή\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/cm_strings.xml
new file mode 100644
index 0000000..4da7379
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Party has barred all incoming calls.</string>
+    <string name="callUnanswered_forwarded">Call unanswered and forwarded</string>
+    <string name="incall_connecting_waiting">Calling (waiting\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Calling via <xliff:g id="provider_name">%s</xliff:g> (waiting\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/cm_strings.xml
new file mode 100644
index 0000000..4da7379
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Party has barred all incoming calls.</string>
+    <string name="callUnanswered_forwarded">Call unanswered and forwarded</string>
+    <string name="incall_connecting_waiting">Calling (waiting\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Calling via <xliff:g id="provider_name">%s</xliff:g> (waiting\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/cm_strings.xml
new file mode 100644
index 0000000..4da7379
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Party has barred all incoming calls.</string>
+    <string name="callUnanswered_forwarded">Call unanswered and forwarded</string>
+    <string name="incall_connecting_waiting">Calling (waiting\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Calling via <xliff:g id="provider_name">%s</xliff:g> (waiting\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rPT/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-eo/strings.xml b/java/com/android/incallui/contactgrid/res/values-eo/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-eo/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-es-rCO/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rCO/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-es-rMX/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rMX/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-et/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-et/cm_strings.xml
new file mode 100644
index 0000000..a341084
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-et/cm_strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="incall_connecting_waiting">Helistan (ootel\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Helistan läbi <xliff:g id="provider_name">%s</xliff:g> (ootel\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-eu/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/cm_strings.xml
new file mode 100644
index 0000000..8b2f3b7
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-eu/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Hartzaileak dei guztiak jasotzea trabatu du.</string>
+    <string name="callUnanswered_forwarded">Deia ez da erantzun eta birbidali da</string>
+    <string name="incall_connecting_waiting">Deitzen (itxaroten\u2026)</string>
+    <string name="incall_calling_via_waiting_template"><xliff:g id="provider_name">%s</xliff:g> bidez deitzen (Itxaroten\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-fil/strings.xml b/java/com/android/incallui/contactgrid/res/values-fil/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-fil/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-frp/strings.xml b/java/com/android/incallui/contactgrid/res/values-frp/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-frp/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-fy-rNL/strings.xml b/java/com/android/incallui/contactgrid/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ga-rIE/strings.xml b/java/com/android/incallui/contactgrid/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-gd/strings.xml b/java/com/android/incallui/contactgrid/res/values-gd/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-gd/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-gl/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/cm_strings.xml
new file mode 100644
index 0000000..348de9c
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-gl/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Todas as chamadas recibidas foron bloqueadas por terceiros.</string>
+    <string name="callUnanswered_forwarded">Chamada non respondida e desviada</string>
+    <string name="incall_connecting_waiting">Chamando (Agardando\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Chamando mediante <xliff:g id="provider_name">%s</xliff:g> (agardando\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-in/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-in/cm_strings.xml
new file mode 100644
index 0000000..5315ecd
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-in/cm_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Pihak lain telah mencegah semua panggilan masuk.</string>
+    <string name="callUnanswered_forwarded">Panggilan tidak terjawab dan diteruskan</string>
+    <string name="incall_connecting_waiting">Memanggil (menunggu\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-it/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-it/cm_strings.xml
new file mode 100644
index 0000000..e80255c
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-it/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Il corrispondente ha bloccato tutte le chiamate in arrivo.</string>
+    <string name="callUnanswered_forwarded">Chiamata non risposta e inoltrata</string>
+    <string name="incall_connecting_waiting">Chiamando (attendendo\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Chiamata con<xliff:g id="provider_name">%s</xliff:g> (attendendo\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/contactgrid/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ku/strings.xml b/java/com/android/incallui/contactgrid/res/values-ku/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-ku/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-lb/strings.xml b/java/com/android/incallui/contactgrid/res/values-lb/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-lb/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-oc/strings.xml b/java/com/android/incallui/contactgrid/res/values-oc/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-oc/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-or-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-or-rIN/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/cm_strings.xml
new file mode 100644
index 0000000..412230f
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">As chamadas recebidas estão sendo bloqueadas.</string>
+    <string name="callUnanswered_forwarded">Chamada não atendida e encaminhada</string>
+    <string name="incall_connecting_waiting">Chamando (aguardando\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Chamando via <xliff:g id="provider_name">%s</xliff:g> (aguardando\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/cm_strings.xml
new file mode 100644
index 0000000..2c5aba7
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">O recetor barrou todas as chamadas recebidas.</string>
+    <string name="callUnanswered_forwarded">Chamada não respondida e reencaminhada</string>
+    <string name="incall_connecting_waiting">A chamar (aguarde\u2026)</string>
+    <string name="incall_calling_via_waiting_template">A chamar através de <xliff:g id="provider_name">%s</xliff:g> (aguarde\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-rm/strings.xml b/java/com/android/incallui/contactgrid/res/values-rm/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-rm/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ro/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/cm_strings.xml
new file mode 100644
index 0000000..efea911
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-ro/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Apelatul a blocat toate apelurile primite.</string>
+    <string name="callUnanswered_forwarded">Apel nerăspuns și redirecționat</string>
+    <string name="incall_connecting_waiting">Apelare (aşteptare\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Apelare via <xliff:g id="provider_name">%s</xliff:g> (așteptare\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ru/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/cm_strings.xml
new file mode 100644
index 0000000..3b36e2c
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-ru/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Участник запретил все входящие вызовы.</string>
+    <string name="callUnanswered_forwarded">Вызов без ответа был переадресован</string>
+    <string name="incall_connecting_waiting">Вызов (ожидание\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Вызов через <xliff:g id="provider_name">%s</xliff:g> (ожидание\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-sc-rIT/strings.xml b/java/com/android/incallui/contactgrid/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-sl/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/cm_strings.xml
new file mode 100644
index 0000000..2ea2150
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-sl/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Oseba ima zaporo vseh dohodnih klicev.</string>
+    <string name="callUnanswered_forwarded">Klic neodgovorjen in posredovan</string>
+    <string name="incall_connecting_waiting">Klicanje (čakanje \u2026)</string>
+    <string name="incall_calling_via_waiting_template">Klicanje prek <xliff:g id="provider_name">%s</xliff:g> (čakanje \u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-tr/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/cm_strings.xml
new file mode 100644
index 0000000..6be8ef8
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-tr/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Abone bütün gelen aramaları engelledi.</string>
+    <string name="callUnanswered_forwarded">Arama cevaplanmadı ve yönlendirildi</string>
+    <string name="incall_connecting_waiting">Aranıyor (bekleniyor\u2026)</string>
+    <string name="incall_calling_via_waiting_template"><xliff:g id="provider_name">%s</xliff:g> üzerinden aranıyor (bekleniyor\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-ug/strings.xml b/java/com/android/incallui/contactgrid/res/values-ug/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-ug/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-vec/strings.xml b/java/com/android/incallui/contactgrid/res/values-vec/strings.xml
deleted file mode 100644
index 7f0183a..0000000
--- a/java/com/android/incallui/contactgrid/res/values-vec/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2016 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
-     [CHAR LIMIT=40] -->
-  <!-- Displayed above the contact name during an outgoing phone call. Indicates that the call is
-       in the connecting stage. -->
-  <!-- Displayed above the contact name when an external call is being pulled to the local
-       device. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       video call. -->
-  <!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
-       Wi-Fi video call. -->
-  <!-- Displayed above the contact name when the user's video upgrade failed due to an unknown
-       reason. -->
-  <!-- Displayed above the contact name when the user's video upgrade was declined by the remote
-       party. -->
-  <!-- Displayed above the contact name when no response was received for the user's upgrade
-       requests and we timed out. -->
-  <!-- In-call screen: status label for a call that's in the process of hanging up
-       [CHAR LIMIT=25] -->
-  <!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
-  <!-- In-call screen: label shown at the top of the screen when a call is on hold by the remote
-     party [CHAR LIMIT=25] -->
-  <!-- Displayed in the answer call screen for incoming video calls. -->
-  <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
-  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming voice calls. -->
-  <!-- Displayed in the answer call screen for incoming calls via a phone account. -->
-  <!-- Displayed in the answer call screen for incoming spam calls. -->
-  <!-- In-call screen: string shown to the user when their outgoing number is different than the
-     number reported by TelephonyManager#getLine1Number(). This is used for carriers like
-     Project Fi so that users can give their number to emergency responders. -->
-</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-vi/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/cm_strings.xml
new file mode 100644
index 0000000..3b0ba41
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-vi/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">Phía bên kia đã chặn tất cả cuộc gọi đến.</string>
+    <string name="callUnanswered_forwarded">Cuộc gọi không được trả lời và đã chuyển hướng</string>
+    <string name="incall_connecting_waiting">Đang gọi (đang chờ\u2026)</string>
+    <string name="incall_calling_via_waiting_template">Gọi qua <xliff:g id="provider_name">%s</xliff:g> (Đang chờ\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/cm_strings.xml
new file mode 100644
index 0000000..826fe83
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">对方已阻止所有来电。</string>
+    <string name="callUnanswered_forwarded">呼叫未应答并已被转移</string>
+    <string name="incall_connecting_waiting">正在呼叫 (等待中\u2026)</string>
+    <string name="incall_calling_via_waiting_template">正在通过 <xliff:g id="provider_name">%s</xliff:g> 呼叫 (等待中\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/cm_strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/cm_strings.xml
new file mode 100644
index 0000000..0fd69fe
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/cm_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<!--
+     Copyright (C) 2013-2014 The CyanogenMod Project
+     Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="callFailed_incoming_cb_enabled">對方已拒接所有來電。</string>
+    <string name="callUnanswered_forwarded">來電未接聽並已轉接</string>
+    <string name="incall_connecting_waiting">正在撥號 (等待中\u2026)</string>
+    <string name="incall_calling_via_waiting_template">經由 <xliff:g id="provider_name">%s</xliff:g> 撥打 (等待中\u2026)</string>
+</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-as-rIN/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-as-rIN/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-ast-rES/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-ast-rES/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-br-rFR/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-br-rFR/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-csb/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-csb/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-csb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-cy/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-cy/strings.xml
index 312312e..4ae728f 100644
--- a/java/com/android/incallui/disconnectdialog/res/values-cy/strings.xml
+++ b/java/com/android/incallui/disconnectdialog/res/values-cy/strings.xml
@@ -16,14 +16,8 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
   <string name="incall_enable_wifi_calling_button">Galluogi</string>
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
   <string name="video_call_not_available_title">Dyw galwad fideo ddim ar gael ar hyn o bryd</string>
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
   <string name="video_call_not_available_message">Rho gynnig ar alw\'n hwyrach neu barhau gyda\'r alwad fel galwad llais.</string>
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
   <string name="voice_call">Galwad llais</string>
 </resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-en-rPT/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-en-rPT/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-eo/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-eo/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-eo/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-es-rCO/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-es-rCO/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-es-rMX/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-es-rMX/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-fil/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-fil/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-fil/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-frp/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-frp/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-frp/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-fy-rNL/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-ga-rIE/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-gd/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-gd/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-gd/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-ku/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-ku/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-ku/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-lb/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-lb/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-lb/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-oc/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-oc/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-oc/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-or-rIN/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-or-rIN/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-rm/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-rm/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-rm/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-sc-rIT/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-ug/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-ug/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-ug/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/disconnectdialog/res/values-vec/strings.xml b/java/com/android/incallui/disconnectdialog/res/values-vec/strings.xml
deleted file mode 100644
index 1985f38..0000000
--- a/java/com/android/incallui/disconnectdialog/res/values-vec/strings.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Button to enable Wi-Fi calling. This is displayed in a dialog after a phone call disconnects
-      because there is no cellular service.
-      [CHAR LIMIT=20] -->
-  <!-- Title of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Message of alert dialog displayed when video call is not available. [CHAR LIMIT=NONE] -->
-  <!-- Voice call button label of alert dialog displayed when video call is not available. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/hold/res/values-as-rIN/strings.xml b/java/com/android/incallui/hold/res/values-as-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-ast-rES/strings.xml b/java/com/android/incallui/hold/res/values-ast-rES/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-br-rFR/strings.xml b/java/com/android/incallui/hold/res/values-br-rFR/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-csb/strings.xml b/java/com/android/incallui/hold/res/values-csb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-csb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-en-rPT/strings.xml b/java/com/android/incallui/hold/res/values-en-rPT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-eo/strings.xml b/java/com/android/incallui/hold/res/values-eo/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-eo/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-es-rCO/strings.xml b/java/com/android/incallui/hold/res/values-es-rCO/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-es-rMX/strings.xml b/java/com/android/incallui/hold/res/values-es-rMX/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-fil/strings.xml b/java/com/android/incallui/hold/res/values-fil/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-fil/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-frp/strings.xml b/java/com/android/incallui/hold/res/values-frp/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-frp/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-fy-rNL/strings.xml b/java/com/android/incallui/hold/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-ga-rIE/strings.xml b/java/com/android/incallui/hold/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-gd/strings.xml b/java/com/android/incallui/hold/res/values-gd/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-gd/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/hold/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-ku/strings.xml b/java/com/android/incallui/hold/res/values-ku/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-ku/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-lb/strings.xml b/java/com/android/incallui/hold/res/values-lb/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-lb/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-oc/strings.xml b/java/com/android/incallui/hold/res/values-oc/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-oc/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-or-rIN/strings.xml b/java/com/android/incallui/hold/res/values-or-rIN/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-rm/strings.xml b/java/com/android/incallui/hold/res/values-rm/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-rm/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-sc-rIT/strings.xml b/java/com/android/incallui/hold/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-ug/strings.xml b/java/com/android/incallui/hold/res/values-ug/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-ug/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/hold/res/values-vec/strings.xml b/java/com/android/incallui/hold/res/values-vec/strings.xml
deleted file mode 100644
index 70489fb..0000000
--- a/java/com/android/incallui/hold/res/values-vec/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources></resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-as-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-as-rIN/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ast-rES/strings.xml b/java/com/android/incallui/incall/impl/res/values-ast-rES/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-br-rFR/strings.xml b/java/com/android/incallui/incall/impl/res/values-br-rFR/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-csb/strings.xml b/java/com/android/incallui/incall/impl/res/values-csb/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-csb/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-cy/strings.xml b/java/com/android/incallui/incall/impl/res/values-cy/strings.xml
index 61d7b9b..483a888 100644
--- a/java/com/android/incallui/incall/impl/res/values-cy/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-cy/strings.xml
@@ -16,39 +16,17 @@
   ~ limitations under the License
   -->
 <resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_videocall">Galwad fideo</string>
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_hold">Aros</string>
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_add_call">Ychwanegu galwad</string>
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_mute">Distewi</string>
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_end_call">Gorffen yr alwad</string>
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_dialpad">Bysellbad</string>
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
   <string name="incall_talkback_speaker_on">, ymlaen</string>
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
   <string name="incall_talkback_speaker_off">, i ffwrdd</string>
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_merge">Cyfuno</string>
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_manage">Rheoli</string>
   <string name="a11y_description_incall_label_manage_content">Rheoli galwyr</string>
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
   <string name="incall_label_swap">Cyfnewid</string>
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
   <string name="incall_note_sent">Nodyn wedi\'i anfon</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rPT/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-eo/strings.xml b/java/com/android/incallui/incall/impl/res/values-eo/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-eo/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es-rCO/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rCO/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es-rMX/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rMX/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fil/strings.xml b/java/com/android/incallui/incall/impl/res/values-fil/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-fil/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-frp/strings.xml b/java/com/android/incallui/incall/impl/res/values-frp/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-frp/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fy-rNL/strings.xml b/java/com/android/incallui/incall/impl/res/values-fy-rNL/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ga-rIE/strings.xml b/java/com/android/incallui/incall/impl/res/values-ga-rIE/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gd/strings.xml b/java/com/android/incallui/incall/impl/res/values-gd/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-gd/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/incall/impl/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ku/strings.xml b/java/com/android/incallui/incall/impl/res/values-ku/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-ku/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lb/strings.xml b/java/com/android/incallui/incall/impl/res/values-lb/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-lb/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-oc/strings.xml b/java/com/android/incallui/incall/impl/res/values-oc/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-oc/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-or-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-or-rIN/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-rm/strings.xml b/java/com/android/incallui/incall/impl/res/values-rm/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-rm/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sc-rIT/strings.xml b/java/com/android/incallui/incall/impl/res/values-sc-rIT/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ug/strings.xml b/java/com/android/incallui/incall/impl/res/values-ug/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-ug/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-vec/strings.xml b/java/com/android/incallui/incall/impl/res/values-vec/strings.xml
deleted file mode 100644
index a14c094..0000000
--- a/java/com/android/incallui/incall/impl/res/values-vec/strings.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources>
-  <!-- Button shown during a phone call to upgrade to video.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to put the call on hold.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to add a new phone call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to mute the microphone.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to end the call.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone call to show the dialpad.
-     [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to merge two ongoing calls.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to show the manage conference call screen.
-     [CHAR LIMIT=12] -->
-  <!-- Button shown during a phone to swap from the foreground call to the background call.
-     [CHAR LIMIT=12] -->
-  <!-- Used to inform the user that the note associated with an outgoing call has been sent.
-       [CHAR LIMIT=32] -->
-</resources>
diff --git a/java/com/android/incallui/res/values-af/cm_strings.xml b/java/com/android/incallui/res/values-af/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-af/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-am/cm_strings.xml b/java/com/android/incallui/res/values-am/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-am/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-as-rIN/cm_strings.xml b/java/com/android/incallui/res/values-as-rIN/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-as-rIN/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-as-rIN/strings.xml b/java/com/android/incallui/res/values-as-rIN/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-ast-rES/strings.xml b/java/com/android/incallui/res/values-ast-rES/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-az/cm_strings.xml b/java/com/android/incallui/res/values-az/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-az/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-b+sr+Latn/cm_strings.xml b/java/com/android/incallui/res/values-b+sr+Latn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-b+sr+Latn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-be/cm_strings.xml b/java/com/android/incallui/res/values-be/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-be/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-bn/cm_strings.xml b/java/com/android/incallui/res/values-bn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-bn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-br-rFR/cm_strings.xml b/java/com/android/incallui/res/values-br-rFR/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-br-rFR/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-br-rFR/strings.xml b/java/com/android/incallui/res/values-br-rFR/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-bs/cm_strings.xml b/java/com/android/incallui/res/values-bs/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-bs/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-csb/cm_strings.xml b/java/com/android/incallui/res/values-csb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-csb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-csb/strings.xml b/java/com/android/incallui/res/values-csb/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-csb/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-cy/strings.xml b/java/com/android/incallui/res/values-cy/strings.xml
index 9918582..fa5fe2f 100644
--- a/java/com/android/incallui/res/values-cy/strings.xml
+++ b/java/com/android/incallui/res/values-cy/strings.xml
@@ -16,223 +16,125 @@
   ~ limitations under the License
   -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
   <string name="phoneAppLabel" product="default">Ffôn</string>
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
+  <string name="inCallLabel" translate="false">InCallUI</string>
+  <string name="confCall">Galwad grŵp</string>
   <string name="call_lost">Collwyd yr alwad</string>
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
   <string name="wait_prompt_str">Anfon y tonau canlynol?\n</string>
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
   <string name="pause_prompt_str">Yn anfon tonau\n</string>
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
   <string name="send_button">Anfon</string>
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
+  <string name="pause_prompt_yes">Iawn</string>
+  <string name="pause_prompt_no">Na</string>
+  <string name="wild_prompt_str">Newid y nod ar hap gyda</string>
+  <string name="caller_manage_header">Galwad grŵp <xliff:g id="conf_call_time">%s</xliff:g></string>
+  <string name="voicemail_settings_number_label">Rhif lleisbost</string>
   <string name="notification_dialing">Yn deialu</string>
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
   <string name="notification_missedCallTicker">Galwad wedi\'i methu oddi wrth <xliff:g id="missed_call_from">%s</xliff:g></string>
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
+  <string name="notification_ongoing_call">Galwad ar y gweill</string>
+  <string name="notification_ongoing_work_call">Galwad gwaith ar y gweill</string>
+  <string name="notification_ongoing_call_wifi">Galwad Wi\u2011Fi ar y gweill</string>
+  <string name="notification_ongoing_work_call_wifi">Galwad gwaith Wi\u2011Fi ar y gweill</string>
+  <string name="notification_on_hold">Yn disgwyl</string>
+  <string name="notification_incoming_call">Galwad i mewn</string>
+  <string name="notification_incoming_call_with_photo">Galwad i mewn gyda llun</string>
+  <string name="notification_incoming_call_with_message">Galwad i mewn gyda neges</string>
+  <string name="notification_incoming_call_with_location">Galwad i mewn gyda lleoliad</string>
+  <string name="notification_incoming_call_with_photo_message">Galwad i mewn gyda llun a neges</string>
+  <string name="notification_incoming_call_with_photo_location">Galwad i mewn gyda llun a lleoliad</string>
+  <string name="notification_incoming_call_with_message_location">Galwad i mewn gyda neges a lleoliad</string>
+  <string name="notification_incoming_call_with_photo_message_location">Galwad i mewn gyda llun, neges a lleoliad</string>
+  <string name="notification_incoming_call_attachments">Galwad i mewn gydag atodiadau</string>
+  <string name="important_notification_incoming_call">Galwad pwysig i mewn</string>
+  <string name="important_notification_incoming_call_with_photo">Galwad pwysig i mewn gyda llun</string>
+  <string name="important_notification_incoming_call_with_message">Galwad pwysig i mewn gyda neges</string>
+  <string name="important_notification_incoming_call_with_location">Galwad pwysig i mewn gyda lleoliad</string>
+  <string name="important_notification_incoming_call_with_photo_message">Galwad pwysig i mewn gyda llun a neges</string>
+  <string name="important_notification_incoming_call_with_photo_location">Galwad pwysig i mewn gyda llun a lleoliad</string>
+  <string name="important_notification_incoming_call_with_message_location">Galwad pwysig i mewn gyda neges a lleoliad</string>
+  <string name="important_notification_incoming_call_with_photo_message_location">Galwad pwysig i mewn gyda llun, neges a lleoliad</string>
+  <string name="important_notification_incoming_call_attachments">Galwad pwysig i mewn gydag atodiadau</string>
+  <string name="notification_incoming_work_call">Galwad gwaith i mewn</string>
+  <string name="notification_incoming_call_wifi">Galwad Wi\u2011Fi i mewn</string>
+  <string name="notification_incoming_work_call_wifi">Galwad Wi\u2011Fi gwaith i mewn</string>
+  <string name="notification_incoming_spam_call">Galwad sbam bosib i mewn</string>
+  <string name="notification_requesting_video_call">Cais fideo i mewn</string>
   <string name="notification_network_selection_title">Dim gwasanaeth</string>
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
+  <string name="notification_network_selection_text">Rhwydwaith a ddewiswyd (<xliff:g id="operator_name">%s</xliff:g>) dim ar gael</string>
   <string name="notification_action_answer">Ateb</string>
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
+  <string name="notification_action_end_call">Gorffen yr alwad</string>
   <string name="notification_action_answer_video">Fideo</string>
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
   <string name="notification_action_answer_voice">Llais</string>
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
   <string name="notification_action_accept">Derbyn</string>
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
+  <string name="notification_action_dismiss">Gwrthod</string>
+  <string name="notification_external_call">Galwad ar y gweill ar ddyfais arall</string>
+  <string name="notification_external_video_call">Galwad fideo ar y gweill ar ddyfais arall</string>
+  <string name="notification_take_call">Derbyn Galwad</string>
+  <string name="notification_take_video_call">Derbyn Galwad Fideo</string>
   <string name="incall_error_power_off">I wneud galwad, rhaid diffodd modd awyren.</string>
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
   <string name="incall_error_emergency_only">Heb gofrestru ar y rhwydwaith.</string>
-  <!-- In-call screen: call failure message displayed in an error dialog -->
   <string name="incall_error_out_of_service">Dim rhwydwaith symudol ar gael.</string>
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
+  <string name="incall_error_no_phone_number_supplied">I wneud galwad, rho rif dilys.</string>
   <string name="incall_error_call_failed">Methu â galw.</string>
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
+  <string name="incall_status_dialed_mmi">Yn dechrau rhediad MMI\u2026</string>
+  <string name="incall_error_supp_service_unknown">Gwasanaeth heb ei gefnogi.</string>
   <string name="incall_error_supp_service_switch">Methu â newid rhwng galwadau.</string>
-  <!-- In-call screen: message displayed in an error dialog -->
   <string name="incall_error_supp_service_separate">Methu â gwahanu\'r alwad.</string>
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
+  <string name="incall_error_supp_service_transfer">Methu â throsglwyddo.</string>
   <string name="incall_error_supp_service_conference">Methu â gwneud galwad grŵp.</string>
-  <!-- In-call screen: message displayed in an error dialog -->
   <string name="incall_error_supp_service_reject">Methu â gwrthod yr alwad.</string>
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
+  <string name="incall_error_supp_service_hangup">Methu â rhyddhau galwad(au).</string>
+  <string name="emergency_enable_radio_dialog_title">Galwad brys</string>
   <string name="emergency_enable_radio_dialog_message">Yn troi radio ymlaen\u2026</string>
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
+  <string name="emergency_enable_radio_dialog_retry">Dim gwasanaeth. Yn ceisio eto\u2026</string>
   <string name="dial_emergency_error">Methu â galw. Dyw <xliff:g id="non_emergency_number">%s</xliff:g> ddim yn rif argyfwng.</string>
-  <!-- Emergency dialer: message displayed in an error dialog -->
   <string name="dial_emergency_empty_error">Methu â galw. Deiala rif argyfwng.</string>
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <string name="camera_not_ready">Camera ddim yn barod</string>
-  <!-- Message indicating that camera is ready/available -->
+  <string name="dialerKeyboardHintText">Defnyddio bysellfwrdd i ddeialu</string>
+  <string name="player_started">Chwaraeydd wedi Dechrau</string>
+  <string name="player_stopped">Chwaraeydd wedi Stopio</string>
+  <string name="camera_not_ready">Camera dim yn barod</string>
   <string name="camera_ready">Camera yn barod</string>
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
+  <string name="unknown_call_session_event">"Digwyddiad sesiwn galwad anhysbys"</string>
+  <string name="other_settings">Gosodiadau galwadau eraill</string>
   <string name="goPrivate">mynd yn breifat</string>
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
+  <string name="selectContact">dewis cyswllt</string>
   <string name="preference_category_ringtone">Tôn Caniad a Dirgrynu</string>
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
+  <string name="manageConferenceLabel">Rheoli galwad grŵp</string>
+  <string name="emergency_call_dialog_number_for_display">Rhif mewn argyfwng</string>
+  <string name="child_number">trwy <xliff:g example="650-555-1212" id="child_number">%s</xliff:g></string>
+  <string name="person_contact_context_title">Negeseuon diweddar</string>
   <string name="business_contact_context_title">Gwybodaeth busnes</string>
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
   <string name="distance_imperial_away"><xliff:g id="distance">%.1f</xliff:g> milltir i ffwrdd</string>
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
   <string name="distance_metric_away"><xliff:g id="distance">%.1f</xliff:g> km i ffwrdd</string>
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
   <string name="display_address"><xliff:g id="street_address">%1$s</xliff:g>, <xliff:g id="locality">%2$s</xliff:g></string>
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
   <string name="open_time_span"><xliff:g id="open_time">%1$s</xliff:g> - <xliff:g id="close_time">%2$s</xliff:g></string>
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
   <string name="opening_hours"><xliff:g id="earlier_times">%1$s</xliff:g>, <xliff:g id="later_time">%2$s</xliff:g></string>
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
+  <string name="opens_tomorrow_at">Yn agor yfory am <xliff:g id="open_time">%s</xliff:g></string>
+  <string name="opens_today_at">Yn agor heddiw am <xliff:g id="open_time">%s</xliff:g></string>
+  <string name="closes_today_at">Yn cau am <xliff:g id="close_time">%s</xliff:g></string>
+  <string name="closed_today_at">Wedi cau heddiw am <xliff:g id="close_time">%s</xliff:g></string>
+  <string name="open_now">Ar agor nawr</string>
+  <string name="closed_now">Ar gau nawr</string>
+  <string name="non_spam_notification_title">Nabod <xliff:g id="number">%1$s</xliff:g>?</string>
+  <string name="spam_notification_title">Ai sbam yw <xliff:g id="number">%1$s</xliff:g>?</string>
   <string name="spam_notification_block_report_toast_text"><xliff:g id="number">%1$s</xliff:g> wedi\'i rwystro a\'r galwad wedi ei adrodd fel sbam.</string>
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
   <string name="spam_notification_not_spam_toast_text">Adroddwyd galwad oddi wrth <xliff:g id="number">%1$s</xliff:g> fel sbam.</string>
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
+  <string name="spam_notification_non_spam_call_collapsed_text">Tapia i\'w ychwanegu i\'r cysylltiadau neu rwystro rhif sbam.</string>
+  <string name="spam_notification_non_spam_call_expanded_text">Dyma\'r tro cyntaf i\'r rhif hwn dy alw di. Os mai sbam oedd yr alwad, gellir rhwystro\'r rhif hwn ac anfon adroddiad amdano.</string>
+  <string name="spam_notification_spam_call_collapsed_text">Tapia i\'w adrodd fel NID YN SBAM neu ei rwystro.</string>
+  <string name="spam_notification_spam_call_expanded_text">Rydym yn amau mai sbamiwr yw hwn. Os nad oedd y galwad yn sbam, tara \"DIM SBAM\" i roi gwybod i ni am ein camgymeriad.</string>
   <string name="spam_notification_report_spam_action_text">Rhwystro ac adrodd</string>
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
   <string name="spam_notification_add_contact_action_text">Ychwanegu cyswllt</string>
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
   <string name="spam_notification_not_spam_action_text">Dim yn sbam</string>
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
   <string name="spam_notification_block_spam_action_text">Rhwystro\'r rhif</string>
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
   <string name="spam_notification_dialog_add_contact_action_text">Ychwanegu at gysylltiadau</string>
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
   <string name="spam_notification_dialog_block_report_spam_action_text">Rhwystro ac adrodd am sbam</string>
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
   <string name="spam_notification_dialog_was_not_spam_action_text">Dim yn sbam</string>
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
+  <string name="callFailed_simError">Dim SIM neu wall SIM</string>
+  <string name="conference_caller_disconnect_content_description">Gorffen yr alwad</string>
+  <string name="conference_call_name">Galwad grŵp</string>
+  <string name="generic_conference_call_name">Ar ganol galwad</string>
+  <string name="video_call_wifi_to_lte_handover_toast">Yn parhau â\'r alwad gyda data symudol\u2026</string>
+  <string name="video_call_lte_to_wifi_failed_title">Methwyd a newid i rwydwaith Wi\u2011Fi</string>
+  <string name="video_call_lte_to_wifi_failed_message">Bydd yr alwad fideo yn parhau ar y rhwydwaith symudol. Bydd unrhyw gostau defnydd data fel yr arfer.  </string>
+  <string name="video_call_lte_to_wifi_failed_do_not_show">Peidio â dangos hwn eto</string>
 </resources>
diff --git a/java/com/android/incallui/res/values-da/cm_strings.xml b/java/com/android/incallui/res/values-da/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-da/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-en-rCA/cm_strings.xml b/java/com/android/incallui/res/values-en-rCA/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-en-rCA/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-en-rGB/cm_strings.xml b/java/com/android/incallui/res/values-en-rGB/cm_strings.xml
index 27ad002..8d247cc 100644
--- a/java/com/android/incallui/res/values-en-rGB/cm_strings.xml
+++ b/java/com/android/incallui/res/values-en-rGB/cm_strings.xml
@@ -15,4 +15,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="call_recording_failed_message">Failed to start call recording</string>
+    <string name="call_recording_file_location">Saved call recording to <xliff:g id="filename">%s</xliff:g></string>
+    <string name="onscreenCallRecordText">Record call</string>
+    <string name="onscreenCallRecordingText">Recording call - <xliff:g id="duration" example="00:10">%1$s</xliff:g></string>
+    <string name="onscreenStopCallRecordText">Stop recording</string>
+    <string name="recording_time_text">Recording</string>
+    <string name="recording_warning_title">Enable call recording?</string>
+    <string name="recording_warning_text">Notice: You are responsible for compliance with any laws, regulations and rules that apply to the use of call recording functionality and the use or distribution of those recordings.</string>
+</resources>
diff --git a/java/com/android/incallui/res/values-en-rPT/cm_strings.xml b/java/com/android/incallui/res/values-en-rPT/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-en-rPT/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-en-rPT/strings.xml b/java/com/android/incallui/res/values-en-rPT/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-eo/cm_strings.xml b/java/com/android/incallui/res/values-eo/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-eo/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-eo/strings.xml b/java/com/android/incallui/res/values-eo/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-eo/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-es-rCO/cm_strings.xml b/java/com/android/incallui/res/values-es-rCO/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-es-rCO/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-es-rCO/strings.xml b/java/com/android/incallui/res/values-es-rCO/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-es-rMX/cm_strings.xml b/java/com/android/incallui/res/values-es-rMX/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-es-rMX/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-es-rMX/strings.xml b/java/com/android/incallui/res/values-es-rMX/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-es/cm_strings.xml b/java/com/android/incallui/res/values-es/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-es/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-et/cm_strings.xml b/java/com/android/incallui/res/values-et/cm_strings.xml
index 27ad002..85f47db 100644
--- a/java/com/android/incallui/res/values-et/cm_strings.xml
+++ b/java/com/android/incallui/res/values-et/cm_strings.xml
@@ -15,4 +15,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="call_recording_failed_message">Kõne salvestuse alustamine nurjus</string>
+    <string name="call_recording_file_location">Kõne salvestatud kohta <xliff:g id="filename">%s</xliff:g></string>
+    <string name="onscreenCallRecordText">Salvesta kõne</string>
+    <string name="onscreenCallRecordingText">Kõne salvestamine - <xliff:g id="duration" example="00:10">%1$s</xliff:g></string>
+    <string name="onscreenStopCallRecordText">Lõpeta salvestus</string>
+    <string name="recording_time_text">Salvestamine</string>
+    <string name="recording_warning_title">Lubad kõne salvestamise?</string>
+    <string name="recording_warning_text">Märkus: Teie olete kohustatud järgima seaduseid, määruseid ja reegleid, mis käivad kõnede salvestamise funktsiooni ja nende salvestiste jagamise kohta.</string>
+</resources>
diff --git a/java/com/android/incallui/res/values-fa/cm_strings.xml b/java/com/android/incallui/res/values-fa/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-fa/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-fil/cm_strings.xml b/java/com/android/incallui/res/values-fil/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-fil/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-fil/strings.xml b/java/com/android/incallui/res/values-fil/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-fil/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-fr-rCA/cm_strings.xml b/java/com/android/incallui/res/values-fr-rCA/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-fr-rCA/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-frp/cm_strings.xml b/java/com/android/incallui/res/values-frp/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-frp/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-frp/strings.xml b/java/com/android/incallui/res/values-frp/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-frp/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-fy-rNL/cm_strings.xml b/java/com/android/incallui/res/values-fy-rNL/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-fy-rNL/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-fy-rNL/strings.xml b/java/com/android/incallui/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-ga-rIE/cm_strings.xml b/java/com/android/incallui/res/values-ga-rIE/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ga-rIE/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ga-rIE/strings.xml b/java/com/android/incallui/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-gd/strings.xml b/java/com/android/incallui/res/values-gd/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-gd/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-gu/cm_strings.xml b/java/com/android/incallui/res/values-gu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-gu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-hi/cm_strings.xml b/java/com/android/incallui/res/values-hi/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-hi/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-hr/cm_strings.xml b/java/com/android/incallui/res/values-hr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-hr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-hu/cm_strings.xml b/java/com/android/incallui/res/values-hu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-hu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-hy/cm_strings.xml b/java/com/android/incallui/res/values-hy/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-hy/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-is/cm_strings.xml b/java/com/android/incallui/res/values-is/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-is/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ka/cm_strings.xml b/java/com/android/incallui/res/values-ka/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ka/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-kab-rDZ/cm_strings.xml b/java/com/android/incallui/res/values-kab-rDZ/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-kab-rDZ/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-kk/cm_strings.xml b/java/com/android/incallui/res/values-kk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-kk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-km/cm_strings.xml b/java/com/android/incallui/res/values-km/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-km/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-kn/cm_strings.xml b/java/com/android/incallui/res/values-kn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-kn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ku/cm_strings.xml b/java/com/android/incallui/res/values-ku/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ku/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ku/strings.xml b/java/com/android/incallui/res/values-ku/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-ku/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-ky/cm_strings.xml b/java/com/android/incallui/res/values-ky/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ky/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-lb/cm_strings.xml b/java/com/android/incallui/res/values-lb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-lb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-lb/strings.xml b/java/com/android/incallui/res/values-lb/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-lb/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-lo/cm_strings.xml b/java/com/android/incallui/res/values-lo/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-lo/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-lt/cm_strings.xml b/java/com/android/incallui/res/values-lt/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-lt/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-lv/cm_strings.xml b/java/com/android/incallui/res/values-lv/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-lv/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-mk/cm_strings.xml b/java/com/android/incallui/res/values-mk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-mk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ml/cm_strings.xml b/java/com/android/incallui/res/values-ml/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ml/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-mn/cm_strings.xml b/java/com/android/incallui/res/values-mn/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-mn/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-mr/cm_strings.xml b/java/com/android/incallui/res/values-mr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-mr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ms/cm_strings.xml b/java/com/android/incallui/res/values-ms/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ms/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-my/cm_strings.xml b/java/com/android/incallui/res/values-my/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-my/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-nb/cm_strings.xml b/java/com/android/incallui/res/values-nb/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-nb/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ne/cm_strings.xml b/java/com/android/incallui/res/values-ne/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ne/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-nl/cm_strings.xml b/java/com/android/incallui/res/values-nl/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-nl/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-oc/cm_strings.xml b/java/com/android/incallui/res/values-oc/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-oc/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-oc/strings.xml b/java/com/android/incallui/res/values-oc/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-oc/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-or-rIN/cm_strings.xml b/java/com/android/incallui/res/values-or-rIN/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-or-rIN/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-or-rIN/strings.xml b/java/com/android/incallui/res/values-or-rIN/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-pa/cm_strings.xml b/java/com/android/incallui/res/values-pa/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-pa/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-rm/cm_strings.xml b/java/com/android/incallui/res/values-rm/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-rm/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-rm/strings.xml b/java/com/android/incallui/res/values-rm/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-rm/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-sc-rIT/cm_strings.xml b/java/com/android/incallui/res/values-sc-rIT/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-sc-rIT/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-sc-rIT/strings.xml b/java/com/android/incallui/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-si/cm_strings.xml b/java/com/android/incallui/res/values-si/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-si/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-sq/cm_strings.xml b/java/com/android/incallui/res/values-sq/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-sq/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-sr/cm_strings.xml b/java/com/android/incallui/res/values-sr/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-sr/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-sw/cm_strings.xml b/java/com/android/incallui/res/values-sw/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-sw/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ta/cm_strings.xml b/java/com/android/incallui/res/values-ta/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ta/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-te/cm_strings.xml b/java/com/android/incallui/res/values-te/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-te/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-th/cm_strings.xml b/java/com/android/incallui/res/values-th/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-th/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-tl/cm_strings.xml b/java/com/android/incallui/res/values-tl/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-tl/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ug/cm_strings.xml b/java/com/android/incallui/res/values-ug/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ug/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ug/strings.xml b/java/com/android/incallui/res/values-ug/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-ug/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-uk/cm_strings.xml b/java/com/android/incallui/res/values-uk/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-uk/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-ur/cm_strings.xml b/java/com/android/incallui/res/values-ur/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-ur/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-uz/cm_strings.xml b/java/com/android/incallui/res/values-uz/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-uz/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-vec/cm_strings.xml b/java/com/android/incallui/res/values-vec/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-vec/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-vec/strings.xml b/java/com/android/incallui/res/values-vec/strings.xml
deleted file mode 100644
index 6b19a2e..0000000
--- a/java/com/android/incallui/res/values-vec/strings.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Official label of the phone app, as seen in "Manage Applications"
-       and other settings UIs. -->
-  <!-- Official label for the in-call UI. DO NOT TRANSLATE. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- In-call screen: call lost dialog text -->
-  <!-- MMI dialog strings -->
-  <!-- Dialog label when an MMI code starts running -->
-  <!-- post dial -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "wait" character in a phone number to be dialed; this dialog asks the
-       user if it's OK to send the numbers following the "wait". -->
-  <!-- In-call screen: body text of the dialog that appears when we encounter
-       the "PAUSE" character in a phone number to be dialed; this dialog gives
-       informative message to the user to show the sending numbers following the "Pause". -->
-  <!-- In-call screen: button label on the "wait" prompt dialog -->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: button label on the "wait" prompt dialog in CDMA Mode-->
-  <!-- In-call screen: on the "wild" character dialog, this is the label
-       for a text widget that lets the user enter the digits that should
-       replace the "wild" character. -->
-  <!-- In-call screen: status label for a conference call -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Used in FakePhoneActivity test code.  DO NOT TRANSLATE. -->
-  <!-- Call settings screen, Set voicemail dialog title -->
-  <!-- Notification strings -->
-  <!-- The "label" of the in-call Notification for a dialing call, used
-       as the format string for a Chronometer widget. [CHAR LIMIT=60] -->
-  <!-- Missed call notification message used for a single missed call, including
-       the caller-id info from the missed call -->
-  <!-- The "label" of the in-call Notification for an ongoing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
-       Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
-       over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for a call that's on hold -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". If still can't meet, replace with "Incoming call with attachments." -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=50] If can't meet limit, remove "Incoming". -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing work call,
-       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an incoming ringing spam call. -->
-  <!-- The "label" of the in-call Notification for upgrading an existing call to a video call. -->
-  <!-- Label for the "No service" notification item, when expanded. -->
-  <!-- Label for the expanded "No service" notification item, including the
-       operator name set by user -->
-  <!-- Label for the "Answer call" action. This is the displayed label for the action that answers
-       an incoming call. [CHAR LIMIT=12] -->
-  <!-- Label for "end call" Action.
-       It is displayed in the "Ongoing call" notification, which is shown
-       when the user is outside the in-call screen while the phone call is still
-       active. [CHAR LIMIT=12] -->
-  <!-- Label for "Video Call" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as a video call. [CHAR LIMIT=12] -->
-  <!-- Label for "Voice" notification action. This is a displayed on the notification for an
-       incoming video call, and answers the call as an audio call. [CHAR LIMIT=12] -->
-  <!-- Label for "Accept" notification action. This is somewhat generic, and may refer to
-       scenarios such as accepting an incoming call or accepting a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- Label for "Dismiss" notification action. This is somewhat generic, and may refer to
-       scenarios such as declining an incoming call or declining a video call request.
-       [CHAR LIMIT=12] -->
-  <!-- The "label" of the in-call Notification for an ongoing external call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- The "label" of the in-call Notification for an ongoing external video call.
-       External calls are a representation of a call which is in progress on the user's other
-       device (e.g. another phone or a watch).
-       [CHAR LIMIT=60] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take call" action initiates the process of pulling an external
-       call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- Notification action displayed for external call notifications.  External calls are a
-       representation of a call which is in progress on the user's other device (e.g. another
-       phone or a watch).  The "take video call" action initiates the process of pulling an external
-       video call to the current device.
-       [CHAR LIMIT=30] -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog.
-       This string is currently unused (see comments in InCallActivity.java.) -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: call failure message displayed in an error dialog -->
-  <!-- In-call screen: status message displayed in a dialog when starting an MMI -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- In-call screen: message displayed in an error dialog -->
-  <!-- Dialog title for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Status message for the "radio enable" UI for emergency calls -->
-  <!-- Dialer text on Emergency Dialer -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Emergency dialer: message displayed in an error dialog -->
-  <!-- Displayed in the text entry box in the dialer when in landscape mode to guide the user
-       to dial using the physical keyboard -->
-  <!-- Message indicating that Video Started flowing for IMS-VT calls -->
-  <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
-  <!-- Message indicating that camera failure has occurred for the selected camera and
-       as result camera is not ready -->
-  <!-- Message indicating that camera is ready/available -->
-  <!-- Message indicating unknown call session event -->
-  <!-- For incoming calls, this is a string we can get from a CDMA network instead of
-       the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
-  <!-- Title displayed above settings coming after voicemail in the call features screen -->
-  <!-- Use this to describe the separate conference call button; currently for screen readers through accessibility. -->
-  <!--  Use this to describe the select contact button in EditPhoneNumberPreference; currently for screen readers through accessibility. -->
-  <!-- Title for the category "ringtone", which is shown above ringtone and vibration
-       related settings.
-       [CHAR LIMIT=30] -->
-  <!-- Label for "Manage conference call" panel [CHAR LIMIT=40] -->
-  <!-- This can be used in any application wanting to disable the text "Emergency number" -->
-  <!-- Used to inform the user that a call was received via a number other than the primary
-      phone number associated with their device. [CHAR LIMIT=16] -->
-  <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
-  <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
-  <!-- Distance strings for business caller ID context. -->
-  <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
-  <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
-  <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
-  <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
-  <!-- Used to indicate a series of opening hours for a location.
-       This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
-       The second argument is an additional time span. e.g. "11 pm - 1 am"
-       The string is used to build a list of opening hours.
-       [CHAR LIMIT=NONE] -->
-  <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
-  <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
-  <!-- Displayed when a place is open. -->
-  <!-- Displayed when a place is closed. -->
-  <!-- Title for the notification to the user after a call from an unknown number ends. [CHAR LIMIT=100] -->
-  <!-- Title for the notification to the user after a call from an spammer ends. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses block/report spam. [CHAR LIMIT=100] -->
-  <!-- Text for the toast shown after the user presses not spam. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the collapsed notification to the user after a non-spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a non-spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text displayed in the collapsed notification to the user after a spam call ends. [CHAR LIMIT=100] -->
-  <!-- Text displayed in the expanded notification to the user after a spam call ends. [CHAR LIMIT=NONE] -->
-  <!-- Text for the reporting spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the reporting as not spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the blocking spam action in the after call prompt. [CHAR LIMIT=20] -->
-  <!-- Text for the adding to contacts action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the blocking and reporting spam action in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Text for the marking a call as not spam in the after call dialog. [CHAR LIMIT=40] -->
-  <!-- Name for a conference call. Shown in the in call UI and in notifications. -->
-  <!-- Name for a generic conference call. Shown in the in call UI. This is used in CDMA where we
-       don't know the precise state of participants in the conference.  -->
-  <!-- Displayed when handover from WiFi to Lte occurs during a video call -->
-  <!-- Displayed when WiFi handover from LTE fails during a video call. -->
-</resources>
diff --git a/java/com/android/incallui/res/values-zh-rHK/cm_strings.xml b/java/com/android/incallui/res/values-zh-rHK/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-zh-rHK/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/res/values-zu/cm_strings.xml b/java/com/android/incallui/res/values-zu/cm_strings.xml
deleted file mode 100644
index 27ad002..0000000
--- a/java/com/android/incallui/res/values-zu/cm_strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-     Copyright (C) 2013-2014 The CyanogenMod Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-as-rIN/strings.xml b/java/com/android/incallui/sessiondata/res/values-as-rIN/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ast-rES/strings.xml b/java/com/android/incallui/sessiondata/res/values-ast-rES/strings.xml
index 4264a82..ac420ea 100644
--- a/java/com/android/incallui/sessiondata/res/values-ast-rES/strings.xml
+++ b/java/com/android/incallui/sessiondata/res/values-ast-rES/strings.xml
@@ -15,4 +15,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<resources></resources>
+<resources>
+  <string name="spam_photo_text">Retrucar pa revelar la semeya</string>
+  <string name="spam_message_text">Retrucar pa revelar el mensax</string>
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-br-rFR/strings.xml b/java/com/android/incallui/sessiondata/res/values-br-rFR/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-csb/strings.xml b/java/com/android/incallui/sessiondata/res/values-csb/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-csb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-en-rPT/strings.xml b/java/com/android/incallui/sessiondata/res/values-en-rPT/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-eo/strings.xml b/java/com/android/incallui/sessiondata/res/values-eo/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-eo/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-es-rCO/strings.xml b/java/com/android/incallui/sessiondata/res/values-es-rCO/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-es-rMX/strings.xml b/java/com/android/incallui/sessiondata/res/values-es-rMX/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fil/strings.xml b/java/com/android/incallui/sessiondata/res/values-fil/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-fil/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-frp/strings.xml b/java/com/android/incallui/sessiondata/res/values-frp/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-frp/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fy-rNL/strings.xml b/java/com/android/incallui/sessiondata/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ga-rIE/strings.xml b/java/com/android/incallui/sessiondata/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-gd/strings.xml b/java/com/android/incallui/sessiondata/res/values-gd/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-gd/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/sessiondata/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ku/strings.xml b/java/com/android/incallui/sessiondata/res/values-ku/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-ku/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-lb/strings.xml b/java/com/android/incallui/sessiondata/res/values-lb/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-lb/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-oc/strings.xml b/java/com/android/incallui/sessiondata/res/values-oc/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-oc/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-or-rIN/strings.xml b/java/com/android/incallui/sessiondata/res/values-or-rIN/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-rm/strings.xml b/java/com/android/incallui/sessiondata/res/values-rm/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-rm/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sc-rIT/strings.xml b/java/com/android/incallui/sessiondata/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ug/strings.xml b/java/com/android/incallui/sessiondata/res/values-ug/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-ug/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-vec/strings.xml b/java/com/android/incallui/sessiondata/res/values-vec/strings.xml
deleted file mode 100644
index 4264a82..0000000
--- a/java/com/android/incallui/sessiondata/res/values-vec/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<resources></resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-as-rIN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-as-rIN/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ast-rES/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ast-rES/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-br-rFR/strings.xml b/java/com/android/incallui/telecomeventui/res/values-br-rFR/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-csb/strings.xml b/java/com/android/incallui/telecomeventui/res/values-csb/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-csb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-cy/strings.xml b/java/com/android/incallui/telecomeventui/res/values-cy/strings.xml
index 86ddf92..dd5cf51 100644
--- a/java/com/android/incallui/telecomeventui/res/values-cy/strings.xml
+++ b/java/com/android/incallui/telecomeventui/res/values-cy/strings.xml
@@ -15,8 +15,6 @@
      limitations under the License.
 -->
 <resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
   <string name="always_warn">Dangos rhybudd bob tro</string>
-  <!-- Main text shown to the user in the dialog -->
   <string name="details">Rwyt yn galw rhif tramor ac mae\'n bosib bydd costau am yr alwad.</string>
 </resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rPT/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rPT/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-eo/strings.xml b/java/com/android/incallui/telecomeventui/res/values-eo/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-eo/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es-rCO/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es-rCO/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es-rMX/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es-rMX/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fil/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fil/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-fil/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-frp/strings.xml b/java/com/android/incallui/telecomeventui/res/values-frp/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-frp/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fy-rNL/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fy-rNL/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ga-rIE/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ga-rIE/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-gd/strings.xml b/java/com/android/incallui/telecomeventui/res/values-gd/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-gd/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/telecomeventui/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ku/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ku/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-ku/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lb/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lb/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-lb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-oc/strings.xml b/java/com/android/incallui/telecomeventui/res/values-oc/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-oc/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-or-rIN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-or-rIN/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-rm/strings.xml b/java/com/android/incallui/telecomeventui/res/values-rm/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-rm/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sc-rIT/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sc-rIT/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ug/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ug/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-ug/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-vec/strings.xml b/java/com/android/incallui/telecomeventui/res/values-vec/strings.xml
deleted file mode 100644
index f5a34d4..0000000
--- a/java/com/android/incallui/telecomeventui/res/values-vec/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources>
-  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
-  <!-- Main text shown to the user in the dialog -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-as-rIN/strings.xml b/java/com/android/incallui/video/impl/res/values-as-rIN/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-ast-rES/strings.xml b/java/com/android/incallui/video/impl/res/values-ast-rES/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-br-rFR/strings.xml b/java/com/android/incallui/video/impl/res/values-br-rFR/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-csb/strings.xml b/java/com/android/incallui/video/impl/res/values-csb/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-csb/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-cy/strings.xml b/java/com/android/incallui/video/impl/res/values-cy/strings.xml
index 3f3b868..9459111 100644
--- a/java/com/android/incallui/video/impl/res/values-cy/strings.xml
+++ b/java/com/android/incallui/video/impl/res/values-cy/strings.xml
@@ -1,20 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--Generated by crowdin.com-->
 <resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
   <string name="videocall_remote_video_off">Mae ei fideo nhw i ffwrdd</string>
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
   <string name="videocall_remote_video_on">Mae ei fideo nhw ymlaen</string>
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
   <string name="videocall_remotely_held">Galwad yn aros</string>
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
   <string name="videocall_remotely_resumed">Galwad yn parhau</string>
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
   <string name="camera_permission_dialog_title">Caniatáu fideo?</string>
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
   <string name="camera_permission_dialog_message">Mae\'r ap Ffôn eisiau defnyddio dy gamera ar gyfer galwadau fideo.</string>
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
   <string name="camera_permission_dialog_positive_button">Caniatáu</string>
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
   <string name="camera_permission_dialog_negative_button">Gwrthod</string>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values-en-rPT/strings.xml b/java/com/android/incallui/video/impl/res/values-en-rPT/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-eo/strings.xml b/java/com/android/incallui/video/impl/res/values-eo/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-eo/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-es-rCO/strings.xml b/java/com/android/incallui/video/impl/res/values-es-rCO/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-es-rMX/strings.xml b/java/com/android/incallui/video/impl/res/values-es-rMX/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-fil/strings.xml b/java/com/android/incallui/video/impl/res/values-fil/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-fil/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-frp/strings.xml b/java/com/android/incallui/video/impl/res/values-frp/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-frp/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-fy-rNL/strings.xml b/java/com/android/incallui/video/impl/res/values-fy-rNL/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-ga-rIE/strings.xml b/java/com/android/incallui/video/impl/res/values-ga-rIE/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-gd/strings.xml b/java/com/android/incallui/video/impl/res/values-gd/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-gd/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-kab-rDZ/strings.xml b/java/com/android/incallui/video/impl/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-ku/strings.xml b/java/com/android/incallui/video/impl/res/values-ku/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-ku/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-lb/strings.xml b/java/com/android/incallui/video/impl/res/values-lb/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-lb/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-oc/strings.xml b/java/com/android/incallui/video/impl/res/values-oc/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-oc/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-or-rIN/strings.xml b/java/com/android/incallui/video/impl/res/values-or-rIN/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-rm/strings.xml b/java/com/android/incallui/video/impl/res/values-rm/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-rm/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-sc-rIT/strings.xml b/java/com/android/incallui/video/impl/res/values-sc-rIT/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-ug/strings.xml b/java/com/android/incallui/video/impl/res/values-ug/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-ug/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-vec/strings.xml b/java/com/android/incallui/video/impl/res/values-vec/strings.xml
deleted file mode 100644
index b0b174f..0000000
--- a/java/com/android/incallui/video/impl/res/values-vec/strings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<resources>
-  <!-- Text indicates the video from remote party is off. [CHAR LIMIT=40] -->
-  <!-- Text indicates the video from remote party is on. [CHAR LIMIT=40] -->
-  <!-- Text indicates the call is held by remote party. [CHAR LIMIT=20] -->
-  <!-- Text indicates the call is resumed from held by remote party. [CHAR LIMIT=20] -->
-  <!-- Title of dialog to ask user for camera permission. [CHAR LIMIT=30] -->
-  <!-- Message of dialog to ask user for camera permission. [CHAR LIMIT=100] -->
-  <!-- Text of button to be confirmed for camera permission by user. [CHAR LIMIT=20] -->
-  <!-- Text of button to be declined for camera permission by user. [CHAR LIMIT=20] -->
-</resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-as-rIN/strings.xml b/java/com/android/voicemail/impl/configui/res/values-as-rIN/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-ast-rES/strings.xml b/java/com/android/voicemail/impl/configui/res/values-ast-rES/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-br-rFR/strings.xml b/java/com/android/voicemail/impl/configui/res/values-br-rFR/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-csb/strings.xml b/java/com/android/voicemail/impl/configui/res/values-csb/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-csb/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-cy/strings.xml b/java/com/android/voicemail/impl/configui/res/values-cy/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-cy/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-en-rPT/strings.xml b/java/com/android/voicemail/impl/configui/res/values-en-rPT/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-eo/strings.xml b/java/com/android/voicemail/impl/configui/res/values-eo/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-eo/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-es-rCO/strings.xml b/java/com/android/voicemail/impl/configui/res/values-es-rCO/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-es-rMX/strings.xml b/java/com/android/voicemail/impl/configui/res/values-es-rMX/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-fil/strings.xml b/java/com/android/voicemail/impl/configui/res/values-fil/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-fil/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-frp/strings.xml b/java/com/android/voicemail/impl/configui/res/values-frp/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-frp/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-fy-rNL/strings.xml b/java/com/android/voicemail/impl/configui/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-ga-rIE/strings.xml b/java/com/android/voicemail/impl/configui/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-gd/strings.xml b/java/com/android/voicemail/impl/configui/res/values-gd/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-gd/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-kab-rDZ/strings.xml b/java/com/android/voicemail/impl/configui/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-ku/strings.xml b/java/com/android/voicemail/impl/configui/res/values-ku/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-ku/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-lb/strings.xml b/java/com/android/voicemail/impl/configui/res/values-lb/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-lb/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-oc/strings.xml b/java/com/android/voicemail/impl/configui/res/values-oc/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-oc/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-or-rIN/strings.xml b/java/com/android/voicemail/impl/configui/res/values-or-rIN/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-rm/strings.xml b/java/com/android/voicemail/impl/configui/res/values-rm/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-rm/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-sc-rIT/strings.xml b/java/com/android/voicemail/impl/configui/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-ug/strings.xml b/java/com/android/voicemail/impl/configui/res/values-ug/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-ug/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/configui/res/values-vec/strings.xml b/java/com/android/voicemail/impl/configui/res/values-vec/strings.xml
deleted file mode 100644
index 8523a9d..0000000
--- a/java/com/android/voicemail/impl/configui/res/values-vec/strings.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"></resources>
diff --git a/java/com/android/voicemail/impl/res/values-as-rIN/strings.xml b/java/com/android/voicemail/impl/res/values-as-rIN/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-as-rIN/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-ast-rES/strings.xml b/java/com/android/voicemail/impl/res/values-ast-rES/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-ast-rES/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-br-rFR/strings.xml b/java/com/android/voicemail/impl/res/values-br-rFR/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-br-rFR/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-csb/strings.xml b/java/com/android/voicemail/impl/res/values-csb/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-csb/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-cy/strings.xml b/java/com/android/voicemail/impl/res/values-cy/strings.xml
index 94e6063..5d48fb4 100644
--- a/java/com/android/voicemail/impl/res/values-cy/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-cy/strings.xml
@@ -15,51 +15,36 @@
      limitations under the License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
+  <string name="voicemail_settings_with_label">Lleisbost (<xliff:g example="Mock Carrier" id="subscriptionlabel">%s</xliff:g>)</string>
   <string name="voicemail_settings_title">Lleisbost</string>
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
   <string name="voicemail_notifications_preference_title">Hysbysiadau</string>
-  <!-- Title for advanced settings in the voicemail settings -->
   <string name="voicemail_advanced_settings_title">Gosodiadau Uwch</string>
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
+  <string name="voicemail_visual_voicemail_switch_title">Lleisbost Gweledol</string>
+  <string name="voicemail_visual_voicemail_auto_archive_switch_title">Storfa a chadw wrth gefn ychwanegol  </string>
   <string name="voicemail_set_pin_preference_title">Gosod PIN</string>
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
   <string name="voicemail_change_pin_preference_title">Newid PIN</string>
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
+  <string name="voicemail_change_pin_preference_summary_disable">Rhaid galluogi lleisbost gweledol er mwyn newid y PIN</string>
+  <string name="voicemail_change_pin_preference_summary_not_activated">Nid yw lleisbost gweledol wedi\'i alluogi eto. Ceisia eto\'n hwyrach.</string>
   <string name="vm_change_pin_old_pin">Hen PIN</string>
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
   <string name="vm_change_pin_new_pin">PIN newydd</string>
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
+  <string name="vm_change_pin_progress_message">Arhosa.</string>
+  <string name="vm_change_pin_error_too_short">Mae\'r PIN newydd rhy fyr.</string>
+  <string name="vm_change_pin_error_too_long">Mae\'r PIN newydd rhy hir.</string>
+  <string name="vm_change_pin_error_too_weak">Mae\'r PIN yn rhy wan. Rhaid osgoi rhediad o rifau neu ailadrodd digidau.</string>
+  <string name="vm_change_pin_error_mismatch">Dyw\'r hen PIN ddim yr un fath.</string>
+  <string name="vm_change_pin_error_invalid">Mae nodau annilys yn y PIN newydd.</string>
+  <string name="vm_change_pin_error_system_error">Methu â newid y PIN</string>
+  <string name="vvm_unsupported_message_format">Math diarth o neges. Galwa <xliff:g example="*86" id="number">%s</xliff:g> i wrando arni.</string>
+  <string name="change_pin_title">Newid PIN Lleisbost</string>
+  <string name="change_pin_continue_label">Parhau</string>
   <string name="change_pin_cancel_label">Diddymu</string>
-  <!-- The label for the ok button in change voicemail PIN activity -->
   <string name="change_pin_ok_label">Iawn</string>
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
   <string name="change_pin_enter_old_pin_header">Cadarnha dy hen PIN</string>
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
+  <string name="change_pin_enter_old_pin_hint">Rho PIN dy leisbost i barhau.</string>
+  <string name="change_pin_enter_new_pin_header">Gosod PIN newydd</string>
+  <string name="change_pin_enter_new_pin_hint">Rhaid bod y PIN yn <xliff:g example="4" id="min">%1$d</xliff:g>-<xliff:g example="7" id="max">%2$d</xliff:g> digid.</string>
   <string name="change_pin_confirm_pin_header">Cadarnha dy PIN</string>
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
+  <string name="change_pin_confirm_pins_dont_match">Dyw\'r ddau PIN ddim yr un fath</string>
+  <string name="change_pin_succeeded">Diweddarwyd y PIN lleisbost</string>
+  <string name="change_pin_system_error">Methwyd â gosod y PIN</string>
 </resources>
diff --git a/java/com/android/voicemail/impl/res/values-en-rPT/strings.xml b/java/com/android/voicemail/impl/res/values-en-rPT/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-en-rPT/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-eo/strings.xml b/java/com/android/voicemail/impl/res/values-eo/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-eo/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-es-rCO/strings.xml b/java/com/android/voicemail/impl/res/values-es-rCO/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-es-rCO/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-es-rMX/strings.xml b/java/com/android/voicemail/impl/res/values-es-rMX/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-es-rMX/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-fil/strings.xml b/java/com/android/voicemail/impl/res/values-fil/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-fil/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-frp/strings.xml b/java/com/android/voicemail/impl/res/values-frp/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-frp/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-fy-rNL/strings.xml b/java/com/android/voicemail/impl/res/values-fy-rNL/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-fy-rNL/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-ga-rIE/strings.xml b/java/com/android/voicemail/impl/res/values-ga-rIE/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-ga-rIE/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-gd/strings.xml b/java/com/android/voicemail/impl/res/values-gd/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-gd/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-kab-rDZ/strings.xml b/java/com/android/voicemail/impl/res/values-kab-rDZ/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-kab-rDZ/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-ku/strings.xml b/java/com/android/voicemail/impl/res/values-ku/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-ku/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-lb/strings.xml b/java/com/android/voicemail/impl/res/values-lb/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-lb/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-oc/strings.xml b/java/com/android/voicemail/impl/res/values-oc/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-oc/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-or-rIN/strings.xml b/java/com/android/voicemail/impl/res/values-or-rIN/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-or-rIN/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-rm/strings.xml b/java/com/android/voicemail/impl/res/values-rm/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-rm/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-sc-rIT/strings.xml b/java/com/android/voicemail/impl/res/values-sc-rIT/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-sc-rIT/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-ug/strings.xml b/java/com/android/voicemail/impl/res/values-ug/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-ug/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
diff --git a/java/com/android/voicemail/impl/res/values-vec/strings.xml b/java/com/android/voicemail/impl/res/values-vec/strings.xml
deleted file mode 100644
index 21b08b7..0000000
--- a/java/com/android/voicemail/impl/res/values-vec/strings.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.com-->
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <!-- Title of the "Voicemail" settings screen, with a text label identifying which SIM the settings are for. -->
-  <!-- Call settings screen, setting option name -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
-  <!-- Voicemail notifications title. The user clicks on this preference to select
-         which sound to play and whether to vibrate when a voicemail notification is received.
-         [CHAR LIMIT=30] -->
-  <!-- Title for advanced settings in the voicemail settings -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a visual voicemail archive preference. -->
-  <!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
-  <!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
-  <!-- Visual voicemail archive on/off title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
-  <!-- Hint for the old PIN field in the change vociemail PIN dialog -->
-  <!-- Hint for the new PIN field in the change vociemail PIN dialog -->
-  <!-- Message on the dialog when PIN changing is in progress -->
-  <!-- Error message for the voicemail PIN change if the PIN is too short -->
-  <!-- Error message for the voicemail PIN change if the PIN is too long -->
-  <!-- Error message for the voicemail PIN change if the PIN is too weak -->
-  <!-- Error message for the voicemail PIN change if the old PIN entered doesn't match  -->
-  <!-- Error message for the voicemail PIN change if the new PIN contains invalid character -->
-  <!-- Error message for the voicemail PIN change if operation has failed -->
-  <!-- Message to replace the transcription if a visual voicemail message is not supported-->
-  <!-- The title for the change voicemail PIN activity -->
-  <!-- The label for the continue button in change voicemail PIN activity -->
-  <!-- The label for the cancel button in change voicemail PIN activity -->
-  <!-- The label for the ok button in change voicemail PIN activity -->
-  <!-- The title for the enter old pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter old pin step in change voicemail PIN activity -->
-  <!-- The title for the enter new pin step in change voicemail PIN activity -->
-  <!-- The hint for the enter new pin step in change voicemail PIN activity -->
-  <!-- The title for the confirm new pin step in change voicemail PIN activity -->
-  <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
-  <!-- The toast to show after the voicemail PIN has been successfully changed -->
-  <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
-</resources>
